diff options
author | twiz@chromium.org <twiz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-25 15:53:12 +0000 |
---|---|---|
committer | twiz@chromium.org <twiz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-25 15:53:12 +0000 |
commit | e414727ea30e03a5d4582bdbba42d67327605273 (patch) | |
tree | 58746c063aea418e36d5a618c67bdf1bec9e7409 /ui/gfx/blit.cc | |
parent | 33986d3ecde79d6a1bdf2b0edd17fc13bc2cc78b (diff) | |
download | chromium_src-e414727ea30e03a5d4582bdbba42d67327605273.zip chromium_src-e414727ea30e03a5d4582bdbba42d67327605273.tar.gz chromium_src-e414727ea30e03a5d4582bdbba42d67327605273.tar.bz2 |
This change implements a first pass in the effort to remove the dependency of PlatformDevice within Chrome. The Skia library now provides multiple back-ends for the SkDevice class, so PlatformDevice's inheritance of SkDevice, and the assumption of instances of PlatformDevice limits the use of these new back-ends.
A new set of helper functions is provided for the PlatformDevice entry points. Upon construction of a PlatformDevice, a pointer to the interface is cached in the parent SkDevice's SkMetaData. The new helper functions forward calls to the interface cached in the metadata.
BUG=NONE
TEST=NONE
Review URL: http://codereview.chromium.org/7019013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86625 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/blit.cc')
-rw-r--r-- | ui/gfx/blit.cc | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/ui/gfx/blit.cc b/ui/gfx/blit.cc index 76411a3..a9eeef8 100644 --- a/ui/gfx/blit.cc +++ b/ui/gfx/blit.cc @@ -35,7 +35,7 @@ bool HasClipOrTransform(const skia::PlatformCanvas& canvas) { // Now we know the clip is a regular rectangle, make sure it covers the // entire canvas. - const SkBitmap& bitmap = canvas.getTopPlatformDevice().accessBitmap(false); + const SkBitmap& bitmap = skia::GetTopDevice(canvas)->accessBitmap(false); const SkIRect& clip_bounds = clip_region.getBounds(); if (clip_bounds.fLeft != 0 || clip_bounds.fTop != 0 || clip_bounds.fRight != bitmap.width() || @@ -95,9 +95,9 @@ void BlitContextToCanvas(skia::PlatformCanvas *dst_canvas, const Rect& dst_rect, NativeDrawingContext src_context, const Point& src_origin) { - BlitContextToContext(dst_canvas->beginPlatformPaint(), dst_rect, + BlitContextToContext(skia::BeginPlatformPaint(dst_canvas), dst_rect, src_context, src_origin); - dst_canvas->endPlatformPaint(); + skia::EndPlatformPaint(dst_canvas); } void BlitCanvasToContext(NativeDrawingContext dst_context, @@ -105,18 +105,18 @@ void BlitCanvasToContext(NativeDrawingContext dst_context, skia::PlatformCanvas *src_canvas, const Point& src_origin) { BlitContextToContext(dst_context, dst_rect, - src_canvas->beginPlatformPaint(), src_origin); - src_canvas->endPlatformPaint(); + skia::BeginPlatformPaint(src_canvas), src_origin); + skia::EndPlatformPaint(src_canvas); } void BlitCanvasToCanvas(skia::PlatformCanvas *dst_canvas, const Rect& dst_rect, skia::PlatformCanvas *src_canvas, const Point& src_origin) { - BlitContextToContext(dst_canvas->beginPlatformPaint(), dst_rect, - src_canvas->beginPlatformPaint(), src_origin); - src_canvas->endPlatformPaint(); - dst_canvas->endPlatformPaint(); + BlitContextToContext(skia::BeginPlatformPaint(dst_canvas), dst_rect, + skia::BeginPlatformPaint(src_canvas), src_origin); + skia::EndPlatformPaint(src_canvas); + skia::EndPlatformPaint(dst_canvas); } #if defined(OS_WIN) @@ -125,13 +125,12 @@ void ScrollCanvas(skia::PlatformCanvas* canvas, const gfx::Rect& clip, const gfx::Point& amount) { DCHECK(!HasClipOrTransform(*canvas)); // Don't support special stuff. - HDC hdc = canvas->beginPlatformPaint(); + skia::ScopedPlatformPaint scoped_platform_paint(canvas); + HDC hdc = scoped_platform_paint.GetPlatformSurface(); RECT damaged_rect; RECT r = clip.ToRECT(); ScrollDC(hdc, amount.x(), amount.y(), NULL, &r, NULL, &damaged_rect); - - canvas->endPlatformPaint(); } #elif defined(OS_POSIX) @@ -144,7 +143,7 @@ void ScrollCanvas(skia::PlatformCanvas* canvas, const gfx::Point& amount) { DCHECK(!HasClipOrTransform(*canvas)); // Don't support special stuff. SkBitmap& bitmap = const_cast<SkBitmap&>( - canvas->getTopPlatformDevice().accessBitmap(true)); + skia::GetTopDevice(*canvas)->accessBitmap(true)); SkAutoLockPixels lock(bitmap); // We expect all coords to be inside the canvas, so clip here. |