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

Side by Side Diff: printing/emf_win.cc

Issue 1492353002: Consolidate Windows bitmap and DC code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move-printing-dc-from-device
Patch Set: fix bad merge Created 4 years, 5 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 unified diff | Download patch
« no previous file with comments | « no previous file | skia/ext/bitmap_platform_device_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "printing/emf_win.h" 5 #include "printing/emf_win.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 explicit RasterBitmap(const gfx::Size& raster_size) 99 explicit RasterBitmap(const gfx::Size& raster_size)
100 : saved_object_(NULL) { 100 : saved_object_(NULL) {
101 context_.Set(::CreateCompatibleDC(NULL)); 101 context_.Set(::CreateCompatibleDC(NULL));
102 if (!context_.IsValid()) { 102 if (!context_.IsValid()) {
103 NOTREACHED() << "Bitmap DC creation failed"; 103 NOTREACHED() << "Bitmap DC creation failed";
104 return; 104 return;
105 } 105 }
106 ::SetGraphicsMode(context_.Get(), GM_ADVANCED); 106 ::SetGraphicsMode(context_.Get(), GM_ADVANCED);
107 void* bits = NULL; 107 void* bits = NULL;
108 gfx::Rect bitmap_rect(raster_size); 108 gfx::Rect bitmap_rect(raster_size);
109 gfx::CreateBitmapHeader(raster_size.width(), raster_size.height(), 109 skia::CreateBitmapHeader(raster_size.width(), raster_size.height(),
110 &header_.bmiHeader); 110 &header_.bmiHeader);
111 bitmap_.reset(CreateDIBSection(context_.Get(), &header_, DIB_RGB_COLORS, 111 bitmap_.reset(CreateDIBSection(context_.Get(), &header_, DIB_RGB_COLORS,
112 &bits, NULL, 0)); 112 &bits, NULL, 0));
113 if (!bitmap_.is_valid()) 113 if (!bitmap_.is_valid())
114 NOTREACHED() << "Raster bitmap creation for printing failed"; 114 NOTREACHED() << "Raster bitmap creation for printing failed";
115 115
116 saved_object_ = ::SelectObject(context_.Get(), bitmap_.get()); 116 saved_object_ = ::SelectObject(context_.Get(), bitmap_.get());
117 RECT rect = bitmap_rect.ToRECT(); 117 RECT rect = bitmap_rect.ToRECT();
118 ::FillRect(context_.Get(), &rect, 118 ::FillRect(context_.Get(), &rect,
119 static_cast<HBRUSH>(::GetStockObject(WHITE_BRUSH))); 119 static_cast<HBRUSH>(::GetStockObject(WHITE_BRUSH)));
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 if (bitmap.get()) { 381 if (bitmap.get()) {
382 SkAutoLockPixels lock(*bitmap.get()); 382 SkAutoLockPixels lock(*bitmap.get());
383 DCHECK_EQ(bitmap->colorType(), kN32_SkColorType); 383 DCHECK_EQ(bitmap->colorType(), kN32_SkColorType);
384 const uint32_t* pixels = 384 const uint32_t* pixels =
385 static_cast<const uint32_t*>(bitmap->getPixels()); 385 static_cast<const uint32_t*>(bitmap->getPixels());
386 if (pixels == NULL) { 386 if (pixels == NULL) {
387 NOTREACHED(); 387 NOTREACHED();
388 return false; 388 return false;
389 } 389 }
390 BITMAPINFOHEADER bmi = {0}; 390 BITMAPINFOHEADER bmi = {0};
391 gfx::CreateBitmapHeader(bitmap->width(), bitmap->height(), &bmi); 391 skia::CreateBitmapHeader(bitmap->width(), bitmap->height(), &bmi);
392 res = (0 != StretchDIBits(hdc, sdib_record->xDest, sdib_record->yDest, 392 res = (0 != StretchDIBits(hdc, sdib_record->xDest, sdib_record->yDest,
393 sdib_record->cxDest, 393 sdib_record->cxDest,
394 sdib_record->cyDest, sdib_record->xSrc, 394 sdib_record->cyDest, sdib_record->xSrc,
395 sdib_record->ySrc, 395 sdib_record->ySrc,
396 sdib_record->cxSrc, sdib_record->cySrc, 396 sdib_record->cxSrc, sdib_record->cySrc,
397 pixels, 397 pixels,
398 reinterpret_cast<const BITMAPINFO *>(&bmi), 398 reinterpret_cast<const BITMAPINFO *>(&bmi),
399 sdib_record->iUsageSrc, 399 sdib_record->iUsageSrc,
400 sdib_record->dwRop)); 400 sdib_record->dwRop));
401 } 401 }
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 RECT rect = page_bounds.ToRECT(); 600 RECT rect = page_bounds.ToRECT();
601 ::EnumEnhMetaFile(hdc, emf(), &RasterizeAlphaBlendProc, &bitmap_dc, &rect); 601 ::EnumEnhMetaFile(hdc, emf(), &RasterizeAlphaBlendProc, &bitmap_dc, &rect);
602 602
603 result->FinishDocument(); 603 result->FinishDocument();
604 604
605 return result; 605 return result;
606 } 606 }
607 607
608 608
609 } // namespace printing 609 } // namespace printing
OLDNEW
« no previous file with comments | « no previous file | skia/ext/bitmap_platform_device_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698