Example usage for org.lwjgl.opengl GL30 GL_MAX_SAMPLES

List of usage examples for org.lwjgl.opengl GL30 GL_MAX_SAMPLES

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL30 GL_MAX_SAMPLES.

Prototype

int GL_MAX_SAMPLES

To view the source code for org.lwjgl.opengl GL30 GL_MAX_SAMPLES.

Click Source Link

Document

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

Usage

From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}/*from   w  ww . ja va  2s  . 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.xrbpowered.gl.Client.java

License:Open Source License

public static void printInfo() {
    System.out.println("\n--------------------------------\nSYSTEM INFO\n--------------------------------");
    System.out.println("Device: " + GL11.glGetString(GL11.GL_RENDERER));
    System.out.println("Device vendor: " + GL11.glGetString(GL11.GL_VENDOR));
    System.out.println("OpenGL version: " + GL11.glGetString(GL11.GL_VERSION));

    System.out.printf("Max texture size: %d\n", GL11.glGetInteger(GL11.GL_MAX_TEXTURE_SIZE));
    System.out.printf("Max MSAA samples: %d\n", GL11.glGetInteger(GL30.GL_MAX_SAMPLES));
    System.out.printf("Max anisotropy: %d\n",
            GL11.glGetInteger(EXTTextureFilterAnisotropic.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT));
    System.out.printf("Max texture array layers: %d\n", GL11.glGetInteger(GL30.GL_MAX_ARRAY_TEXTURE_LAYERS));
    System.out.printf("Max vertex attribs: %d\n", GL11.glGetInteger(GL20.GL_MAX_VERTEX_ATTRIBS));
    System.out.printf("Max uniform components: %d\n", GL11.glGetInteger(GL20.GL_MAX_VERTEX_UNIFORM_COMPONENTS));
    System.out.printf("Available video memory (NVIDIA only): %.1f%%\n", getAvailMemoryNVidia() * 100f);
    System.out.println("--------------------------------");
    System.out.println();/* www .  j  a  va  2  s . c om*/

    GL11.glGetError(); // clear errors
}

From source file:com.xrbpowered.gl.examples.ExampleMenu.java

License:Open Source License

protected void addQualitySettings(WidgetMenuBuilder mb) {
    int max = GL11.glGetInteger(GL30.GL_MAX_SAMPLES);
    int index = 0;
    LinkedList<String> options = new LinkedList<>();
    options.add("Off");
    for (int i = 1, d = 2; d <= max; i++, d <<= 1) {
        options.add(d + "x");
        if (d == settings.multisample)
            index = i;/*  w w  w. j  a v  a 2 s. co m*/
    }
    mb.addMenuItem(new MenuOptionItem(mb.getPageRoot(), "Anti-aliasing", options.toArray(), index, 0) {
        @Override
        public void onChangeValue(int index) {
            String s = getValueName();
            settings.multisample = s.equals("Off") ? 0 : Integer.parseInt(s.substring(0, s.length() - 1));
        }
    });

    max = GL11.glGetInteger(EXTTextureFilterAnisotropic.GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT);
    index = 0;
    options.clear();
    options.add("Off");
    for (int i = 1, d = 2; d <= max; i++, d <<= 1) {
        options.add(d + "x");
        if (d == settings.anisotropy)
            index = i;
    }
    mb.addMenuItem(new MenuOptionItem(mb.getPageRoot(), "Anisotropic filtering", options.toArray(), index, 0) {
        @Override
        public void onChangeValue(int index) {
            String s = getValueName();
            settings.anisotropy = s.equals("Off") ? 1 : Integer.parseInt(s.substring(0, s.length() - 1));
        }
    });
}