org.lwjgl.opengles.NVConservativeRaster Maven / Gradle / Ivy
Show all versions of lwjgl-opengles Show documentation
/*
* Copyright LWJGL. All rights reserved.
* License terms: https://www.lwjgl.org/license
* MACHINE GENERATED FILE, DO NOT EDIT
*/
package org.lwjgl.opengles;
import static org.lwjgl.system.Checks.*;
/**
* Native bindings to the NV_conservative_raster extension.
*
* This extension adds a "conservative" rasterization mode where any pixel that is partially covered, even if no sample location is covered, is treated as
* fully covered and a corresponding fragment will be shaded.
*
* A new control is also added to modify window coordinate snapping precision.
*
* These controls can be used to implement "binning" to a low-resolution render target, for example to determine which tiles of a sparse texture need to
* be populated. An app can construct a framebuffer where there is one pixel per tile in the sparse texture, and adjust the number of subpixel bits such
* that snapping occurs to the same effective grid as when rendering to the sparse texture. Then triangles should cover (at least) the same pixels in the
* low-res framebuffer as they do tiles in the sparse texture.
*
* Requires {@link GLES20 GLES 2.0}.
*/
public class NVConservativeRaster {
/** Accepted by the {@code cap} parameter of Enable, Disable, IsEnabled. */
public static final int GL_CONSERVATIVE_RASTERIZATION_NV = 0x9346;
/** Accepted by the {@code pname} parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. */
public static final int
GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV = 0x9347,
GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV = 0x9348,
GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV = 0x9349;
static { GLES.initialize(); }
protected NVConservativeRaster() {
throw new UnsupportedOperationException();
}
static boolean isAvailable(GLESCapabilities caps) {
return checkFunctions(
caps.glSubpixelPrecisionBiasNV
);
}
// --- [ glSubpixelPrecisionBiasNV ] ---
public static native void glSubpixelPrecisionBiasNV(int xbits, int ybits);
}