Top Description Fields Constructors Methods
org.lwjgl.opengl

public Class NVSampleLocations

extends Object
Class Inheritance
Imports
java.nio.*, org.lwjgl.system.*

Native bindings to the NV_sample_locations extension.

This extension allows an application to modify the locations of samples within a pixel used in multisample rasterization. Additionally, it allows applications to specify different sample locations for each pixel in a group of adjacent pixels, which may increase antialiasing quality (particularly if a custom resolve shader is used that takes advantage of these different locations).

It is common for implementations to optimize the storage of depth values by storing values that can be used to reconstruct depth at each sample location, rather than storing separate depth values for each sample. For example, the depth values from a single triangle can be represented using plane equations. When the depth value for a sample is needed, it is automatically evaluated at the sample location. Modifying the sample locations causes the reconstruction to no longer evaluate the same depth values as when the samples were originally generated. This extension provides a command to "resolve" and store per-sample depth values using the currently programmed sample locations, which allows the application to manage this issue if/when necessary.

The programmable sample locations are used during rasterization and for evaluation of depth functions during normal geometric rendering. The programmable locations are associated with a framebuffer object rather than an individual depth buffer, so if the depth buffer is used as a texture the texture sampling may be done at the standard sample locations. Additionally, commands that do not render geometric primitives (e.g. ReadPixels, BlitFramebuffer, CopyTexSubImage2D, etc.) may use the standard sample locations to resolve depth functions rather than the programmable locations. If a single depth buffer is used at different times with different sample locations, the depth functions may be interpreted using the current sample locations.

Field Summary

Modifier and TypeField and Description
public static final int
GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV

Accepted by the pname parameter of FramebufferParameteri, GetFramebufferParameteriv.

public static final int
GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV

Accepted by the pname parameter of FramebufferParameteri, GetFramebufferParameteriv.

public static final int
GL_PROGRAMMABLE_SAMPLE_LOCATION_NV

Accepted by the pname parameter of GetMultisamplefv.

public static final int
GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV

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

public static final int
GL_SAMPLE_LOCATION_NV

Accepted by the pname parameter of GetMultisamplefv.

public static final int
GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV

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

public static final int
GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV

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

public static final int
GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV

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

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static void
glFramebufferSampleLocationsfvNV(int
the framebuffer whose programmable sample locations are modified
target
,
int
the index of the first sample location to modify
start
,
FloatBuffer
a pair of floating point values in the range [0,1] for each sample location
v
)

Updates the programmable sample locations

public static void
glFramebufferSampleLocationsfvNV(int target, int start, float[] v)

Array version of: FramebufferSampleLocationsfvNV

public static void
glNamedFramebufferSampleLocationsfvNV(int
the framebuffer whose programmable sample locations are modified
framebuffer
,
int
the index of the first sample location to modify
start
,
FloatBuffer
a pair of floating point values in the range [0,1] for each sample location
v
)

Updates the programmable sample locations

public static void
glNamedFramebufferSampleLocationsfvNV(int framebuffer, int start, float[] v)

Array version of: NamedFramebufferSampleLocationsfvNV

public static native void
glResolveDepthValuesNV()

Evaluates depth values for all samples in the current depth buffer (subject to the pixel ownership and scissor tests) and stores each value in the depth buffer.

public static native void
nglFramebufferSampleLocationsfvNV(int target, int start, int
the number of sample locations to modify
count
,
long v)

Unsafe version of: FramebufferSampleLocationsfvNV

public static native void
nglNamedFramebufferSampleLocationsfvNV(int framebuffer, int start, int
the number of sample locations to modify
count
,
long v)

Unsafe version of: NamedFramebufferSampleLocationsfvNV

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NVback to summary
public static final int GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV

Accepted by the pname parameter of FramebufferParameteri, GetFramebufferParameteriv.

GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NVback to summary
public static final int GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV

Accepted by the pname parameter of FramebufferParameteri, GetFramebufferParameteriv.

GL_PROGRAMMABLE_SAMPLE_LOCATION_NVback to summary
public static final int GL_PROGRAMMABLE_SAMPLE_LOCATION_NV

Accepted by the pname parameter of GetMultisamplefv.

GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NVback to summary
public static final int GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV

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

GL_SAMPLE_LOCATION_NVback to summary
public static final int GL_SAMPLE_LOCATION_NV

Accepted by the pname parameter of GetMultisamplefv.

GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NVback to summary
public static final int GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV

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

GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NVback to summary
public static final int GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV

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

GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NVback to summary
public static final int GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV

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

Constructor Detail

NVSampleLocationsback to summary
protected NVSampleLocations()

Method Detail

glFramebufferSampleLocationsfvNVback to summary
public static void glFramebufferSampleLocationsfvNV(int target, int start, FloatBuffer v)

Updates the programmable sample locations

Parameters
target:int

the framebuffer whose programmable sample locations are modified

start:int

the index of the first sample location to modify

v:FloatBuffer

a pair of floating point values in the range [0,1] for each sample location

glFramebufferSampleLocationsfvNVback to summary
public static void glFramebufferSampleLocationsfvNV(int target, int start, float[] v)

Array version of: FramebufferSampleLocationsfvNV

glNamedFramebufferSampleLocationsfvNVback to summary
public static void glNamedFramebufferSampleLocationsfvNV(int framebuffer, int start, FloatBuffer v)

Updates the programmable sample locations

Parameters
framebuffer:int

the framebuffer whose programmable sample locations are modified

start:int

the index of the first sample location to modify

v:FloatBuffer

a pair of floating point values in the range [0,1] for each sample location

glNamedFramebufferSampleLocationsfvNVback to summary
public static void glNamedFramebufferSampleLocationsfvNV(int framebuffer, int start, float[] v)

Array version of: NamedFramebufferSampleLocationsfvNV

glResolveDepthValuesNVback to summary
public static native void glResolveDepthValuesNV()

Evaluates depth values for all samples in the current depth buffer (subject to the pixel ownership and scissor tests) and stores each value in the depth buffer. This can be used to ensure that later accesses will use depth values consistent with the sample locations used when the samples were generated. If the current framebuffer has no depth buffer, ResolveDepthValuesNV will have no effect.

nglFramebufferSampleLocationsfvNVback to summary
public static native void nglFramebufferSampleLocationsfvNV(int target, int start, int count, long v)

Unsafe version of: FramebufferSampleLocationsfvNV

Parameters
count:int

the number of sample locations to modify

nglNamedFramebufferSampleLocationsfvNVback to summary
public static native void nglNamedFramebufferSampleLocationsfvNV(int framebuffer, int start, int count, long v)

Unsafe version of: NamedFramebufferSampleLocationsfvNV

Parameters
count:int

the number of sample locations to modify