On Thu, Sep 09, 2021 at 03:06:40PM +0200, Jacek Caban wrote:
+static void test_emf_mask_blit(void) +{ + BITMAPINFO bmi = {{ sizeof(bmi) }};
BITMAPINFO only contains one bmiColors element and you're using two later on. Typically you'd point bmi at a bmi_buffer of the correct size.
+ bmi.bmiHeader.biHeight = 3; + bmi.bmiHeader.biWidth = 4; + bmi.bmiHeader.biBitCount = 1; + bmi.bmiHeader.biPlanes = 1; + bmi.bmiHeader.biCompression = BI_RGB; + bmi.bmiHeader.biClrUsed = 1; + bmi.bmiColors[0].rgbRed = bmi.bmiColors[0].rgbGreen = bmi.bmiColors[0].rgbBlue = 0; + bmi.bmiColors[1].rgbRed = bmi.bmiColors[1].rgbGreen = bmi.bmiColors[1].rgbBlue = 255; + mask_bitmap = CreateDIBSection(dib_hdc, &bmi, DIB_RGB_COLORS, &bits, NULL, 0); + ok(!!mask_bitmap, "CreateDIBSection failed, error %d\n", GetLastError()); + memset(bits, ~0, bmi.bmiHeader.biSize);
Did you really mean biSize here? You were probably thinking of biSizeImage, but that's not set by CreateDIBSection, so you'll have to calculate yourself. Huw.