List of usage examples for org.lwjgl.opengl ARBDrawBuffers GL_MAX_DRAW_BUFFERS_ARB
int GL_MAX_DRAW_BUFFERS_ARB
To view the source code for org.lwjgl.opengl ARBDrawBuffers GL_MAX_DRAW_BUFFERS_ARB.
Click Source Link
From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java
License:Apache License
/** * {@inheritDoc}//ww w . j av a 2s .com */ @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); }