49{
54#ifdef STRETCH_VIA_DIB
57#endif
59
61
63 {
64 WARN(
"bad bitmap object %p passed for hdc %p\n",
hBitmap, devSrc->
hdc);
66 }
67#ifdef STRETCH_VIA_DIB
68 nBPP = BM.bmPlanes * BM.bmBitsPixel;
69 if(nBPP > 8) nBPP = 24;
83 lpBMI->
biClrUsed = nBPP <= 8 ? 1 << nBPP : 0;
88
89 TRACE(
"MF_StretchBltViaDIB->len = %d rop=%x PixYPM=%d Caps=%d\n",
91
95#else
100 *(mr->
rdParm +10) = BM.bmWidth;
101 *(mr->
rdParm +11) = BM.bmHeight;
102 *(mr->
rdParm +12) = BM.bmWidthBytes;
103 *(mr->
rdParm +13) = BM.bmPlanes;
104 *(mr->
rdParm +14) = BM.bmBitsPixel;
107#endif
108 {
121 }
122 else
126}
struct BITMAPINFOHEADER * LPBITMAPINFOHEADER
static int get_dib_stride(int width, int bpp)
static int get_dib_image_size(const BITMAPINFO *info)
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
const struct gdi_dc_funcs * funcs
#define META_DIBSTRETCHBLT
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
int WINAPI GetDIBits(_In_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT start, _In_ UINT cLines, _Out_opt_ LPVOID lpvBits, _At_((LPBITMAPINFOHEADER) lpbmi, _Inout_) LPBITMAPINFO lpbmi, _In_ UINT usage)
HGDIOBJ WINAPI GetCurrentObject(_In_ HDC, _In_ UINT)
LONG WINAPI GetBitmapBits(_In_ HBITMAP hbit, _In_ LONG cb, _Out_writes_bytes_(cb) LPVOID lpvBits)