| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <windows.h> | 5 #include <windows.h> |
| 6 #include <psapi.h> | 6 #include <psapi.h> |
| 7 | 7 |
| 8 #include "skia/ext/bitmap_platform_device_win.h" | 8 #include "skia/ext/bitmap_platform_device_win.h" |
| 9 #include "skia/ext/bitmap_platform_device_data.h" | 9 #include "skia/ext/bitmap_platform_device_data.h" |
| 10 #include "skia/ext/platform_canvas.h" | 10 #include "skia/ext/platform_canvas.h" |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 | 253 |
| 254 const SkBitmap& BitmapPlatformDevice::onAccessBitmap(SkBitmap* bitmap) { | 254 const SkBitmap& BitmapPlatformDevice::onAccessBitmap(SkBitmap* bitmap) { |
| 255 // FIXME(brettw) OPTIMIZATION: We should only flush if we know a GDI | 255 // FIXME(brettw) OPTIMIZATION: We should only flush if we know a GDI |
| 256 // operation has occurred on our DC. | 256 // operation has occurred on our DC. |
| 257 if (data_->IsBitmapDCCreated()) | 257 if (data_->IsBitmapDCCreated()) |
| 258 GdiFlush(); | 258 GdiFlush(); |
| 259 return *bitmap; | 259 return *bitmap; |
| 260 } | 260 } |
| 261 | 261 |
| 262 SkDevice* BitmapPlatformDevice::onCreateCompatibleDevice( | 262 SkDevice* BitmapPlatformDevice::onCreateCompatibleDevice( |
| 263 SkBitmap::Config config, int width, int height, bool isOpaque, | 263 SkBitmap::Config config, int width, int height, bool isOpaque, Usage) { |
| 264 Usage /*usage*/) { | |
| 265 SkASSERT(config == SkBitmap::kARGB_8888_Config); | 264 SkASSERT(config == SkBitmap::kARGB_8888_Config); |
| 266 SkDevice* bitmap_device = BitmapPlatformDevice::CreateAndClear(width, height, | 265 return BitmapPlatformDevice::CreateAndClear(width, height, isOpaque); |
| 267 isOpaque); | 266 } |
| 268 return bitmap_device; | 267 |
| 268 // PlatformCanvas impl |
| 269 |
| 270 SkCanvas* CreatePlatformCanvas(int width, |
| 271 int height, |
| 272 bool is_opaque, |
| 273 HANDLE shared_section, |
| 274 OnFailureType failureType) { |
| 275 SkDevice* dev = BitmapPlatformDevice::Create(width, |
| 276 height, |
| 277 is_opaque, |
| 278 shared_section); |
| 279 return CreateCanvas(dev, failureType); |
| 269 } | 280 } |
| 270 | 281 |
| 271 // Port of PlatformBitmap to win | 282 // Port of PlatformBitmap to win |
| 272 | 283 |
| 273 PlatformBitmap::~PlatformBitmap() { | 284 PlatformBitmap::~PlatformBitmap() { |
| 274 if (surface_) | 285 if (surface_) |
| 275 DeleteDC(surface_); | 286 DeleteDC(surface_); |
| 276 | 287 |
| 277 HBITMAP hbitmap = (HBITMAP)platform_extra_; | 288 HBITMAP hbitmap = (HBITMAP)platform_extra_; |
| 278 if (hbitmap) | 289 if (hbitmap) |
| (...skipping 11 matching lines...) Expand all Loading... |
| 290 // When the memory DC is created, its display surface is exactly one | 301 // When the memory DC is created, its display surface is exactly one |
| 291 // monochrome pixel wide and one monochrome pixel high. Since we select our | 302 // monochrome pixel wide and one monochrome pixel high. Since we select our |
| 292 // own bitmap, we must delete the previous one. | 303 // own bitmap, we must delete the previous one. |
| 293 DeleteObject(old_bitmap); | 304 DeleteObject(old_bitmap); |
| 294 // remember the hbitmap, so we can free it in our destructor | 305 // remember the hbitmap, so we can free it in our destructor |
| 295 platform_extra_ = (intptr_t)hbitmap; | 306 platform_extra_ = (intptr_t)hbitmap; |
| 296 return true; | 307 return true; |
| 297 } | 308 } |
| 298 | 309 |
| 299 } // namespace skia | 310 } // namespace skia |
| OLD | NEW |