< prev index next >

src/java.desktop/windows/native/libawt/windows/awt_Robot.cpp

Print this page

        

*** 78,87 **** --- 78,94 ---- // value itself is now passed, cast as a PVOID so as to // compile. -bchristi 10/02/2001 (PVOID)newSpeed, SPIF_SENDCHANGE); + int primaryIndex = AwtWin32GraphicsDevice::GetDefaultDeviceIndex(); + Devices::InstanceAccess devices; + AwtWin32GraphicsDevice *device = devices->GetDevice(primaryIndex); + + x = (device == NULL) ? x : device->ScaleUpX(x); + y = (device == NULL) ? y : device->ScaleUpY(y); + POINT curPos; ::GetCursorPos(&curPos); x -= curPos.x; y -= curPos.y;
*** 215,229 **** int primaryIndex = AwtWin32GraphicsDevice::GetDefaultDeviceIndex(); hOldPalette = AwtWin32GraphicsDevice::SelectPalette(hdcMem, primaryIndex); AwtWin32GraphicsDevice::RealizePalette(hdcMem, primaryIndex); // copy screen image to offscreen bitmap // CAPTUREBLT flag is required to capture WS_EX_LAYERED windows' contents // correctly on Win2K/XP VERIFY(::BitBlt(hdcMem, 0, 0, width, height, hdcScreen, x, y, ! SRCCOPY|CAPTUREBLT) != 0); static const int BITS_PER_PIXEL = 32; static const int BYTES_PER_PIXEL = BITS_PER_PIXEL/8; if (!IS_SAFE_SIZE_MUL(width, height)) throw std::bad_alloc(); --- 222,249 ---- int primaryIndex = AwtWin32GraphicsDevice::GetDefaultDeviceIndex(); hOldPalette = AwtWin32GraphicsDevice::SelectPalette(hdcMem, primaryIndex); AwtWin32GraphicsDevice::RealizePalette(hdcMem, primaryIndex); + Devices::InstanceAccess devices; + AwtWin32GraphicsDevice *device = devices->GetDevice(primaryIndex); + int sWidth = (device == NULL) ? width : device->ScaleUpX(width); + int sHeight = (device == NULL) ? height : device->ScaleUpY(height); + // copy screen image to offscreen bitmap // CAPTUREBLT flag is required to capture WS_EX_LAYERED windows' contents // correctly on Win2K/XP + if (width == sWidth && height == sHeight) { VERIFY(::BitBlt(hdcMem, 0, 0, width, height, hdcScreen, x, y, ! SRCCOPY | CAPTUREBLT) != 0); ! } else { ! int sX = (device == NULL) ? x : device->ScaleUpX(x); ! int sY = (device == NULL) ? y : device->ScaleUpY(y); ! VERIFY(::StretchBlt(hdcMem, 0, 0, width, height, ! hdcScreen, sX, sY, sWidth, sHeight, ! SRCCOPY | CAPTUREBLT) != 0); ! } static const int BITS_PER_PIXEL = 32; static const int BYTES_PER_PIXEL = BITS_PER_PIXEL/8; if (!IS_SAFE_SIZE_MUL(width, height)) throw std::bad_alloc();
< prev index next >