4 #include <glbinding/gl/types.h> 10 #include <globjects/globjects_api.h> 36 , DirectStateAccessEXT
43 , DirectStateAccessEXT
48 static void hintBindlessImplementation(BindlessImplementation impl);
49 static void hintStorageImplementation(StorageImplementation impl);
53 static Texture * fromId(gl::GLuint
id, gl::GLenum target);
55 static Texture * createDefault();
56 static Texture * createDefault(gl::GLenum target);
62 static void unbind(gl::GLenum target);
64 void bindActive(gl::GLenum texture)
const;
65 void bindActive(
unsigned int index)
const;
66 void unbindActive(gl::GLenum texture)
const;
67 void unbindActive(
unsigned int index)
const;
69 void setParameter(gl::GLenum name, gl::GLenum value);
70 void setParameter(gl::GLenum name, gl::GLint value);
71 void setParameter(gl::GLenum name, gl::GLfloat value);
72 void setParameter(gl::GLenum name,
const glm::vec4 & value);
74 gl::GLint getParameter(gl::GLenum pname)
const;
75 gl::GLint getLevelParameter(gl::GLint level, gl::GLenum pname)
const;
77 void getImage(gl::GLint level, gl::GLenum format, gl::GLenum type, gl::GLvoid * image)
const;
78 std::vector<unsigned char> getImage(gl::GLint level, gl::GLenum format, gl::GLenum type)
const;
80 void getCompressedImage(gl::GLint lod, gl::GLvoid * image)
const;
81 std::vector<unsigned char> getCompressedImage(gl::GLint lod = 0)
const;
83 gl::GLenum target()
const;
85 void image1D(gl::GLint level, gl::GLenum internalFormat, gl::GLsizei width, gl::GLint border, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
86 void compressedImage1D(gl::GLint level, gl::GLenum internalFormat, gl::GLsizei width, gl::GLint border, gl::GLsizei imageSize,
const gl::GLvoid * data);
87 void subImage1D(gl::GLint level, gl::GLint xOffset, gl::GLsizei width, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
89 void image2D(gl::GLint level, gl::GLenum internalFormat, gl::GLsizei width, gl::GLsizei height, gl::GLint border, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
90 void image2D(gl::GLint level, gl::GLenum internalFormat,
const glm::ivec2 & size, gl::GLint border, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
91 void compressedImage2D(gl::GLint level, gl::GLenum internalFormat, gl::GLsizei width, gl::GLsizei height, gl::GLint border, gl::GLsizei imageSize,
const gl::GLvoid * data);
92 void compressedImage2D(gl::GLint level, gl::GLenum internalFormat,
const glm::ivec2 & size, gl::GLint border, gl::GLsizei imageSize,
const gl::GLvoid * data);
93 void subImage2D(gl::GLint level, gl::GLint xOffset, gl::GLint yOffset, gl::GLsizei width, gl::GLsizei height, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
94 void subImage2D(gl::GLint level,
const glm::ivec2& offset,
const glm::ivec2& size, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
96 void image3D(gl::GLint level, gl::GLenum internalFormat, gl::GLsizei width, gl::GLsizei height, gl::GLsizei depth, gl::GLint border, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
97 void image3D(gl::GLint level, gl::GLenum internalFormat,
const glm::ivec3 & size, gl::GLint border, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
98 void compressedImage3D(gl::GLint level, gl::GLenum internalFormat, gl::GLsizei width, gl::GLsizei height, gl::GLsizei depth, gl::GLint border, gl::GLsizei imageSize,
const gl::GLvoid * data);
99 void compressedImage3D(gl::GLint level, gl::GLenum internalFormat,
const glm::ivec3 & size, gl::GLint border, gl::GLsizei imageSize,
const gl::GLvoid * data);
100 void subImage3D(gl::GLint level, gl::GLint xOffset, gl::GLint yOffset, gl::GLint zOffset, gl::GLsizei width, gl::GLsizei height, gl::GLsizei depth, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
101 void subImage3D(gl::GLint level,
const glm::ivec3& offset,
const glm::ivec3& size, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
103 void image2DMultisample(gl::GLsizei samples, gl::GLenum internalFormat, gl::GLsizei width, gl::GLsizei height, gl::GLboolean fixedSamplesLocations);
104 void image2DMultisample(gl::GLsizei samples, gl::GLenum internalFormat,
const glm::ivec2 & size, gl::GLboolean fixedSamplesLocations);
105 void image3DMultisample(gl::GLsizei samples, gl::GLenum internalFormat, gl::GLsizei width, gl::GLsizei height, gl::GLsizei depth, gl::GLboolean fixedSamplesLocations);
106 void image3DMultisample(gl::GLsizei samples, gl::GLenum internalFormat,
const glm::ivec3 & size, gl::GLboolean fixedSamplesLocations);
108 void storage1D(gl::GLsizei levels, gl::GLenum internalFormat, gl::GLsizei width);
109 void storage2D(gl::GLsizei levels, gl::GLenum internalFormat, gl::GLsizei width, gl::GLsizei height);
110 void storage2D(gl::GLsizei levels, gl::GLenum internalFormat,
const glm::ivec2 & size);
111 void storage3D(gl::GLsizei levels, gl::GLenum internalFormat, gl::GLsizei width, gl::GLsizei height, gl::GLsizei depth);
112 void storage3D(gl::GLsizei levels, gl::GLenum internalFormat,
const glm::ivec3 & size);
114 void textureView(gl::GLuint originalTexture, gl::GLenum internalFormat, gl::GLuint minLevel, gl::GLuint numLevels, gl::GLuint minLayer, gl::GLuint numLayers);
116 void texBuffer(gl::GLenum internalFormat,
Buffer * buffer);
117 void texBufferRange(gl::GLenum internalFormat,
Buffer * buffer, gl::GLintptr offset, gl::GLsizeiptr size);
119 void clearImage(gl::GLint level, gl::GLenum format, gl::GLenum type,
const void * data);
120 void clearImage(gl::GLint level, gl::GLenum format, gl::GLenum type,
const glm::vec4 & value);
121 void clearImage(gl::GLint level, gl::GLenum format, gl::GLenum type,
const glm::ivec4 & value);
122 void clearImage(gl::GLint level, gl::GLenum format, gl::GLenum type,
const glm::uvec4 & value);
124 void clearSubImage(gl::GLint level, gl::GLint xOffset, gl::GLint yOffset, gl::GLint zOffset, gl::GLsizei width, gl::GLsizei height, gl::GLsizei depth, gl::GLenum format, gl::GLenum type,
const void * data);
125 void clearSubImage(gl::GLint level,
const glm::ivec3 & offset,
const glm::ivec3 & size, gl::GLenum format, gl::GLenum type,
const void * data);
126 void clearSubImage(gl::GLint level,
const glm::ivec3 & offset,
const glm::ivec3 & size, gl::GLenum format, gl::GLenum type,
const glm::vec4 & value);
127 void clearSubImage(gl::GLint level,
const glm::ivec3 & offset,
const glm::ivec3 & size, gl::GLenum format, gl::GLenum type,
const glm::ivec4 & value);
128 void clearSubImage(gl::GLint level,
const glm::ivec3 & offset,
const glm::ivec3 & size, gl::GLenum format, gl::GLenum type,
const glm::uvec4 & value);
130 void invalidateImage(gl::GLint level)
const;
131 void invalidateSubImage(gl::GLint level, gl::GLint xoffset, gl::GLint yoffset, gl::GLint zoffset, gl::GLsizei width, gl::GLsizei height, gl::GLsizei depth);
132 void invalidateSubImage(gl::GLint level,
const glm::ivec3& offset,
const glm::ivec3 size);
134 void bindImageTexture(gl::GLuint unit, gl::GLint level, gl::GLboolean layered, gl::GLint layer, gl::GLenum access, gl::GLenum format)
const;
135 static void unbindImageTexture(gl::GLuint unit);
137 void generateMipmap();
139 void cubeMapImage(gl::GLint level, gl::GLenum internalFormat, gl::GLsizei width, gl::GLsizei height, gl::GLint border, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
140 void cubeMapImage(gl::GLint level, gl::GLenum internalFormat,
const glm::ivec2 & size, gl::GLint border, gl::GLenum format, gl::GLenum type,
const gl::GLvoid * data);
145 void pageCommitment(gl::GLint level, gl::GLint xOffset, gl::GLint yOffset, gl::GLint zOffset, gl::GLsizei width, gl::GLsizei height, gl::GLsizei depth, gl::GLboolean commit)
const;
146 void pageCommitment(gl::GLint level,
const glm::ivec3& offset,
const glm::ivec3& size, gl::GLboolean commit)
const;
148 virtual gl::GLenum objectType()
const override;
151 Texture(IDResource * resource, gl::GLenum target);
gl::GLenum m_target
Definition: Texture.h:155
Contains all the classes that wrap OpenGL functionality.
Superclass of all wrapped OpenGL objects.
Definition: Object.h:26
Definition: TextureHandle.h:18
Wrapper for OpenGL buffer objects.
Definition: Buffer.h:35
Wraps OpenGL sampler objects.
Definition: Sampler.h:18
BindlessImplementation
Definition: Texture.h:33
Implements a Visitor Pattern to iterate over all tracked globjects objects.
Definition: ObjectVisitor.h:29
Wraps OpenGL texture objects. A Texture provides both interfaces to bind them for the OpenGL pipeline...
Definition: Texture.h:30
StorageImplementation
Definition: Texture.h:40