All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.opengl.ARBMultisample Maven / Gradle / Ivy

/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.opengl;

import static org.lwjgl.system.Checks.*;

/**
 * Native bindings to the ARB_multisample extension.
 * 
 * 

This extension provides a mechanism to antialias all GL primitives: points, lines, polygons, bitmaps, and images. The technique is to sample all * primitives multiple times at each pixel. The color sample values are resolved to a single, displayable color each time a pixel is updated, so the * antialiasing appears to be automatic at the application level. Because each sample includes depth and stencil information, the depth and stencil * functions perform equivalently to the single-sample mode.

* *

An additional buffer, called the multisample buffer, is added to the framebuffer. Pixel sample values, including color, depth, and stencil values, are * stored in this buffer. When the framebuffer includes a multisample buffer, it does not also include separate depth or stencil buffers, even if the * multisample buffer does not store depth or stencil values. Color buffers (left/right, front/back, and aux) do coexist with the multisample buffer, * however.

* *

Multisample antialiasing is most valuable for rendering polygons, because it requires no sorting for hidden surface elimination, and it correctly * handles adjacent polygons, object silhouettes, and even intersecting polygons. If only points or lines are being rendered, the "smooth" antialiasing * mechanism provided by the base GL may result in a higher quality image. This extension is designed to allow multisample and smooth antialiasing * techniques to be alternated during the rendering of a single scene.

*/ public class ARBMultisample { /** * Accepted by the {@code cap} parameter of Enable, Disable, and IsEnabled, and by the {@code pname} parameter of GetBooleanv, GetIntegerv, GetFloatv, and * GetDoublev. */ public static final int GL_MULTISAMPLE_ARB = 0x809D, GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E, GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F, GL_SAMPLE_COVERAGE_ARB = 0x80A0; /** Accepted by the {@code mask} parameter of PushAttrib. */ public static final int GL_MULTISAMPLE_BIT_ARB = 0x20000000; /** Accepted by the {@code pname} parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. */ public static final int GL_SAMPLE_BUFFERS_ARB = 0x80A8, GL_SAMPLES_ARB = 0x80A9, GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA, GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB; static { GL.initialize(); } protected ARBMultisample() { throw new UnsupportedOperationException(); } static boolean isAvailable(GLCapabilities caps) { return checkFunctions( caps.glSampleCoverageARB ); } // --- [ glSampleCoverageARB ] --- /** * Specifies simultaneously the values of {@link #GL_SAMPLE_COVERAGE_VALUE_ARB SAMPLE_COVERAGE_VALUE_ARB} and {@link #GL_SAMPLE_COVERAGE_INVERT_ARB SAMPLE_COVERAGE_INVERT_ARB}. * *

If {@link #GL_SAMPLE_COVERAGE_ARB SAMPLE_COVERAGE_ARB} is enabled, the fragment coverage is ANDed with another temporary coverage. This temporary coverage is a function of the value * of {@link #GL_SAMPLE_COVERAGE_VALUE_ARB SAMPLE_COVERAGE_VALUE_ARB}. If {@link #GL_SAMPLE_COVERAGE_INVERT_ARB SAMPLE_COVERAGE_INVERT_ARB} is {@link GL11#GL_TRUE TRUE}, the temporary coverage is inverted (all bit values are inverted) before it * is ANDed with the fragment coverage.

* * @param value the desired coverage value * @param invert if true, the temporary coverage is inverted. One of:
{@link GL11#GL_TRUE TRUE}{@link GL11#GL_FALSE FALSE}
*/ public static native void glSampleCoverageARB(float value, boolean invert); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy