CGVIS Utils
Loading...
Searching...
No Matches
GLTextureCube.h
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
5#include "GLEnv.h"
6#include "Image.h"
7
18
27
32public:
42 GLTextureCube(GLint magFilter=GL_NEAREST, GLint minFilter=GL_NEAREST,
43 GLint wrapX=GL_CLAMP_TO_EDGE, GLint wrapY=GL_CLAMP_TO_EDGE,
44 GLint wrapZ=GL_CLAMP_TO_EDGE);
47
57 GLTextureCube(const Image& image0, const Image& image1, const Image& image2,
58 const Image& image3, const Image& image4, const Image& image5,
59 GLint magFilter=GL_NEAREST, GLint minFilter=GL_NEAREST,
60 GLint wrapX=GL_REPEAT, GLint wrapY=GL_REPEAT);
61
63 GLTextureCube(const GLTextureCube& other);
66
71 const GLuint getId() const;
72
74 void clear();
75
84 void setEmpty(uint32_t width, uint32_t height, uint8_t componentCount,
86
92 void setData(const Image& image, Face face);
93
103 void setData(const std::vector<GLubyte>& data, uint32_t width,
104 uint32_t height, Face face, uint8_t componentCount=4);
105
111 void setData(const std::vector<GLubyte>& data, Face face);
112
122 void setData(const std::vector<GLfloat>& data, uint32_t width,
123 uint32_t height, Face face, uint8_t componentCount=4);
124
130 void setData(const std::vector<GLfloat>& data, Face face);
131
141 void setData(const std::vector<GLhalf>& data, uint32_t width,
142 uint32_t height, Face face, uint8_t componentCount=4);
143
149 void setData(const std::vector<GLhalf>& data, Face face);
150
156 void setFilter(GLint magFilter, GLint minFilter);
157
160 uint32_t getHeight() const {return height;}
161 uint32_t getWidth() const {return width;}
162 uint32_t getComponentCount() const {return componentCount;}
163 uint32_t getSize() const {return height*width*componentCount;}
164 GLDataType getType() const {return dataType;}
166
168 void generateMipmap();
169
170private:
171 GLuint id;
172 GLint internalformat;
173 GLenum format;
174 GLenum type;
175
176 GLint magFilter;
177 GLint minFilter;
178 GLint wrapX;
179 GLint wrapY;
180 GLint wrapZ;
181 std::vector<GLubyte> data;
182 std::vector<GLhalf> hdata;
183 std::vector<GLfloat> fdata;
184 uint32_t width{0};
185 uint32_t height{0};
186 uint8_t componentCount{0};
187 GLDataType dataType;
188
198 void setData(GLvoid* data, uint32_t width, uint32_t height, Face face,
199 uint8_t componentCount, GLDataType dataType);
200};
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
Face
Definition GLTextureCube.h:19
@ NEGZ
−Z face (GL_TEXTURE_CUBE_MAP_NEGATIVE_Z).
Definition GLTextureCube.h:25
@ POSY
+Y face (GL_TEXTURE_CUBE_MAP_POSITIVE_Y).
Definition GLTextureCube.h:22
@ POSZ
+Z face (GL_TEXTURE_CUBE_MAP_POSITIVE_Z).
Definition GLTextureCube.h:24
@ POSX
+X face (GL_TEXTURE_CUBE_MAP_POSITIVE_X).
Definition GLTextureCube.h:20
@ NEGY
−Y face (GL_TEXTURE_CUBE_MAP_NEGATIVE_Y).
Definition GLTextureCube.h:23
@ NEGX
−X face (GL_TEXTURE_CUBE_MAP_NEGATIVE_X).
Definition GLTextureCube.h:21
Lightweight image container with basic processing utilities.
void generateMipmap()
Generate mipmaps for the cube map.
Definition GLTextureCube.cpp:285
uint32_t getSize() const
Elements per face.
Definition GLTextureCube.h:163
void setData(const std::vector< GLhalf > &data, Face face)
Upload one face from 16‑bit half‑float data using existing dimensions.
~GLTextureCube()
Destroy and delete the GL texture name.
Definition GLTextureCube.cpp:58
const GLuint getId() const
Retrieve the OpenGL texture object name.
Definition GLTextureCube.cpp:114
uint32_t getComponentCount() const
Components per texel (1..4).
Definition GLTextureCube.h:162
GLTextureCube & operator=(const GLTextureCube &other)
Copy‑assign and duplicate texture contents and parameters.
Definition GLTextureCube.cpp:82
void setFilter(GLint magFilter, GLint minFilter)
Update filtering parameters on the bound cube map.
Definition GLTextureCube.cpp:49
GLTextureCube(GLint magFilter=GL_NEAREST, GLint minFilter=GL_NEAREST, GLint wrapX=GL_CLAMP_TO_EDGE, GLint wrapY=GL_CLAMP_TO_EDGE, GLint wrapZ=GL_CLAMP_TO_EDGE)
Create an empty cube map and apply sampler parameters.
Definition GLTextureCube.cpp:6
void clear()
Clear the texture by reinitializing the current storage.
Definition GLTextureCube.cpp:118
void setData(const Image &image, Face face)
Upload one face from an Image (unsigned bytes).
Definition GLTextureCube.cpp:122
uint32_t getWidth() const
Face width in texels.
Definition GLTextureCube.h:161
uint32_t getHeight() const
Face height in texels.
Definition GLTextureCube.h:160
void setEmpty(uint32_t width, uint32_t height, uint8_t componentCount, GLDataType dataType=GLDataType::BYTE)
Allocate empty storage for all six faces.
Definition GLTextureCube.cpp:135
GLDataType getType() const
Element type (BYTE/HALF/FLOAT).
Definition GLTextureCube.h:164
Definition Image.h:22