Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(308)

Unified Diff: skia/ext/vector_platform_device_emf_win.cc

Issue 7633040: CL removing inheritance of SkDevice from PlatformDevice. Flavours of PlatformDevice classes now ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Fix use of drawSprite. Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: skia/ext/vector_platform_device_emf_win.cc
===================================================================
--- skia/ext/vector_platform_device_emf_win.cc (revision 96545)
+++ skia/ext/vector_platform_device_emf_win.cc (working copy)
@@ -15,9 +15,9 @@
namespace skia {
//static
-PlatformDevice* VectorPlatformDeviceEmf::CreateDevice(int width, int height,
- bool is_opaque,
- HANDLE shared_section) {
+SkDevice* VectorPlatformDeviceEmf::CreateDevice(int width, int height,
+ bool is_opaque,
+ HANDLE shared_section) {
if (!is_opaque) {
// TODO(maruel): http://crbug.com/18382 When restoring a semi-transparent
// layer, i.e. merging it, we need to rasterize it because GDI doesn't
@@ -40,7 +40,7 @@
// SkScalarRound(value) as SkScalarRound(value * 10). Safari is already
// doing the same for text rendering.
SkASSERT(shared_section);
- PlatformDevice* device = VectorPlatformDeviceEmf::create(
+ SkDevice* device = VectorPlatformDeviceEmf::create(
reinterpret_cast<HDC>(shared_section), width, height);
return device;
}
@@ -59,9 +59,7 @@
hdr->biClrImportant = 0;
}
-VectorPlatformDeviceEmf* VectorPlatformDeviceEmf::create(HDC dc,
- int width,
- int height) {
+SkDevice* VectorPlatformDeviceEmf::create(HDC dc, int width, int height) {
InitializeDC(dc);
// Link the SkBitmap to the current selected bitmap in the device context.
@@ -92,16 +90,23 @@
if (!succeeded)
bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height);
- return new VectorPlatformDeviceEmf(dc, bitmap);
+ VectorPlatformDeviceEmf* vector_device = new VectorPlatformDeviceEmf(dc, bitmap);
+ //return new VectorPlatformDeviceEmf(dc, bitmap);
+ return vector_device->GetOwningDevice();
}
VectorPlatformDeviceEmf::VectorPlatformDeviceEmf(HDC dc, const SkBitmap& bitmap)
- : PlatformDevice(bitmap),
+ : SkDevice(bitmap),
+ PlatformDevice(static_cast<SkDevice*>(this)),
hdc_(dc),
previous_brush_(NULL),
previous_pen_(NULL),
alpha_blend_used_(false) {
transform_.reset();
+ // Pass false, because VectorPlatformDeviceEmf inherits both SkDevice, and
+ // PlatformDevice, so there is no need to explicitly bind the lifetime of the
+ // two classes.
+ SetPlatformDevice(device_, this, false);
}
VectorPlatformDeviceEmf::~VectorPlatformDeviceEmf() {

Powered by Google App Engine
This is Rietveld 408576698