29 GLTexture2D(GLint magFilter=GL_NEAREST, GLint minFilter=GL_NEAREST,
30 GLint wrapX=GL_REPEAT, GLint wrapY=GL_REPEAT);
44 GLint magFilter=GL_NEAREST, GLint minFilter=GL_NEAREST,
45 GLint wrapX=GL_REPEAT, GLint wrapY=GL_REPEAT);
57 const GLuint
getId()
const;
86 void setData(
const std::vector<GLubyte>& data, uint32_t width, uint32_t height, uint8_t componentCount=4);
92 void setData(
const std::vector<GLubyte>& data);
102 void setData(
const std::vector<GLfloat>& data, uint32_t width, uint32_t height, uint8_t componentCount=4);
108 void setData(
const std::vector<GLfloat>& data);
118 void setData(
const std::vector<GLhalf>& data, uint32_t width, uint32_t height, uint8_t componentCount=4);
124 void setData(
const std::vector<GLhalf>& data);
131 void setFilter(GLint magFilter, GLint minFilter);
139 void setPixel(
const std::vector<GLubyte>& data, uint32_t x, uint32_t y);
149 uint32_t
getSize()
const {
return height*width*componentCount;}
153#ifndef __EMSCRIPTEN__
166 GLint internalformat;
175 std::vector<GLubyte> data;
176 std::vector<GLhalf> hdata;
177 std::vector<GLfloat> fdata;
180 uint8_t componentCount{0};
191 void setData(GLvoid* data, uint32_t width, uint32_t height,
Cross‑platform OpenGL window/context helper for desktop and Emscripten.
GLDataType
Element type selector for texture uploads/allocations.
Definition GLEnv.h:43
@ BYTE
Definition GLEnv.h:43
Lightweight image container with basic processing utilities.
const std::vector< GLhalf > & getDataHalf()
Read back raw half floats via glGetTexImage.
Definition GLTexture2D.cpp:281
void setFilter(GLint magFilter, GLint minFilter)
Update filtering parameters on the bound texture.
Definition GLTexture2D.cpp:36
const GLuint getId() const
Retrieve the OpenGL texture object name.
Definition GLTexture2D.cpp:95
~GLTexture2D()
Destroy and delete the GL texture name.
Definition GLTexture2D.cpp:45
uint32_t getComponentCount() const
Definition GLTexture2D.h:148
uint32_t getSize() const
Definition GLTexture2D.h:149
uint32_t getHeight() const
Definition GLTexture2D.h:146
GLTexture2D & operator=(const GLTexture2D &other)
Copy-assign and duplicate texture contents and parameters.
Definition GLTexture2D.cpp:67
void setPixel(const std::vector< GLubyte > &data, uint32_t x, uint32_t y)
Replace a single pixel at (x,y) with unsigned-byte RGBA/RGB/etc.
Definition GLTexture2D.cpp:251
void generateMipmap()
Generate mipmaps for the texture.
Definition GLTexture2D.cpp:258
Image getImage()
Read back texture as an Image (BYTE).
Definition GLTexture2D.cpp:265
GLTexture2D(GLint magFilter=GL_NEAREST, GLint minFilter=GL_NEAREST, GLint wrapX=GL_REPEAT, GLint wrapY=GL_REPEAT)
Create an empty GL_TEXTURE_2D and set sampler parameters.
Definition GLTexture2D.cpp:6
void setData(const Image &image)
Upload from an Image (bytes).
Definition GLTexture2D.cpp:103
void setEmpty(uint32_t width, uint32_t height, uint8_t componentCount, GLDataType dataType=GLDataType::BYTE)
Allocate an empty texture of given size and format.
Definition GLTexture2D.cpp:116
uint32_t getWidth() const
Definition GLTexture2D.h:147
const std::vector< GLfloat > & getDataFloat()
Read back raw floats via glGetTexImage.
Definition GLTexture2D.cpp:293
const std::vector< GLubyte > & getDataByte()
Read back raw unsigned bytes via glGetTexImage.
Definition GLTexture2D.cpp:269
void clear()
Clear the texture to an empty image preserving dimensions/type.
Definition GLTexture2D.cpp:99
GLDataType getType() const
Definition GLTexture2D.h:150
void setData(const std::vector< GLhalf > &data)
Upload 16-bit half-float data using previously set dimensions.