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
3 // found in the LICENSE file.
5 #ifndef UI_GFX_GDI_UTIL_H_
6 #define UI_GFX_GDI_UTIL_H_
11 #include "ui/gfx/geometry/rect.h"
12 #include "ui/gfx/gfx_export.h"
13 #include "ui/gfx/path.h"
17 // Creates a BITMAPINFOHEADER structure given the bitmap's size.
18 GFX_EXPORT
void CreateBitmapHeader(int width
, int height
,
19 BITMAPINFOHEADER
* hdr
);
21 // Creates a BITMAPV4HEADER structure given the bitmap's size. You probably
22 // only need to use BMP V4 if you need transparency (alpha channel). This
23 // function sets the AlphaMask to 0xff000000.
24 GFX_EXPORT
void CreateBitmapV4Header(int width
, int height
,
27 // Creates a monochrome bitmap header.
28 void CreateMonochromeBitmapHeader(int width
, int height
, BITMAPINFOHEADER
* hdr
);
30 // Modify the given hrgn by subtracting the given rectangles.
31 GFX_EXPORT
void SubtractRectanglesFromRegion(
33 const std::vector
<gfx::Rect
>& cutouts
);
35 GFX_EXPORT HRGN
ConvertPathToHRGN(const gfx::Path
& path
);
37 // Calculate scale to fit an entire page on DC.
38 GFX_EXPORT
float CalculatePageScale(HDC dc
, int page_width
, int page_height
);
40 // Apply scaling to the DC.
41 GFX_EXPORT
bool ScaleDC(HDC dc
, float scale_factor
);
43 GFX_EXPORT
void StretchDIBits(HDC hdc
,
44 int dest_x
, int dest_y
, int dest_w
, int dest_h
,
45 int src_x
, int src_y
, int src_w
, int src_h
,
46 void* pixels
, const BITMAPINFO
* bitmap_info
);
50 #endif // UI_GFX_GDI_UTIL_H_