diff options
author | deanm@chromium.org <deanm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-21 16:05:58 +0000 |
---|---|---|
committer | deanm@chromium.org <deanm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-21 16:05:58 +0000 |
commit | 6ab03fc09aa1a2ea4e8cec6879e6602ad5f4826d (patch) | |
tree | 2eb7056f40fd7479446e4430f1fccada23ed4d89 /base | |
parent | ddb66a8da37425f5fba01eee57c66bc91ce81e2b (diff) | |
download | chromium_src-6ab03fc09aa1a2ea4e8cec6879e6602ad5f4826d.zip chromium_src-6ab03fc09aa1a2ea4e8cec6879e6602ad5f4826d.tar.gz chromium_src-6ab03fc09aa1a2ea4e8cec6879e6602ad5f4826d.tar.bz2 |
Call GdiAlphaBlend directly instead of the AlphaBlend wrapper in msimg32.dll. The wrapper does a few additional santity checks, which I presume GdiAlphaBlend will have to handle anyway. This means we don't depend on msimg32.dll anymore.
Review URL: http://codereview.chromium.org/7813
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3656 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/clipboard_win.cc | 4 | ||||
-rw-r--r-- | base/gfx/bitmap_platform_device_win.cc | 23 | ||||
-rw-r--r-- | base/gfx/vector_device.cc | 14 |
3 files changed, 21 insertions, 20 deletions
diff --git a/base/clipboard_win.cc b/base/clipboard_win.cc index dfdd3db..c22f2a0 100644 --- a/base/clipboard_win.cc +++ b/base/clipboard_win.cc @@ -317,8 +317,8 @@ void Clipboard::WriteBitmapFromHandle(HBITMAP source_hbitmap, // Now we need to blend it into an HBITMAP we can place on the clipboard BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA}; - ::AlphaBlend(compatible_dc, 0, 0, size.width(), size.height(), - source_dc, 0, 0, size.width(), size.height(), bf); + ::GdiAlphaBlend(compatible_dc, 0, 0, size.width(), size.height(), + source_dc, 0, 0, size.width(), size.height(), bf); // Clean up all the handles we just opened ::SelectObject(compatible_dc, old_hbitmap); diff --git a/base/gfx/bitmap_platform_device_win.cc b/base/gfx/bitmap_platform_device_win.cc index d7150b1..0df57c2 100644 --- a/base/gfx/bitmap_platform_device_win.cc +++ b/base/gfx/bitmap_platform_device_win.cc @@ -376,18 +376,19 @@ void BitmapPlatformDeviceWin::drawToHDC(HDC dc, int x, int y, src_rect->top, SRCCOPY); } else { + DCHECK(copy_width != 0 && copy_height != 0); BLENDFUNCTION blend_function = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA}; - AlphaBlend(dc, - x, - y, - copy_width, - copy_height, - source_dc, - src_rect->left, - src_rect->top, - copy_width, - copy_height, - blend_function); + GdiAlphaBlend(dc, + x, + y, + copy_width, + copy_height, + source_dc, + src_rect->left, + src_rect->top, + copy_width, + copy_height, + blend_function); } LoadTransformToDC(source_dc, data_->transform()); diff --git a/base/gfx/vector_device.cc b/base/gfx/vector_device.cc index 7230e2b..26da338 100644 --- a/base/gfx/vector_device.cc +++ b/base/gfx/vector_device.cc @@ -583,13 +583,13 @@ void VectorDevice::InternalDrawBitmap(const SkBitmap& bitmap, int x, int y, DCHECK(result); // Note that this function expect premultiplied colors (!) BLENDFUNCTION blend_function = {AC_SRC_OVER, 0, alpha, AC_SRC_ALPHA}; - result = AlphaBlend(dc, - x, y, // Destination origin. - src_size_x, src_size_y, // Destination size. - bitmap_dc, - 0, 0, // Source origin. - src_size_x, src_size_y, // Source size. - blend_function); + result = GdiAlphaBlend(dc, + x, y, // Destination origin. + src_size_x, src_size_y, // Destination size. + bitmap_dc, + 0, 0, // Source origin. + src_size_x, src_size_y, // Source size. + blend_function); DCHECK(result); result = SetStretchBltMode(dc, previous_mode); DCHECK(result); |