Example usage for org.lwjgl.opengl GL getCapabilities

List of usage examples for org.lwjgl.opengl GL getCapabilities

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL getCapabilities.

Prototype

public static GLCapabilities getCapabilities() 

Source Link

Document

Returns the GLCapabilities of the OpenGL context that is current in the current thread.

Usage

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);
}