Update widows ReleaseDC code

This commit is contained in:
vcaesar 2022-02-27 16:33:25 -08:00
parent e755317599
commit 60bf136aa1

View File

@ -85,10 +85,12 @@ MMBitmapRef copyMMBitmapFromDisplayInRect(MMRectInt32 rect, int32_t display_id)
bi.bmiHeader.biClrUsed = 0; bi.bmiHeader.biClrUsed = 0;
bi.bmiHeader.biClrImportant = 0; bi.bmiHeader.biClrImportant = 0;
HWND hwnd;
if (display_id == -1) { if (display_id == -1) {
screen = GetDC(NULL); /* Get entire screen */ screen = GetDC(NULL); /* Get entire screen */
} else { } else {
screen = GetDC((HWND) (uintptr) display_id); hwnd = (HWND) (uintptr) display_id;
screen = GetDC(hwnd);
} }
if (screen == NULL) { return NULL; } if (screen == NULL) { return NULL; }
@ -101,7 +103,7 @@ MMBitmapRef copyMMBitmapFromDisplayInRect(MMRectInt32 rect, int32_t display_id)
screen, rect.origin.x, rect.origin.y, SRCCOPY); screen, rect.origin.x, rect.origin.y, SRCCOPY);
if (smem || SelectObject(screenMem, dib) == NULL || !bitb) { if (smem || SelectObject(screenMem, dib) == NULL || !bitb) {
/* Error copying data. */ /* Error copying data. */
ReleaseDC(NULL, screen); ReleaseDC(hwnd, screen);
DeleteObject(dib); DeleteObject(dib);
if (screenMem != NULL) { DeleteDC(screenMem); } if (screenMem != NULL) { DeleteDC(screenMem); }
@ -117,7 +119,7 @@ MMBitmapRef copyMMBitmapFromDisplayInRect(MMRectInt32 rect, int32_t display_id)
memcpy(bitmap->imageBuffer, data, bitmap->bytewidth * bitmap->height); memcpy(bitmap->imageBuffer, data, bitmap->bytewidth * bitmap->height);
} }
ReleaseDC(NULL, screen); ReleaseDC(hwnd, screen);
DeleteObject(dib); DeleteObject(dib);
DeleteDC(screenMem); DeleteDC(screenMem);