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

org.lwjgl.opengles.EXTTextureBuffer Maven / Gradle / Ivy

Go to download

A royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems - including consoles, phones, appliances and vehicles.

There is a newer version: 3.3.4
Show newest version
/*
 * 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 EXT_texture_buffer extension.
 * 
 * 

This extension provides a new texture type, called a buffer texture. Buffer textures are one-dimensional arrays of texels whose storage comes from an * attached buffer object. When a buffer object is bound to a buffer texture, a format is specified, and the data in the buffer object is treated as an * array of texels of the specified format.

* *

The use of a buffer object to provide storage allows the texture data to be specified in a number of different ways: via buffer object loads * (BufferData), direct CPU writes (MapBuffer), or framebuffer readbacks to pixel buffer objects (ReadPixels). A buffer object can also be loaded by * transform feedback, which captures selected transformed attributes of vertices processed by the GL. Several of these mechanisms do not require an extra * data copy, which would be required when using conventional TexImage-like entry points.

* *

Buffer textures do not support mipmapping, texture lookups with normalized floating-point texture coordinates, and texture filtering of any sort. They * can be accessed via single texel fetch operations in programmable shaders, using a new sampler type and texel fetch function, and access can be * controlled using the same memory barrier operations as for other texture types.

* *

Buffer textures are treated as (potentially large) one-dimensional textures; the maximum texture size supported for buffer textures in the initial * implementation of this extension is 227 texels (note that this extension only guarantees support for buffer textures with 216 * texels, but we expect most implementations to exceed that substantially). When a buffer object is attached to a buffer texture, a size is not * specified; rather, the number of texels in the texture is taken by dividing the size of the buffer object by the size of each texel.

* *

This extension also allows a sub-range of the buffer's data store to be attached to a texture. This can be used, for example, to allow multiple buffer * textures to be backed by independent sub-ranges of the same buffer object, or for different sub-ranges of a single buffer object to be used for * different purposes.

*/ public class EXTTextureBuffer { /** * Accepted by the {@code target} parameter of BindBuffer, BufferData, BufferSubData, MapBufferRange, BindTexture, UnmapBuffer, GetBufferParameteriv, * GetBufferPointerv, TexBufferEXT, and TexBufferRangeEXT. */ public static final int GL_TEXTURE_BUFFER_EXT = 0x8C2A; /** Accepted by the {@code pname} parameters of GetBooleanv, GetFloatv, and GetIntegerv. */ public static final int GL_TEXTURE_BUFFER_BINDING_EXT = 0x8C2A, GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B, GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C, GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT = 0x919F; /** * Returned in the {@code type} parameter of GetActiveUniform, the {@code params} parameter of GetActiveUniformsiv, and the {@code params} parameter of * GetProgramResourceiv when the TYPE property is queried on the UNIFORM interface. */ public static final int GL_SAMPLER_BUFFER_EXT = 0x8DC2, GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0, GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8, GL_IMAGE_BUFFER_EXT = 0x9051, GL_INT_IMAGE_BUFFER_EXT = 0x905C, GL_UNSIGNED_INT_IMAGE_BUFFER_EXT = 0x9067; /** Accepted by the {@code pname} parameter of GetTexLevelParameter. */ public static final int GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D, GL_TEXTURE_BUFFER_OFFSET_EXT = 0x919D, GL_TEXTURE_BUFFER_SIZE_EXT = 0x919E; static { GLES.initialize(); } protected EXTTextureBuffer() { throw new UnsupportedOperationException(); } static boolean isAvailable(GLESCapabilities caps) { return checkFunctions( caps.glTexBufferEXT, caps.glTexBufferRangeEXT ); } // --- [ glTexBufferEXT ] --- public static native void nglTexBufferEXT(int target, int internalformat, int buffer); public static void glTexBufferEXT(int target, int internalformat, int buffer) { nglTexBufferEXT(target, internalformat, buffer); } // --- [ glTexBufferRangeEXT ] --- public static native void nglTexBufferRangeEXT(int target, int internalformat, int buffer, long offset, long size); public static void glTexBufferRangeEXT(int target, int internalformat, int buffer, long offset, long size) { nglTexBufferRangeEXT(target, internalformat, buffer, offset, size); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy