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

Unified Diff: printing/emf_win.cc

Issue 2538133003: Remove unused printing::Emf code. (Closed)
Patch Set: more Created 3 years, 7 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
« no previous file with comments | « printing/emf_win.h ('k') | printing/emf_win_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: printing/emf_win.cc
diff --git a/printing/emf_win.cc b/printing/emf_win.cc
index 9bd3e1eed20e36a624293e13cb43333d3b326705..0008ab031a4498b8e7fc372df0b55fd4f9b993b4 100644
--- a/printing/emf_win.cc
+++ b/printing/emf_win.cc
@@ -15,9 +15,6 @@
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/numerics/safe_conversions.h"
-#include "base/win/scoped_gdi_object.h"
-#include "base/win/scoped_hdc.h"
-#include "base/win/scoped_select_object.h"
#include "skia/ext/skia_utils_win.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/gfx/codec/jpeg_codec.h"
@@ -29,116 +26,6 @@ namespace printing {
namespace {
-int CALLBACK IsAlphaBlendUsedEnumProc(HDC,
- HANDLETABLE*,
- const ENHMETARECORD *record,
- int,
- LPARAM data) {
- bool* result = reinterpret_cast<bool*>(data);
- if (!result)
- return 0;
- switch (record->iType) {
- case EMR_ALPHABLEND: {
- *result = true;
- return 0;
- break;
- }
- }
- return 1;
-}
-
-int CALLBACK RasterizeAlphaBlendProc(HDC metafile_dc,
- HANDLETABLE* handle_table,
- const ENHMETARECORD *record,
- int num_objects,
- LPARAM data) {
- HDC bitmap_dc = *reinterpret_cast<HDC*>(data);
- // Play this command to the bitmap DC.
- ::PlayEnhMetaFileRecord(bitmap_dc, handle_table, record, num_objects);
- switch (record->iType) {
- case EMR_ALPHABLEND: {
- const EMRALPHABLEND* alpha_blend =
- reinterpret_cast<const EMRALPHABLEND*>(record);
- // Don't modify transformation here.
- // Old implementation did reset transformations for DC to identity matrix.
- // That was not correct and cause some bugs, like unexpected cropping.
- // EMRALPHABLEND is rendered into bitmap and metafile contexts with
- // current transformation. If we don't touch them here BitBlt will copy
- // same areas.
- ::BitBlt(metafile_dc,
- alpha_blend->xDest,
- alpha_blend->yDest,
- alpha_blend->cxDest,
- alpha_blend->cyDest,
- bitmap_dc,
- alpha_blend->xDest,
- alpha_blend->yDest,
- SRCCOPY);
- break;
- }
- case EMR_CREATEBRUSHINDIRECT:
- case EMR_CREATECOLORSPACE:
- case EMR_CREATECOLORSPACEW:
- case EMR_CREATEDIBPATTERNBRUSHPT:
- case EMR_CREATEMONOBRUSH:
- case EMR_CREATEPALETTE:
- case EMR_CREATEPEN:
- case EMR_DELETECOLORSPACE:
- case EMR_DELETEOBJECT:
- case EMR_EXTCREATEFONTINDIRECTW:
- // Play object creation command only once.
- break;
-
- default:
- // Play this command to the metafile DC.
- ::PlayEnhMetaFileRecord(metafile_dc, handle_table, record, num_objects);
- break;
- }
- return 1; // Continue enumeration
-}
-
-// Bitmapt for rasterization.
-class RasterBitmap {
- public:
- explicit RasterBitmap(const gfx::Size& raster_size) : saved_object_(nullptr) {
- context_.Set(::CreateCompatibleDC(nullptr));
- if (!context_.IsValid()) {
- NOTREACHED() << "Bitmap DC creation failed";
- return;
- }
- ::SetGraphicsMode(context_.Get(), GM_ADVANCED);
- void* bits = nullptr;
- gfx::Rect bitmap_rect(raster_size);
- skia::CreateBitmapHeader(raster_size.width(), raster_size.height(),
- &header_.bmiHeader);
- bitmap_.reset(CreateDIBSection(context_.Get(), &header_, DIB_RGB_COLORS,
- &bits, nullptr, 0));
- if (!bitmap_.is_valid())
- NOTREACHED() << "Raster bitmap creation for printing failed";
-
- saved_object_ = ::SelectObject(context_.Get(), bitmap_.get());
- RECT rect = bitmap_rect.ToRECT();
- ::FillRect(context_.Get(), &rect,
- static_cast<HBRUSH>(::GetStockObject(WHITE_BRUSH)));
- }
-
- ~RasterBitmap() {
- ::SelectObject(context_.Get(), saved_object_);
- }
-
- HDC context() const {
- return context_.Get();
- }
-
- base::win::ScopedCreateDC context_;
- BITMAPINFO header_;
- base::win::ScopedBitmap bitmap_;
- HGDIOBJ saved_object_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(RasterBitmap);
-};
-
bool DIBFormatNativelySupported(HDC dc, uint32_t escape, const BYTE* bits,
int size) {
BOOL supported = FALSE;
@@ -514,90 +401,4 @@ int CALLBACK Emf::Enumerator::EnhMetaFileProc(HDC hdc,
return 1;
}
-bool Emf::IsAlphaBlendUsed() const {
- bool result = false;
- ::EnumEnhMetaFile(nullptr, emf(), &IsAlphaBlendUsedEnumProc, &result,
- nullptr);
- return result;
-}
-
-std::unique_ptr<Emf> Emf::RasterizeMetafile(int raster_area_in_pixels) const {
- gfx::Rect page_bounds = GetPageBounds(1);
- gfx::Size page_size(page_bounds.size());
- if (page_size.GetArea() <= 0) {
- NOTREACHED() << "Metafile is empty";
- page_bounds = gfx::Rect(1, 1);
- }
-
- float scale = sqrt(
- static_cast<float>(raster_area_in_pixels) / page_size.GetArea());
- page_size.set_width(std::max<int>(1, page_size.width() * scale));
- page_size.set_height(std::max<int>(1, page_size.height() * scale));
-
-
- RasterBitmap bitmap(page_size);
-
- gfx::Rect bitmap_rect(page_size);
- RECT rect = bitmap_rect.ToRECT();
- Playback(bitmap.context(), &rect);
-
- std::unique_ptr<Emf> result = base::MakeUnique<Emf>();
- result->Init();
- HDC hdc = result->context();
- DCHECK(hdc);
- skia::InitializeDC(hdc);
-
- // Params are ignored.
- result->StartPage(page_bounds.size(), page_bounds, 1);
-
- ::ModifyWorldTransform(hdc, nullptr, MWT_IDENTITY);
- XFORM xform = {
- static_cast<float>(page_bounds.width()) / bitmap_rect.width(),
- 0,
- 0,
- static_cast<float>(page_bounds.height()) / bitmap_rect.height(),
- static_cast<float>(page_bounds.x()),
- static_cast<float>(page_bounds.y()),
- };
- ::SetWorldTransform(hdc, &xform);
- ::BitBlt(hdc, 0, 0, bitmap_rect.width(), bitmap_rect.height(),
- bitmap.context(), bitmap_rect.x(), bitmap_rect.y(), SRCCOPY);
-
- result->FinishPage();
- result->FinishDocument();
- return result;
-}
-
-std::unique_ptr<Emf> Emf::RasterizeAlphaBlend() const {
- gfx::Rect page_bounds = GetPageBounds(1);
- if (page_bounds.size().GetArea() <= 0) {
- NOTREACHED() << "Metafile is empty";
- page_bounds = gfx::Rect(1, 1);
- }
-
- RasterBitmap bitmap(page_bounds.size());
-
- // Map metafile page_bounds.x(), page_bounds.y() to bitmap 0, 0.
- XFORM xform = {1,
- 0,
- 0,
- 1,
- static_cast<float>(-page_bounds.x()),
- static_cast<float>(-page_bounds.y())};
- ::SetWorldTransform(bitmap.context(), &xform);
-
- std::unique_ptr<Emf> result = base::MakeUnique<Emf>();
- result->Init();
- HDC hdc = result->context();
- DCHECK(hdc);
- skia::InitializeDC(hdc);
-
- HDC bitmap_dc = bitmap.context();
- RECT rect = page_bounds.ToRECT();
- ::EnumEnhMetaFile(hdc, emf(), &RasterizeAlphaBlendProc, &bitmap_dc, &rect);
-
- result->FinishDocument();
- return result;
-}
-
} // namespace printing
« no previous file with comments | « printing/emf_win.h ('k') | printing/emf_win_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698