org.lwjgl.opengl.ARBSparseBuffer 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_sparse_buffer extension.
*
* This extension adds to GL a mechanism to decouple the virtual and physical storage requirements of textures and allows an application
* to create partially populated textures that would over-subscribe available graphics memory if made fully resident. This extension provides like
* functionality for buffer objects, allowing applications to manage buffer object storage in a similar manner.
*
* Requires {@link GL15 OpenGL 1.5} or {@link ARBVertexBufferObject ARB_vertex_buffer_object}.
*/
public class ARBSparseBuffer {
/** Accepted as part of the {@code flags} parameter to {@link GL44#glBufferStorage BufferStorage}. */
public static final int GL_SPARSE_STORAGE_BIT_ARB = 0x400;
/** Accepted by the {@code pname} parameter of GetBooleanv, GetDoublev, GetFloatv, GetIntegerv, and GetInteger64v. */
public static final int GL_SPARSE_BUFFER_PAGE_SIZE_ARB = 0x82F8;
static { GL.initialize(); }
protected ARBSparseBuffer() {
throw new UnsupportedOperationException();
}
static boolean isAvailable(GLCapabilities caps, java.util.Set ext) {
return checkFunctions(
caps.glBufferPageCommitmentARB
);
}
// --- [ glBufferPageCommitmentARB ] ---
/**
* Commit and de-commits regions of sparse buffer storage.
*
* @param target buffer object target. One of:
{@link GL15#GL_ARRAY_BUFFER ARRAY_BUFFER} {@link GL15#GL_ELEMENT_ARRAY_BUFFER ELEMENT_ARRAY_BUFFER} {@link GL21#GL_PIXEL_PACK_BUFFER PIXEL_PACK_BUFFER} {@link GL21#GL_PIXEL_UNPACK_BUFFER PIXEL_UNPACK_BUFFER} {@link GL30#GL_TRANSFORM_FEEDBACK_BUFFER TRANSFORM_FEEDBACK_BUFFER} {@link GL31#GL_UNIFORM_BUFFER UNIFORM_BUFFER} {@link GL31#GL_TEXTURE_BUFFER TEXTURE_BUFFER} {@link GL31#GL_COPY_READ_BUFFER COPY_READ_BUFFER} {@link GL31#GL_COPY_WRITE_BUFFER COPY_WRITE_BUFFER} {@link GL40#GL_DRAW_INDIRECT_BUFFER DRAW_INDIRECT_BUFFER} {@link GL42#GL_ATOMIC_COUNTER_BUFFER ATOMIC_COUNTER_BUFFER} {@link GL43#GL_DISPATCH_INDIRECT_BUFFER DISPATCH_INDIRECT_BUFFER} {@link GL43#GL_SHADER_STORAGE_BUFFER SHADER_STORAGE_BUFFER} {@link ARBIndirectParameters#GL_PARAMETER_BUFFER_ARB PARAMETER_BUFFER_ARB}
* @param offset the region offset. Must be an integer multiple of the implementation dependent constant {@link #GL_SPARSE_BUFFER_PAGE_SIZE_ARB SPARSE_BUFFER_PAGE_SIZE_ARB}.
* @param size the data size. must either be a multiple of {@link #GL_SPARSE_BUFFER_PAGE_SIZE_ARB SPARSE_BUFFER_PAGE_SIZE_ARB}, or extend to the end of the buffer's data store.
* @param commit If true, then pages contained in the specified range become committed and become physically backed. If false, then physical storage associated with
* the data store in the specified region may be freed and those pages become uncommitted. Newly committed pages have undefined content. However,
* redundantly committing pages does not alter their content.
*/
public static native void glBufferPageCommitmentARB(int target, long offset, long size, boolean commit);
// --- [ glNamedBufferPageCommitmentEXT ] ---
/**
* Direct-state-access version of {@link #glBufferPageCommitmentARB BufferPageCommitmentARB}.
*
* @param buffer the buffer object
* @param offset the region offset. Must be an integer multiple of the implementation dependent constant {@link #GL_SPARSE_BUFFER_PAGE_SIZE_ARB SPARSE_BUFFER_PAGE_SIZE_ARB}.
* @param size the data size. must either be a multiple of {@link #GL_SPARSE_BUFFER_PAGE_SIZE_ARB SPARSE_BUFFER_PAGE_SIZE_ARB}, or extend to the end of the buffer's data store.
* @param commit the commit state
*/
public static native void glNamedBufferPageCommitmentEXT(int buffer, long offset, long size, boolean commit);
// --- [ glNamedBufferPageCommitmentARB ] ---
/**
* Direct-state-access version of {@link #glBufferPageCommitmentARB BufferPageCommitmentARB}.
*
* @param buffer the buffer object
* @param offset the region offset. Must be an integer multiple of the implementation dependent constant {@link #GL_SPARSE_BUFFER_PAGE_SIZE_ARB SPARSE_BUFFER_PAGE_SIZE_ARB}.
* @param size the data size. must either be a multiple of {@link #GL_SPARSE_BUFFER_PAGE_SIZE_ARB SPARSE_BUFFER_PAGE_SIZE_ARB}, or extend to the end of the buffer's data store.
* @param commit the commit state
*/
public static native void glNamedBufferPageCommitmentARB(int buffer, long offset, long size, boolean commit);
}