55 bool is_bound_ =
false;
57 bool has_pixels_ =
false;
69 void swizzle_set(
const char swizzle_mask[4])
override;
87 bool proxy_check(
int mip);
88 void ensure_mipmaps(
int mip);
89 void update_sub_direct_state_access(
90 int mip,
int offset[3],
int extent[3], GLenum gl_format, GLenum gl_type,
const void *
data);
93 MEM_CXX_CLASS_ALLOC_FUNCS(
"GLTexture")
166 return GL_R11F_G11F_B10F;
168 return GL_DEPTH32F_STENCIL8;
170 return GL_DEPTH24_STENCIL8;
172 return GL_SRGB8_ALPHA8;
178 return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;
180 return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;
182 return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;
184 return GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
186 return GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
188 return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
191 return GL_DEPTH_COMPONENT32F;
193 return GL_DEPTH_COMPONENT24;
195 return GL_DEPTH_COMPONENT16;
197 BLI_assert(!
"Texture format incorrect or unsupported\n");
206 return GL_TEXTURE_1D;
208 return GL_TEXTURE_1D_ARRAY;
210 return GL_TEXTURE_2D;
212 return GL_TEXTURE_2D_ARRAY;
214 return GL_TEXTURE_3D;
216 return GL_TEXTURE_CUBE_MAP;
218 return GL_TEXTURE_CUBE_MAP_ARRAY_ARB;
220 return GL_TEXTURE_BUFFER;
223 return GL_TEXTURE_1D;
231 return GL_PROXY_TEXTURE_1D;
233 return GL_PROXY_TEXTURE_1D_ARRAY;
235 return GL_PROXY_TEXTURE_2D;
237 return GL_PROXY_TEXTURE_2D_ARRAY;
239 return GL_PROXY_TEXTURE_3D;
241 return GL_PROXY_TEXTURE_CUBE_MAP;
243 return GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB;
247 return GL_TEXTURE_1D;
282 return GL_UNSIGNED_INT;
284 return GL_UNSIGNED_BYTE;
286 return GL_UNSIGNED_INT_24_8;
288 return GL_UNSIGNED_INT_2_10_10_10_REV;
290 return GL_UNSIGNED_INT_10F_11F_11F_REV;
309 return GL_RED_INTEGER;
316 return GL_RG_INTEGER;
323 return GL_RGBA_INTEGER;
346 return GL_DEPTH_STENCIL;
350 return GL_DEPTH_COMPONENT;
352 return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;
354 return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;
356 return GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;
358 return GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
360 return GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
362 return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
364 BLI_assert(!
"Texture format incorrect or unsupported\n");
372 switch (channel_len) {
382 BLI_assert(!
"Wrong number of texture channels");
struct GPUFrameBuffer GPUFrameBuffer
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
@ GPU_DATA_2_10_10_10_REV
static const int GPU_SAMPLER_MAX
struct GPUVertBuf GPUVertBuf
Read Guarded memory(de)allocation.
GLTexture(const char *name)
static void samplers_free(void)
void copy_to(Texture *dst) override
void mip_range_set(int min, int max) override
void check_feedback_loop(void)
uint gl_bindcode_get(void) const override
void generate_mipmap(void) override
void * read(int mip, eGPUDataFormat type) override
static void samplers_update(void)
bool init_internal(void) override
static void samplers_init(void)
void update_sub(int mip, int offset[3], int extent[3], eGPUDataFormat type, const void *data) override
void clear(eGPUDataFormat format, const void *data) override
void swizzle_set(const char swizzle_mask[4]) override
GLenum to_gl_target(eGPUTextureType type)
GLenum to_gl_internal_format(eGPUTextureFormat format)
GLenum to_gl_proxy(eGPUTextureType type)
GLenum to_gl_data_format(eGPUTextureFormat format)
GLenum swizzle_to_gl(const char swizzle)
GLenum channel_len_to_gl(int channel_len)
static GLenum to_gl(const GPUAttachmentType type)