| 505 | //=========================================================================== |
| 506 | |
| 507 | HDC GetDebuggerMemDC(void) |
| 508 | { |
| 509 | if (!g_hDebuggerMemDC) |
| 510 | { |
| 511 | Win32Frame& win32Frame = Win32Frame::GetWin32Frame(); |
| 512 | |
| 513 | HDC hFrameDC = win32Frame.FrameGetDC(); |
| 514 | g_hDebuggerMemDC = CreateCompatibleDC(hFrameDC); |
| 515 | |
| 516 | // CREATE A BITMAPINFO STRUCTURE FOR THE FRAME BUFFER |
| 517 | g_pDebuggerMemFramebufferinfo = (LPBITMAPINFO) new BYTE[sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD)]; |
| 518 | |
| 519 | memset(g_pDebuggerMemFramebufferinfo, 0, sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD)); |
| 520 | g_pDebuggerMemFramebufferinfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); |
| 521 | g_pDebuggerMemFramebufferinfo->bmiHeader.biWidth = 560; |
| 522 | g_pDebuggerMemFramebufferinfo->bmiHeader.biHeight = 384; |
| 523 | g_pDebuggerMemFramebufferinfo->bmiHeader.biPlanes = 1; |
| 524 | g_pDebuggerMemFramebufferinfo->bmiHeader.biBitCount = 32; |
| 525 | g_pDebuggerMemFramebufferinfo->bmiHeader.biCompression = BI_RGB; |
| 526 | g_pDebuggerMemFramebufferinfo->bmiHeader.biClrUsed = 0; |
| 527 | |
| 528 | |
| 529 | // CREATE THE FRAME BUFFER DIB SECTION |
| 530 | g_hDebuggerMemBM = CreateDIBSection( |
| 531 | hFrameDC, |
| 532 | g_pDebuggerMemFramebufferinfo, |
| 533 | DIB_RGB_COLORS, |
| 534 | (LPVOID*)&g_pDebuggerMemFramebits, 0, 0 |
| 535 | ); |
| 536 | SelectObject(g_hDebuggerMemDC, g_hDebuggerMemBM); |
| 537 | } |
| 538 | |
| 539 | _ASSERT(g_hDebuggerMemDC); // TC: Could this be NULL? |
| 540 | return g_hDebuggerMemDC; |
| 541 | } |
| 542 | |
| 543 | void ReleaseDebuggerMemDC(void) |
| 544 | { |
no test coverage detected