Index: core/src/fxge/win32/fx_win32_device.cpp |
diff --git a/core/src/fxge/win32/fx_win32_device.cpp b/core/src/fxge/win32/fx_win32_device.cpp |
index b0dbc14ebc08a126e0a32788e80416f5bb534533..18bcc595a45be21cf657036c925939440e73bcfa 100644 |
--- a/core/src/fxge/win32/fx_win32_device.cpp |
+++ b/core/src/fxge/win32/fx_win32_device.cpp |
@@ -267,7 +267,8 @@ void CWin32FontInfo::GetJapanesePreference(CFX_ByteString& face, int weight, int |
} |
} |
return; |
- } else if (face.Find("Mincho") >= 0 || face.Find("\x96\xbe\x92\xa9") >= 0) { |
+ } |
+ if (face.Find("Mincho") >= 0 || face.Find("\x96\xbe\x92\xa9") >= 0) { |
if (face.Find("PMincho") >= 0 || face.Find("\x82\x6f\x96\xbe\x92\xa9") >= 0) { |
face = "MS PMincho"; |
} else { |
@@ -989,8 +990,10 @@ FX_BOOL CGdiDisplayDriver::SetDIBits(const CFX_DIBSource* pSource, FX_DWORD colo |
if (!bGDI) { |
CFX_DIBitmap background; |
if (!background.Create(width, height, FXDIB_Rgb32) || |
- !GetDIBits(&background, left, top, NULL) || |
- !background.CompositeMask(0, 0, width, height, pSource, color, 0, 0, FXDIB_BLEND_NORMAL, NULL, FALSE, alpha_flag, pIccTransform)) { |
+ !GetDIBits(&background, left, top, NULL) || |
+ !background.CompositeMask(0, 0, width, height, pSource, color, |
+ 0, 0, FXDIB_BLEND_NORMAL, NULL, FALSE, |
+ alpha_flag, pIccTransform)) { |
return FALSE; |
} |
FX_RECT src_rect(0, 0, width, height); |
@@ -999,23 +1002,22 @@ FX_BOOL CGdiDisplayDriver::SetDIBits(const CFX_DIBSource* pSource, FX_DWORD colo |
FX_RECT clip_rect(left, top, left + pSrcRect->Width(), top + pSrcRect->Height()); |
return StretchDIBits(pSource, color, left - pSrcRect->left, top - pSrcRect->top, width, height, |
&clip_rect, 0, alpha_flag, pIccTransform, FXDIB_BLEND_NORMAL); |
- } else { |
- int width = pSrcRect->Width(), height = pSrcRect->Height(); |
- if (pSource->HasAlpha()) { |
- CFX_DIBitmap bitmap; |
- if (!bitmap.Create(width, height, FXDIB_Rgb) || |
- !GetDIBits(&bitmap, left, top, NULL) || |
- !bitmap.CompositeBitmap(0, 0, width, height, pSource, pSrcRect->left, pSrcRect->top, FXDIB_BLEND_NORMAL, NULL, FALSE, pIccTransform)) { |
- return FALSE; |
- } |
- FX_RECT src_rect(0, 0, width, height); |
- return SetDIBits(&bitmap, 0, &src_rect, left, top, FXDIB_BLEND_NORMAL, 0, NULL); |
- } |
- CFX_DIBExtractor temp(pSource); |
- CFX_DIBitmap* pBitmap = temp; |
- if (pBitmap) { |
- return GDI_SetDIBits(pBitmap, pSrcRect, left, top, pIccTransform); |
+ } |
+ int width = pSrcRect->Width(), height = pSrcRect->Height(); |
+ if (pSource->HasAlpha()) { |
+ CFX_DIBitmap bitmap; |
+ if (!bitmap.Create(width, height, FXDIB_Rgb) || |
+ !GetDIBits(&bitmap, left, top, NULL) || |
+ !bitmap.CompositeBitmap(0, 0, width, height, pSource, pSrcRect->left, pSrcRect->top, FXDIB_BLEND_NORMAL, NULL, FALSE, pIccTransform)) { |
+ return FALSE; |
} |
+ FX_RECT src_rect(0, 0, width, height); |
+ return SetDIBits(&bitmap, 0, &src_rect, left, top, FXDIB_BLEND_NORMAL, 0, NULL); |
+ } |
+ CFX_DIBExtractor temp(pSource); |
+ CFX_DIBitmap* pBitmap = temp; |
+ if (pBitmap) { |
+ return GDI_SetDIBits(pBitmap, pSrcRect, left, top, pIccTransform); |
} |
return FALSE; |
} |
@@ -1045,9 +1047,10 @@ FX_BOOL CGdiDisplayDriver::StretchDIBits(const CFX_DIBSource* pSource, FX_DWORD |
int alpha_flag, void* pIccTransform, int blend_type) |
{ |
ASSERT(pSource != NULL && pClipRect != NULL); |
- if (flags || dest_width > 10000 || dest_width < -10000 || dest_height > 10000 || dest_height < -10000) |
+ if (flags || dest_width > 10000 || dest_width < -10000 || dest_height > 10000 || dest_height < -10000) { |
return UseFoxitStretchEngine(pSource, color, dest_left, dest_top, dest_width, dest_height, |
pClipRect, flags, alpha_flag, pIccTransform, blend_type); |
+ } |
if (pSource->IsAlphaMask()) { |
FX_RECT image_rect; |
image_rect.left = dest_width > 0 ? dest_left : dest_left + dest_width; |
@@ -1064,8 +1067,8 @@ FX_BOOL CGdiDisplayDriver::StretchDIBits(const CFX_DIBSource* pSource, FX_DWORD |
} |
CFX_DIBitmap background; |
if (!background.Create(clip_width, clip_height, FXDIB_Rgb32) || |
- !GetDIBits(&background, image_rect.left + clip_rect.left, image_rect.top + clip_rect.top, NULL) || |
- !background.CompositeMask(0, 0, clip_width, clip_height, pStretched, color, 0, 0, FXDIB_BLEND_NORMAL, NULL, FALSE, alpha_flag, pIccTransform)) { |
+ !GetDIBits(&background, image_rect.left + clip_rect.left, image_rect.top + clip_rect.top, NULL) || |
+ !background.CompositeMask(0, 0, clip_width, clip_height, pStretched, color, 0, 0, FXDIB_BLEND_NORMAL, NULL, FALSE, alpha_flag, pIccTransform)) { |
delete pStretched; |
return FALSE; |
} |
@@ -1073,25 +1076,24 @@ FX_BOOL CGdiDisplayDriver::StretchDIBits(const CFX_DIBSource* pSource, FX_DWORD |
FX_BOOL ret = SetDIBits(&background, 0, &src_rect, image_rect.left + clip_rect.left, image_rect.top + clip_rect.top, FXDIB_BLEND_NORMAL, 0, NULL); |
delete pStretched; |
return ret; |
- } else { |
- if (pSource->HasAlpha()) { |
- CWin32Platform* pPlatform = (CWin32Platform*)CFX_GEModule::Get()->GetPlatformData(); |
- if (pPlatform->m_GdiplusExt.IsAvailable() && pIccTransform == NULL && !pSource->IsCmykImage()) { |
- CFX_DIBExtractor temp(pSource); |
- CFX_DIBitmap* pBitmap = temp; |
- if (pBitmap == NULL) { |
- return FALSE; |
- } |
- return pPlatform->m_GdiplusExt.StretchDIBits(m_hDC, pBitmap, dest_left, dest_top, dest_width, dest_height, pClipRect, flags); |
+ } |
+ if (pSource->HasAlpha()) { |
+ CWin32Platform* pPlatform = (CWin32Platform*)CFX_GEModule::Get()->GetPlatformData(); |
+ if (pPlatform->m_GdiplusExt.IsAvailable() && pIccTransform == NULL && !pSource->IsCmykImage()) { |
+ CFX_DIBExtractor temp(pSource); |
+ CFX_DIBitmap* pBitmap = temp; |
+ if (pBitmap == NULL) { |
+ return FALSE; |
} |
- return UseFoxitStretchEngine(pSource, color, dest_left, dest_top, dest_width, dest_height, |
- pClipRect, flags, alpha_flag, pIccTransform, blend_type); |
- } |
- CFX_DIBExtractor temp(pSource); |
- CFX_DIBitmap* pBitmap = temp; |
- if (pBitmap) { |
- return GDI_StretchDIBits(pBitmap, dest_left, dest_top, dest_width, dest_height, flags, pIccTransform); |
+ return pPlatform->m_GdiplusExt.StretchDIBits(m_hDC, pBitmap, dest_left, dest_top, dest_width, dest_height, pClipRect, flags); |
} |
+ return UseFoxitStretchEngine(pSource, color, dest_left, dest_top, dest_width, dest_height, |
+ pClipRect, flags, alpha_flag, pIccTransform, blend_type); |
+ } |
+ CFX_DIBExtractor temp(pSource); |
+ CFX_DIBitmap* pBitmap = temp; |
+ if (pBitmap) { |
+ return GDI_StretchDIBits(pBitmap, dest_left, dest_top, dest_width, dest_height, flags, pIccTransform); |
} |
return FALSE; |
} |