< prev index next >

src/java.desktop/windows/native/common/awt/systemscale/systemScale.cpp

Print this page

        

*** 21,31 **** * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ #include "systemScale.h" - #include <d2d1.h> #include <jdk_util.h> #ifndef MDT_EFFECTIVE_DPI #define MDT_EFFECTIVE_DPI 0 #endif --- 21,30 ----
*** 50,62 **** if (scale > 0) { *dpiX = *dpiY = scale; return; } - typedef HRESULT(WINAPI D2D1CreateFactoryFunc) - (D2D1_FACTORY_TYPE, REFIID, - CONST D2D1_FACTORY_OPTIONS*, ID2D1Factory**); typedef HRESULT(WINAPI GetDpiForMonitorFunc)(HMONITOR, int, UINT*, UINT*); static HMODULE hLibSHCoreDll = NULL; static GetDpiForMonitorFunc *lpGetDpiForMonitor = NULL; if (hLibSHCoreDll == NULL) { --- 49,58 ----
*** 73,106 **** if (hResult == S_OK) { *dpiX = static_cast<float>(x); *dpiY = static_cast<float>(y); } } else { ! static HMODULE d2dDll = NULL; ! static BOOL loadAttempted = FALSE; ! static D2D1CreateFactoryFunc *lpD2D1CreateFactory = NULL; ! if (!loadAttempted && d2dDll == NULL) { ! loadAttempted = TRUE; ! d2dDll = JDK_LoadSystemLibrary("d2d1.dll"); ! } ! if (d2dDll != NULL && lpD2D1CreateFactory == NULL) { ! lpD2D1CreateFactory = (D2D1CreateFactoryFunc*)GetProcAddress( ! d2dDll, "D2D1CreateFactory"); ! } ! if (lpD2D1CreateFactory != NULL) { ! ID2D1Factory* m_pDirect2dFactory; ! HRESULT res = lpD2D1CreateFactory ! (D2D1_FACTORY_TYPE_SINGLE_THREADED, ! __uuidof(ID2D1Factory), NULL, ! &m_pDirect2dFactory); ! if (res == S_OK) { ! #pragma warning(push) ! #pragma warning(disable : 4996) // GetDesktopDpi is deprecated. ! m_pDirect2dFactory->GetDesktopDpi(dpiX, dpiY); ! #pragma warning(pop) ! m_pDirect2dFactory->Release(); ! } } } return; } --- 69,83 ---- if (hResult == S_OK) { *dpiX = static_cast<float>(x); *dpiY = static_cast<float>(y); } } else { ! HDC hdc = GetDC(NULL); ! if (hdc) { ! *dpiX = static_cast<float>(GetDeviceCaps(hdc, LOGPIXELSX)); ! *dpiY = static_cast<float>(GetDeviceCaps(hdc, LOGPIXELSY)); ! ReleaseDC(NULL, hdc); } } return; }
< prev index next >