[Webkit-unassigned] [Bug 27349] [WINCE] Add GraphicsContextWince implementation for WinCE.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Jul 20 11:17:34 PDT 2009
https://bugs.webkit.org/show_bug.cgi?id=27349
Adam Roben (aroben) <aroben at apple.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #33091|review? |review-
Flag| |
--- Comment #16 from Adam Roben (aroben) <aroben at apple.com> 2009-07-20 11:17:32 PDT ---
(From update of attachment 33091)
> +#include "wtf/OwnPtr.h"
"wtf/OwnPtr.h" should be <wtf/OwnPtr.h> (with angle brackets instead of
quotes).
> +struct RotationTransform
> +{
The opening brace for type declarations (struct, class, enum) should be on the
same line as the type name. (Note that this differs from the rule for
functions.) (applies elsewhere)
> + IntPoint origin()
This can be a const member function.
> + IntRect mapRect(const IntRect& rect)
> + {
> + return m_transform.mapRect(rect);
> + }
> +
> + FloatRect mapRect(const FloatRect& rect)
> + {
> + return m_transform.mapRect(rect);
> + }
> +
> + IntPoint mapPoint(const IntPoint& point)
> + {
> + return m_transform.mapPoint(point);
> + }
> +
> + FloatPoint mapPoint(const FloatPoint& point)
> + {
> + return m_transform.mapPoint(point);
> + }
> +
> + FloatSize mapSize(const FloatSize& size)
> + {
> + double w, h;
> + m_transform.map(size.width(), size.height(), w, h);
> + return FloatSize(static_cast<float>(w), static_cast<float>(h));
> + }
These can be const member functions.
> + PassRefPtr<SharedBitmap> getTransparentLayerBitmap(IntRect& origRect, AlphaPaintType alphaPaint, RECT& bmpRect, bool checkClipBox, bool force)
> + {
> + if (m_opacity <= 0)
> + return 0;
> +
> + if (force || m_opacity < 1.) {
> + if (checkClipBox) {
> + RECT clipBox;
> + int clipType = GetClipBox(m_dc, &clipBox);
> + if (clipType == SIMPLEREGION || clipType == COMPLEXREGION)
> + origRect.intersect(clipBox);
> + if (origRect.isEmpty())
> + return 0;
> + }
> +
> + RefPtr<SharedBitmap> bmp = SharedBitmap::createInstance(alphaPaint == AlphaPaintNone, origRect.width(), origRect.height(), false);
> + SetRect(&bmpRect, 0, 0, origRect.width(), origRect.height());
> + if (bmp) {
> + switch (alphaPaint) {
> + case AlphaPaintNone:
> + case AlphaPaintImage:
> + {
> + SharedBitmap::DCHolder dc(bmp.get());
> + if (dc.get()) {
> + BitBlt(dc.get(), 0, 0, origRect.width(), origRect.height(), m_dc, origRect.x(), origRect.y(), SRCCOPY);
> + if (bmp->is32bit() && (!m_bitmap || m_bitmap->is16bit())) {
> + // Set alpha channel
> + unsigned* pixels = (unsigned*)bmp->bytes();
Please use a C++-style cast here.
> +template <typename PixelType, bool Is16bit> void _rotateBitmap(SharedBitmap* destBmp, const SharedBitmap* sourceBmp, const RotationTransform& transform)
This can be marked "static" so it gets internal linkage.
> +{
> + int destW = destBmp->width();
> + int destH = destBmp->height();
> + int sourceW = sourceBmp->width();
> + int sourceH = sourceBmp->height();
> + PixelType* dest = (PixelType*)destBmp->bytes();
> + const PixelType* source = (const PixelType*)sourceBmp->bytes();
Please use C++-style casts here.
> +void rotateBitmap(SharedBitmap* destBmp, const SharedBitmap* sourceBmp, const RotationTransform& transform)
This can be marked "static" so it gets internal linkage.
> +void GraphicsContext::drawRect(const IntRect& rect)
> +{
> + if (!m_data->m_opacity || paintingDisabled() || rect.width() <= 0 || rect.height() <= 0)
> + return;
I thought you were going to use rect.isEmpty() instead of the width() and
height() checks?
> +#define EQUAL_ANGLE(a, b) (fabs((a) - (b)) < 1e-5)
An inline function would be nicer.
> +void GraphicsContext::setPlatformShouldAntialias(bool should)
> +{
> + (void)should;
> + notImplemented();
> +}
> +
> +void GraphicsContext::setLineDash(const DashArray&, float dashOffset)
> +{
> + (void)dashOffset;
> + notImplemented();
> +}
As I said before, you should either use UNUSED_PARAM from wtf/UnusedParam.h, or
omit the parameter names entirely.
This patch still has many instances of names like "transparentDc" instead of
"transparentDC", and still has the single-parameter-per-line style for some
function calls. Please fix those.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list