List of usage examples for org.lwjgl.opengl GL getCapabilities
public static GLCapabilities getCapabilities()
From source file:TruetypeOversample.java
License:Open Source License
private void createWindow(String title) { glfwSetErrorCallback(errorfun);//w w w . jav a2 s .c o m if (glfwInit() != GLFW_TRUE) throw new IllegalStateException("Unable to initialize GLFW"); glfwDefaultWindowHints(); glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE); glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE); this.window = glfwCreateWindow(ww, wh, title, NULL, NULL); if (window == NULL) throw new RuntimeException("Failed to create the GLFW window"); windowSizefun.set(window); framebufferSizefun.set(window); keyfun.set(window); GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor()); glfwSetWindowPos(window, (vidmode.width() - ww) / 2, (vidmode.height() - wh) / 2); glfwMakeContextCurrent(window); GL.createCapabilities(); debugProc = GLUtil.setupDebugMessageCallback(); glfwSwapInterval(1); glfwShowWindow(window); glfwInvoke(window, windowSizefun, framebufferSizefun); // Detect sRGB support GLCapabilities caps = GL.getCapabilities(); supportsSRGB = caps.OpenGL30 || caps.GL_ARB_framebuffer_sRGB || caps.GL_EXT_framebuffer_sRGB; }
From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java
License:Apache License
/** * <p>Constructor</p>//from w w w.j a v a 2s . c o m */ public DesktopGLES20() { //! //! Read the capabilities. //! mCapabilities = GL.getCapabilities(); //! //! Attach the extension(s). //! if (mCapabilities.OpenGL30) { mFrameBufferObjectExtension = EXT_Frame_Buffer_Object.CORE; } else if (mCapabilities.GL_ARB_framebuffer_object) { mFrameBufferObjectExtension = EXT_Frame_Buffer_Object.ARB; } else if (mCapabilities.GL_EXT_framebuffer_object) { mFrameBufferObjectExtension = EXT_Frame_Buffer_Object.EXT; } else { mFrameBufferObjectExtension = EXT_Frame_Buffer_Object.NONE; } }
From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java
License:Apache License
/** * {@inheritDoc}/*from ww w . j a va 2 s. c o m*/ */ @Override public RenderCapabilities glCapabilities() { //! //! Retrieves the capabilities from the context. //! final GLCapabilities capabilities = GL.getCapabilities(); final RenderCapabilities.LanguageVersion version; if (capabilities.OpenGL33) { version = RenderCapabilities.LanguageVersion.GL33; } else if (capabilities.OpenGL32) { version = RenderCapabilities.LanguageVersion.GL32; } else if (capabilities.OpenGL31) { version = RenderCapabilities.LanguageVersion.GL31; } else if (capabilities.OpenGL30) { version = RenderCapabilities.LanguageVersion.GL30; } else if (capabilities.OpenGL21) { version = RenderCapabilities.LanguageVersion.GL21; } else { throw new RuntimeException("Cannot find a suitable context, OpenGL 2.1 is at-least required."); } //! //! Retrieves the limitation from the context. //! final Map<RenderCapabilities.Limit, Float> limit = new HashMap<>(); limit.put(RenderCapabilities.Limit.FRAME_ATTACHMENT, GL11.glGetFloat(GL30.GL_MAX_COLOR_ATTACHMENTS)); limit.put(RenderCapabilities.Limit.FRAME_MULTIPLE_RENDER_ATTACHMENT, GL11.glGetFloat(ARBDrawBuffers.GL_MAX_DRAW_BUFFERS_ARB)); limit.put(RenderCapabilities.Limit.FRAME_SAMPLE, GL11.glGetFloat(GL30.GL_MAX_SAMPLES)); limit.put(RenderCapabilities.Limit.TEXTURE_ANISOTROPIC, GL11.glGetFloat(EXTTextureFilterAnisotropic.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT)); limit.put(RenderCapabilities.Limit.TEXTURE_SIZE, GL11.glGetFloat(GL11.GL_MAX_TEXTURE_SIZE)); limit.put(RenderCapabilities.Limit.TEXTURE_STAGE, GL11.glGetFloat(GL20.GL_MAX_TEXTURE_IMAGE_UNITS)); limit.put(RenderCapabilities.Limit.GLSL_MAX_VERTEX_ATTRIBUTES, GL11.glGetFloat(GL20.GL_MAX_VERTEX_ATTRIBS)); //! //! Retrieves the extension from the context. //! final Map<RenderCapabilities.Extension, Boolean> extension = new HashMap<>(); extension.put(RenderCapabilities.Extension.FRAME_BUFFER, capabilities.GL_ARB_framebuffer_object); extension.put(RenderCapabilities.Extension.FRAME_BUFFER_MULTIPLE_RENDER_TARGET, capabilities.GL_ARB_draw_buffers); extension.put(RenderCapabilities.Extension.FRAME_BUFFER_MULTIPLE_SAMPLE, capabilities.GL_ARB_multisample); extension.put(RenderCapabilities.Extension.VERTEX_ARRAY_OBJECT, capabilities.GL_ARB_vertex_array_object); extension.put(RenderCapabilities.Extension.TEXTURE_3D, true); extension.put(RenderCapabilities.Extension.TEXTURE_COMPRESSION_S3TC, capabilities.GL_EXT_texture_compression_s3tc); extension.put(RenderCapabilities.Extension.TEXTURE_FILTER_ANISOTROPIC, capabilities.GL_EXT_texture_filter_anisotropic); extension.put(RenderCapabilities.Extension.GLSL_PRECISION, capabilities.GL_ARB_shader_precision); extension.put(RenderCapabilities.Extension.GLSL_EXPLICIT_ATTRIBUTE, capabilities.GL_ARB_explicit_attrib_location); extension.put(RenderCapabilities.Extension.GLSL_EXPLICIT_UNIFORM, capabilities.GL_ARB_explicit_uniform_location); extension.put(RenderCapabilities.Extension.GLSL_GEOMETRY, capabilities.GL_ARB_geometry_shader4); return new RenderCapabilities(version, extension, limit); }
From source file:com.opengg.core.render.texture.Texture.java
public void setAnisotropyLevel(int level) { if (GL.getCapabilities().GL_EXT_texture_filter_anisotropic) { float lev = Math.min(level, glGetFloat(EXTTextureFilterAnisotropic.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT)); tex.setParameterf(GL_TEXTURE_2D, EXTTextureFilterAnisotropic.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, lev); } else {/*from w w w. j a v a 2s .co m*/ GGConsole.warning("Anisotropy is not available on this device"); } }
From source file:com.samrj.devil.gl.DGL.java
License:Open Source License
/** * Initializes DevilGL. Must be called from a thread on which an OpenGL * context is current./*w w w .ja v a2s. co m*/ */ public static void init() { if (init) throw new IllegalStateException("DGL already initialized."); thread = Thread.currentThread(); capabilities = GL.getCapabilities(); objects = Collections.newSetFromMap(new IdentityHashMap<>()); VAO.init(); DGLException.init(); init = true; }
From source file:com.snakybo.torch.graphics.texture.Texture.java
License:Open Source License
/** * <p>/*from www . ja v a2 s . co m*/ * Set the anisotropic filtering level of the texture. * </p> * * @param level The anisotropic filtering level. */ public final void setAnisoLevel(float level) { if (GL.getCapabilities().GL_EXT_texture_filter_anisotropic) { int target = getTarget(); glBindTexture(target, getNativeId()); level = MathUtils.clamp(level, 0, glGetFloat(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT)); if (level > 0) { // Enable anisotropic filtering glTexParameterf(target, GL_TEXTURE_MAX_ANISOTROPY_EXT, level); } else { // Disable anisotropic filtering glTexParameterf(target, GL_TEXTURE_BASE_LEVEL, 0); glTexParameterf(target, GL_TEXTURE_MAX_LEVEL, 0); } glBindTexture(target, 0); } else { Logger.logWarning("Anisotropic filtering is not supported on this system"); } }
From source file:com.w67clement.openw67render.utils.OpenUtils.java
License:Open Source License
/** * Determines if the OpenGL context supports version 3.2. * * @return True, if OpenGL context supports version 3.2, else false. *//*from w w w. j a v a2 s.c o m*/ public static boolean isDefaultGLContext() { return GL.getCapabilities().OpenGL32; }
From source file:de.bwravencl.controllerbuddy.gui.OpenVrOverlay.java
License:Open Source License
private static void createGLCapabilitiesIfRequired() { GLCapabilities capabilities = null;// ww w . j a va 2 s . c o m try { capabilities = GL.getCapabilities(); } catch (final IllegalStateException e) { } if (capabilities == null) GL.createCapabilities(); }
From source file:me.sunchiro.game.engine.gl.Graphic.java
License:Open Source License
public void setCapabilities() { FBOEnabled = GL.getCapabilities().GL_EXT_framebuffer_object; }
From source file:net.guerra24.infinity.client.graphics.nanovg.Timers.java
License:Open Source License
private static void initGPUTimer(GPUtimer timer) { // memset(timer, 0, sizeof(*timer))2 timer.supported = GL.getCapabilities().GL_ARB_timer_query; timer.cur = 0;//from ww w .jav a 2 s . c om timer.ret = 0; BufferUtils.zeroBuffer(timer.queries); if (timer.supported) glGenQueries(timer.queries); }