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

org.lwjgl.opengl.NVExplicitMultisample 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 java.nio.*;

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

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

In traditional multisample specs, the API only allows access to the samples indirectly through methods such as coverage values and downsampled * readbacks. NV_explicit_multisample adds a set of new capabilities to allow more precise control over the use of multisamples. Specifically, it adds:

* *
    *
  • A query in the API to query the location of samples within the pixel
  • *
  • An explicit control for the multisample sample mask to augment the control provided by SampleCoverage
  • *
  • A new texture target to wrap a renderbuffer and allow a restricted class of accesses to the samples
  • *
  • The ability to fetch a specific sample from a multisampled texture from within a shader
  • *
  • A program option to enable the new behavior
  • *
* *

Requires {@link GL20 OpenGL 2.0} and {@link ARBMultisample ARB_multisample}.

*/ public class NVExplicitMultisample { /** Accepted by the {@code pname} parameter of GetMultisamplefvNV. */ public static final int GL_SAMPLE_POSITION_NV = 0x8E50; /** * 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_SAMPLE_MASK_NV = 0x8E51; /** Accepted by the {@code pname} parameter of GetBooleanIndexedvEXT and GetIntegerIndexedvEXT. */ public static final int GL_SAMPLE_MASK_VALUE_NV = 0x8E52; /** Accepted by the {@code pname} parameter of GetBooleanv, GetDoublev, GetIntegerv, and GetFloatv. */ public static final int GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53, GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54, GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59; /** Accepted by the {@code target} parameter of BindTexture, and TexRenderbufferNV. */ public static final int GL_TEXTURE_RENDERBUFFER_NV = 0x8E55; /** Returned by the {@code type} parameter of GetActiveUniform. */ public static final int GL_SAMPLER_RENDERBUFFER_NV = 0x8E56, GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57, GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58; static { GL.initialize(); } protected NVExplicitMultisample() { throw new UnsupportedOperationException(); } static boolean isAvailable(GLCapabilities caps) { return checkFunctions( caps.glGetMultisamplefvNV, caps.glSampleMaskIndexedNV, caps.glTexRenderbufferNV ); } // --- [ glGetMultisamplefvNV ] --- public static native void nglGetMultisamplefvNV(int pname, int index, long val); public static void glGetMultisamplefvNV(int pname, int index, FloatBuffer val) { if (CHECKS) { check(val, 2); } nglGetMultisamplefvNV(pname, index, memAddress(val)); } // --- [ glSampleMaskIndexedNV ] --- public static native void glSampleMaskIndexedNV(int index, int mask); // --- [ glTexRenderbufferNV ] --- public static native void glTexRenderbufferNV(int target, int renderbuffer); /** Array version of: {@link #glGetMultisamplefvNV GetMultisamplefvNV} */ public static void glGetMultisamplefvNV(int pname, int index, float[] val) { long __functionAddress = GL.getICD().glGetMultisamplefvNV; if (CHECKS) { check(__functionAddress); check(val, 2); } callPV(__functionAddress, pname, index, val); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy