|
From: <sp...@us...> - 2011-11-10 18:46:50
|
Revision: 3690
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3690&view=rev
Author: spasi
Date: 2011-11-10 18:46:43 +0000 (Thu, 10 Nov 2011)
Log Message:
-----------
Changed CallbackUtil to use ContextCapabilities instead of ContextGL.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/opengl/CallbackUtil.java
trunk/LWJGL/src/java/org/lwjgl/opengl/Context.java
trunk/LWJGL/src/java/org/lwjgl/opengl/GLContext.java
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/CallbackUtil.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/CallbackUtil.java 2011-10-30 14:44:52 UTC (rev 3689)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/CallbackUtil.java 2011-11-10 18:46:43 UTC (rev 3690)
@@ -42,9 +42,9 @@
final class CallbackUtil {
/** Context -> Long */
- private static final Map<ContextGL, Long> contextUserParamsARB = new HashMap<ContextGL, Long>();
+ private static final Map<ContextCapabilities, Long> contextUserParamsARB = new HashMap<ContextCapabilities, Long>();
/** Context -> Long */
- private static final Map<ContextGL, Long> contextUserParamsAMD = new HashMap<ContextGL, Long>();
+ private static final Map<ContextCapabilities, Long> contextUserParamsAMD = new HashMap<ContextCapabilities, Long>();
private CallbackUtil() {}
@@ -84,19 +84,19 @@
*
* @param userParam the global reference pointer
*/
- private static void registerContextCallback(final long userParam, final Map<ContextGL, Long> contextUserData) {
- ContextGL context = ContextGL.getCurrentContext();
- if ( context == null ) {
+ private static void registerContextCallback(final long userParam, final Map<ContextCapabilities, Long> contextUserData) {
+ ContextCapabilities caps = GLContext.getCapabilities();
+ if ( caps == null ) {
deleteGlobalRef(userParam);
throw new IllegalStateException("No context is current.");
}
- final Long userParam_old = contextUserData.remove(context);
+ final Long userParam_old = contextUserData.remove(caps);
if ( userParam_old != null )
deleteGlobalRef(userParam_old);
if ( userParam != 0 )
- contextUserData.put(context, userParam);
+ contextUserData.put(caps, userParam);
}
/**
@@ -104,12 +104,15 @@
*
* @param context the Context to unregister
*/
- static void unregisterCallbacks(final ContextGL context) {
- Long userParam = contextUserParamsARB.remove(context);
+ static void unregisterCallbacks(final Object context) {
+ // TODO: This is never called for custom contexts. Need to fix for LWJGL 3.0
+ final ContextCapabilities caps = GLContext.getCapabilities(context);
+
+ Long userParam = contextUserParamsARB.remove(caps);
if ( userParam != null )
deleteGlobalRef(userParam);
- userParam = contextUserParamsAMD.remove(context);
+ userParam = contextUserParamsAMD.remove(caps);
if ( userParam != null )
deleteGlobalRef(userParam);
}
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/Context.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/Context.java 2011-10-30 14:44:52 UTC (rev 3689)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/Context.java 2011-11-10 18:46:43 UTC (rev 3690)
@@ -32,7 +32,6 @@
package org.lwjgl.opengl;
import org.lwjgl.LWJGLException;
-import org.lwjgl.opengles.PowerManagementEventException;
/**
* @author Spasi
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/GLContext.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/GLContext.java 2011-10-30 14:44:52 UTC (rev 3689)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/GLContext.java 2011-11-10 18:46:43 UTC (rev 3690)
@@ -130,6 +130,17 @@
return getThreadLocalCapabilities();
}
+ /**
+ * Returns the capabilities instance associated with the specified context object.
+ *
+ * @param context the context object
+ *
+ * @return the capabilities instance
+ */
+ static ContextCapabilities getCapabilities(Object context) {
+ return capability_cache.get(context);
+ }
+
private static ContextCapabilities getThreadLocalCapabilities() {
return current_capabilities.get();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|