On 8/12/21 11:43 AM, Dmitry Timoshkov wrote:
/*********************************************************************** * BitBlt (GDI32.@) */ -BOOL WINAPI DECLSPEC_HOTPATCH BitBlt( HDC hdcDst, INT xDst, INT yDst, INT width, - INT height, HDC hdcSrc, INT xSrc, INT ySrc, DWORD rop ) +BOOL WINAPI NtGdiBitBlt( HDC hdc_dst, INT x_dst, INT y_dst, INT width, INT height, + HDC hdc_src, INT x_src, INT y_src, DWORD rop, DWORD bk_color, FLONG fl ) { - if (!rop_uses_src( rop )) return PatBlt( hdcDst, xDst, yDst, width, height, rop ); - else return StretchBlt( hdcDst, xDst, yDst, width, height, - hdcSrc, xSrc, ySrc, width, height, rop ); + return NtGdiStretchBlt( hdc_dst, x_dst, y_dst, width, height, + hdc_src, x_src, y_src, width, height, rop, bk_color ); } ... +/*********************************************************************** + * BitBlt (GDI32.@) + */ +BOOL WINAPI BitBlt( HDC hdc_dst, INT x_dst, INT y_dst, INT width, INT height, + HDC hdc_src, INT x_src, INT y_src, DWORD rop ) +{ + DC_ATTR *dc_attr; + + if (is_meta_dc( hdc_dst )) return METADC_BitBlt( hdc_dst, x_dst, y_dst, width, height, + hdc_src, x_src, y_src, rop ); + if (!(dc_attr = get_dc_attr( hdc_dst ))) return FALSE; + if (dc_attr->emf && !EMFDC_BitBlt( dc_attr, x_dst, y_dst, width, height, + hdc_src, x_src, y_src, rop )) + return FALSE; + return NtGdiBitBlt( hdc_dst, x_dst, y_dst, width, height, + hdc_src, x_src, y_src, rop, 0 /* FIXME */, 0 /* FIXME */ ); +} This effectively reverts cde2fbb08e2810572ed393afb2f7939959eb3bd9. What is the reason for that?
It wasn't intentional, I will send another version. Thanks, Jacek