Chromium Code Reviews| Index: skia/ext/bitmap_platform_device_win.cc |
| =================================================================== |
| --- skia/ext/bitmap_platform_device_win.cc (revision 97282) |
| +++ skia/ext/bitmap_platform_device_win.cc (working copy) |
| @@ -8,6 +8,7 @@ |
| #include "skia/ext/bitmap_platform_device_win.h" |
| #include "skia/ext/bitmap_platform_device_data.h" |
| +#include "skia/ext/platform_device.h" |
| #include "third_party/skia/include/core/SkMatrix.h" |
| #include "third_party/skia/include/core/SkRefCnt.h" |
| #include "third_party/skia/include/core/SkRegion.h" |
| @@ -144,18 +145,20 @@ |
| // The device object will take ownership of the HBITMAP. The initial refcount |
| // of the data object will be 1, which is what the constructor expects. |
| - return new BitmapPlatformDevice(new BitmapPlatformDeviceData(hbitmap), |
| - bitmap); |
| + BitmapPlatformDevice* bitmap_platform_device = |
| + new BitmapPlatformDevice(new BitmapPlatformDeviceData(hbitmap), |
| + bitmap); |
| + return bitmap_platform_device; |
| } |
| // static |
| BitmapPlatformDevice* BitmapPlatformDevice::create(int width, |
| - int height, |
| - bool is_opaque, |
| - HANDLE shared_section) { |
| + int height, |
|
vandebo (ex-Chrome)
2011/08/19 21:54:22
nit: indent
Jeff Timanus
2011/08/20 02:31:04
Done.
|
| + bool is_opaque, |
| + HANDLE shared_section) { |
| HDC screen_dc = GetDC(NULL); |
| - BitmapPlatformDevice* device = BitmapPlatformDevice::create( |
| - screen_dc, width, height, is_opaque, shared_section); |
| + SkDevice* device = BitmapPlatformDevice::create(screen_dc, width, height, |
| + is_opaque, shared_section); |
| ReleaseDC(NULL, screen_dc); |
| return device; |
| } |
| @@ -165,10 +168,16 @@ |
| BitmapPlatformDevice::BitmapPlatformDevice( |
| BitmapPlatformDeviceData* data, |
| const SkBitmap& bitmap) |
| - : PlatformDevice(bitmap), |
| + : PlatformDevice(this), |
| + SkDevice(bitmap), |
| data_(data) { |
| // The data object is already ref'ed for us by create(). |
| SkDEBUGCODE(begin_paint_count_ = 0); |
| + |
| + // Pass false, because BitmapPlatformDevice inherits both SkDevice, and |
| + // PlatformDevice, so there is no need to explicitly bind the lifetime of the |
| + // two classes. |
| + SetPlatformDevice(this, this, false); |
|
vandebo (ex-Chrome)
2011/08/19 21:54:22
This generally seems pretty fragile, is there any
Jeff Timanus
2011/08/20 02:31:04
Yes, I was also worried about the fragile requirem
|
| } |
| BitmapPlatformDevice::~BitmapPlatformDevice() { |
| @@ -262,4 +271,3 @@ |
| } |
| } // namespace skia |
| - |