diff options
Diffstat (limited to 'src/windows/native/sun/java2d/windows/WindowsFlags.cpp')
-rw-r--r-- | src/windows/native/sun/java2d/windows/WindowsFlags.cpp | 92 |
1 files changed, 7 insertions, 85 deletions
diff --git a/src/windows/native/sun/java2d/windows/WindowsFlags.cpp b/src/windows/native/sun/java2d/windows/WindowsFlags.cpp index 8da8df92a..b7040b8d8 100644 --- a/src/windows/native/sun/java2d/windows/WindowsFlags.cpp +++ b/src/windows/native/sun/java2d/windows/WindowsFlags.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,15 +28,11 @@ #include <awt.h> #include "Trace.h" #include "WindowsFlags.h" -#include "dxInit.h" -BOOL ddVramForced; // disable punting of ddraw buffers BOOL accelReset; // reset registry 2d acceleration settings -BOOL useDD; // ddraw enabled flag BOOL useD3D; // d3d enabled flag BOOL forceD3DUsage; // force d3d on or off jboolean g_offscreenSharing; // JAWT accelerated surface sharing -BOOL useDDLock; // Disabled for win2k/XP BOOL checkRegistry; // Diagnostic tool: outputs 2d registry settings BOOL disableRegistry; // Diagnostic tool: disables registry interaction BOOL setHighDPIAware; // Whether to set the high-DPI awareness flag @@ -44,19 +40,15 @@ BOOL setHighDPIAware; // Whether to set the high-DPI awareness flag extern WCHAR *j2dAccelKey; // Name of java2d root key extern WCHAR *j2dAccelDriverKey; // Name of j2d per-device key -static jfieldID ddEnabledID; static jfieldID d3dEnabledID; static jfieldID d3dSetID; -static jfieldID ddSetID; static jclass wFlagsClassID; void SetIDs(JNIEnv *env, jclass wFlagsClass) { wFlagsClassID = (jclass)env->NewGlobalRef(wFlagsClass); - ddEnabledID = env->GetStaticFieldID(wFlagsClass, "ddEnabled", "Z"); d3dEnabledID = env->GetStaticFieldID(wFlagsClass, "d3dEnabled", "Z"); d3dSetID = env->GetStaticFieldID(wFlagsClass, "d3dSet", "Z"); - ddSetID = env->GetStaticFieldID(wFlagsClass, "ddSet", "Z"); } BOOL GetStaticBoolean(JNIEnv *env, jclass wfClass, const char *fieldName) @@ -74,8 +66,6 @@ jobject GetStaticObject(JNIEnv *env, jclass wfClass, const char *fieldName, void GetFlagValues(JNIEnv *env, jclass wFlagsClass) { - useDD = env->GetStaticBooleanField(wFlagsClass, ddEnabledID); - jboolean ddSet = env->GetStaticBooleanField(wFlagsClass, ddSetID); jboolean d3dEnabled = env->GetStaticBooleanField(wFlagsClass, d3dEnabledID); jboolean d3dSet = env->GetStaticBooleanField(wFlagsClass, d3dSetID); if (!d3dSet) { @@ -99,90 +89,23 @@ void GetFlagValues(JNIEnv *env, jclass wFlagsClass) } useD3D = d3dEnabled; forceD3DUsage = d3dSet; - ddVramForced = GetStaticBoolean(env, wFlagsClass, "ddVramForced"); g_offscreenSharing = GetStaticBoolean(env, wFlagsClass, "offscreenSharingEnabled"); - useDDLock = GetStaticBoolean(env, wFlagsClass, "ddLockEnabled"); - jboolean ddLockSet = GetStaticBoolean(env, wFlagsClass, "ddLockSet"); accelReset = GetStaticBoolean(env, wFlagsClass, "accelReset"); checkRegistry = GetStaticBoolean(env, wFlagsClass, "checkRegistry"); disableRegistry = GetStaticBoolean(env, wFlagsClass, "disableRegistry"); jstring javaVersionString = (jstring)GetStaticObject(env, wFlagsClass, "javaVersion", "Ljava/lang/String;"); - jboolean isCopy; - const jchar *javaVersion = env->GetStringChars(javaVersionString, - &isCopy); - jsize versionLength = env->GetStringLength(javaVersionString); - size_t j2dRootKeyLength = wcslen(J2D_ACCEL_KEY_ROOT); - j2dAccelKey = (WCHAR *)safe_Calloc((j2dRootKeyLength + versionLength + 2), - sizeof(WCHAR)); - wcscpy(j2dAccelKey, J2D_ACCEL_KEY_ROOT); - wcscat(j2dAccelKey, javaVersion); - wcscat(j2dAccelKey, L"\\"); - j2dAccelDriverKey = - (WCHAR *)safe_Calloc((wcslen(j2dAccelKey) + - wcslen(J2D_ACCEL_DRIVER_SUBKEY) + 1), - sizeof(WCHAR)); - wcscpy(j2dAccelDriverKey, j2dAccelKey); - wcscat(j2dAccelDriverKey, J2D_ACCEL_DRIVER_SUBKEY); - env->ReleaseStringChars(javaVersionString, javaVersion); setHighDPIAware = (IS_WINVISTA && GetStaticBoolean(env, wFlagsClass, "setHighDPIAware")); - // Change default value of some flags based on OS-specific requirements - if (IS_WINVISTA && !(ddSet && useDD)) { - // Disable ddraw on vista due to issues with mixing GDI and ddraw - // unless ddraw is forced - SetDDEnabledFlag(env, FALSE); - J2dRlsTraceLn(J2D_TRACE_WARNING, - "GetFlagValues: DDraw/D3D is disabled on Windows Vista"); - } - - if (IS_NT && !(IS_WIN2000)) { - // Do not enable d3d on NT4; d3d is only supported through - // software on that platform - SetD3DEnabledFlag(env, FALSE, FALSE); - J2dRlsTraceLn(J2D_TRACE_WARNING, - "GetFlagValues: D3D is disabled on Win NT"); - } - if (IS_WIN64 && !d3dSet) { - // Only enable d3d on Itanium if user forces it on. - // D3d was not functioning on initial XP Itanium releases - // so we do not want it suddenly enabled in the field without - // having tested that codepath first. - SetD3DEnabledFlag(env, FALSE, FALSE); - J2dRlsTraceLn(J2D_TRACE_WARNING, - "GetFlagValues: D3D is disabled on 64-bit OSs"); - } - if (IS_WIN2000 && !ddLockSet) { // valid for win2k, XP, and future OSs - // Fix for cursor flicker on win2k and XP (bug 4409306). The - // fix is to avoid using DDraw for locking the - // screen. Ideally, we will handle most operations to the - // screen through new GDI Blt loops (GDIBlitLoops.cpp), - // but failing there we will punt to GDI instead of DDraw for - // locking the screen. - useDDLock = FALSE; - J2dRlsTraceLn(J2D_TRACE_WARNING, - "GetFlagValues: DDraw screen locking is "\ - "disabled (W2K, XP+)"); - } J2dTraceLn(J2D_TRACE_INFO, "WindowsFlags (native):"); - J2dTraceLn1(J2D_TRACE_INFO, " ddEnabled = %s", - (useDD ? "true" : "false")); - J2dTraceLn1(J2D_TRACE_INFO, " ddSet = %s", - (ddSet ? "true" : "false")); - J2dTraceLn1(J2D_TRACE_INFO, " ddVramForced = %s", - (ddVramForced ? "true" : "false")); J2dTraceLn1(J2D_TRACE_INFO, " d3dEnabled = %s", (useD3D ? "true" : "false")); J2dTraceLn1(J2D_TRACE_INFO, " d3dSet = %s", (forceD3DUsage ? "true" : "false")); - J2dTraceLn1(J2D_TRACE_INFO, " ddLockEnabled = %s", - (useDDLock ? "true" : "false")); - J2dTraceLn1(J2D_TRACE_INFO, " ddLockSet = %s", - (ddLockSet ? "true" : "false")); J2dTraceLn1(J2D_TRACE_INFO, " offscreenSharing = %s", (g_offscreenSharing ? "true" : "false")); J2dTraceLn1(J2D_TRACE_INFO, " accelReset = %s", @@ -208,13 +131,12 @@ void SetD3DEnabledFlag(JNIEnv *env, BOOL d3dEnabled, BOOL d3dSet) } } -void SetDDEnabledFlag(JNIEnv *env, BOOL ddEnabled) -{ - useDD = ddEnabled; - if (env == NULL) { - env = (JNIEnv * ) JNU_GetEnv(jvm, JNI_VERSION_1_2); - } - env->SetStaticBooleanField(wFlagsClassID, ddEnabledID, ddEnabled); +BOOL IsD3DEnabled() { + return useD3D; +} + +BOOL IsD3DForced() { + return forceD3DUsage; } extern "C" { |