|
|
@ -32,10 +32,10 @@ |
|
|
|
|
|
|
|
|
|
|
|
package com.jme3.system.lwjgl; |
|
|
|
package com.jme3.system.lwjgl; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import static com.jme3.util.LWJGLBufferAllocator.PROPERTY_CONCURRENT_BUFFER_ALLOCATOR; |
|
|
|
import static org.lwjgl.opencl.CL10.CL_CONTEXT_PLATFORM; |
|
|
|
import static org.lwjgl.opencl.CL10.CL_CONTEXT_PLATFORM; |
|
|
|
import static org.lwjgl.opengl.GL.createCapabilities; |
|
|
|
import static org.lwjgl.opengl.GL.createCapabilities; |
|
|
|
import static org.lwjgl.opengl.GL11.glGetInteger; |
|
|
|
import static org.lwjgl.opengl.GL11.glGetInteger; |
|
|
|
|
|
|
|
|
|
|
|
import com.jme3.input.lwjgl.GlfwJoystickInput; |
|
|
|
import com.jme3.input.lwjgl.GlfwJoystickInput; |
|
|
|
import com.jme3.input.lwjgl.GlfwKeyInput; |
|
|
|
import com.jme3.input.lwjgl.GlfwKeyInput; |
|
|
|
import com.jme3.input.lwjgl.GlfwMouseInput; |
|
|
|
import com.jme3.input.lwjgl.GlfwMouseInput; |
|
|
@ -52,24 +52,14 @@ import com.jme3.renderer.lwjgl.LwjglGL; |
|
|
|
import com.jme3.renderer.lwjgl.LwjglGLExt; |
|
|
|
import com.jme3.renderer.lwjgl.LwjglGLExt; |
|
|
|
import com.jme3.renderer.lwjgl.LwjglGLFboEXT; |
|
|
|
import com.jme3.renderer.lwjgl.LwjglGLFboEXT; |
|
|
|
import com.jme3.renderer.lwjgl.LwjglGLFboGL3; |
|
|
|
import com.jme3.renderer.lwjgl.LwjglGLFboGL3; |
|
|
|
import com.jme3.renderer.opengl.GL; |
|
|
|
import com.jme3.renderer.opengl.*; |
|
|
|
import com.jme3.renderer.opengl.GL2; |
|
|
|
|
|
|
|
import com.jme3.renderer.opengl.GL3; |
|
|
|
|
|
|
|
import com.jme3.renderer.opengl.GL4; |
|
|
|
|
|
|
|
import com.jme3.renderer.opengl.GLDebugDesktop; |
|
|
|
|
|
|
|
import com.jme3.renderer.opengl.GLExt; |
|
|
|
|
|
|
|
import com.jme3.renderer.opengl.GLFbo; |
|
|
|
|
|
|
|
import com.jme3.renderer.opengl.GLRenderer; |
|
|
|
|
|
|
|
import com.jme3.renderer.opengl.GLTiming; |
|
|
|
|
|
|
|
import com.jme3.renderer.opengl.GLTimingState; |
|
|
|
|
|
|
|
import com.jme3.renderer.opengl.GLTracer; |
|
|
|
|
|
|
|
import com.jme3.system.AppSettings; |
|
|
|
import com.jme3.system.AppSettings; |
|
|
|
import com.jme3.system.JmeContext; |
|
|
|
import com.jme3.system.JmeContext; |
|
|
|
import com.jme3.system.SystemListener; |
|
|
|
import com.jme3.system.SystemListener; |
|
|
|
import com.jme3.system.Timer; |
|
|
|
import com.jme3.system.Timer; |
|
|
|
import com.jme3.util.BufferAllocatorFactory; |
|
|
|
import com.jme3.util.BufferAllocatorFactory; |
|
|
|
import com.jme3.util.LWJGLBufferAllocator; |
|
|
|
import com.jme3.util.LWJGLBufferAllocator; |
|
|
|
|
|
|
|
import com.jme3.util.LWJGLBufferAllocator.ConcurrentLWJGLBufferAllocator; |
|
|
|
import org.lwjgl.PointerBuffer; |
|
|
|
import org.lwjgl.PointerBuffer; |
|
|
|
import org.lwjgl.glfw.GLFW; |
|
|
|
import org.lwjgl.glfw.GLFW; |
|
|
|
import org.lwjgl.opencl.APPLEGLSharing; |
|
|
|
import org.lwjgl.opencl.APPLEGLSharing; |
|
|
@ -96,9 +86,15 @@ public abstract class LwjglContext implements JmeContext { |
|
|
|
private static final Logger logger = Logger.getLogger(LwjglContext.class.getName()); |
|
|
|
private static final Logger logger = Logger.getLogger(LwjglContext.class.getName()); |
|
|
|
|
|
|
|
|
|
|
|
static { |
|
|
|
static { |
|
|
|
|
|
|
|
|
|
|
|
final String implementation = BufferAllocatorFactory.PROPERTY_BUFFER_ALLOCATOR_IMPLEMENTATION; |
|
|
|
final String implementation = BufferAllocatorFactory.PROPERTY_BUFFER_ALLOCATOR_IMPLEMENTATION; |
|
|
|
if(System.getProperty(implementation) == null) { |
|
|
|
|
|
|
|
System.setProperty(implementation, LWJGLBufferAllocator.class.getName()); |
|
|
|
if (System.getProperty(implementation) == null) { |
|
|
|
|
|
|
|
if (Boolean.parseBoolean(System.getProperty(PROPERTY_CONCURRENT_BUFFER_ALLOCATOR, "true"))) { |
|
|
|
|
|
|
|
System.setProperty(implementation, ConcurrentLWJGLBufferAllocator.class.getName()); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
System.setProperty(implementation, LWJGLBufferAllocator.class.getName()); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|