diff options
Diffstat (limited to 'vcl/win/source/gdi/salvd.cxx')
-rw-r--r-- | vcl/win/source/gdi/salvd.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/vcl/win/source/gdi/salvd.cxx b/vcl/win/source/gdi/salvd.cxx index 2b00c0377be3..c85133d6584c 100644 --- a/vcl/win/source/gdi/salvd.cxx +++ b/vcl/win/source/gdi/salvd.cxx @@ -38,6 +38,9 @@ HBITMAP WinSalVirtualDevice::ImplCreateVirDevBitmap(HDC hDC, long nDX, long nDY, } else { + if (nBitCount == 0) + nBitCount = (WORD)GetDeviceCaps(hDC, BITSPIXEL); + // #146839# Don't use CreateCompatibleBitmap() - there seem to // be build-in limits for those HBITMAPs, at least this fails // rather often on large displays/multi-monitor setups. @@ -46,8 +49,7 @@ HBITMAP WinSalVirtualDevice::ImplCreateVirDevBitmap(HDC hDC, long nDX, long nDY, aBitmapInfo.bmiHeader.biWidth = nDX; aBitmapInfo.bmiHeader.biHeight = nDY; aBitmapInfo.bmiHeader.biPlanes = 1; - aBitmapInfo.bmiHeader.biBitCount = (WORD)GetDeviceCaps( hDC, - BITSPIXEL ); + aBitmapInfo.bmiHeader.biBitCount = nBitCount; aBitmapInfo.bmiHeader.biCompression = BI_RGB; aBitmapInfo.bmiHeader.biSizeImage = 0; aBitmapInfo.bmiHeader.biXPelsPerMeter = 0; |