aboutsummaryrefslogtreecommitdiff
path: root/src/windows/native/sun/java2d/windows/WindowsFlags.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/windows/native/sun/java2d/windows/WindowsFlags.cpp')
-rw-r--r--src/windows/native/sun/java2d/windows/WindowsFlags.cpp92
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" {