#pragma once #include #include "gl_util.h" typedef struct Texture { GLuint id; GLenum target; GLenum format; GLenum type; int width; int height; } Texture; /// Create a new texture. bool gfx_init_texture(Texture*, const TextureDesc*); /// Destroy the texture. void gfx_del_texture(Texture*); /// Converts a TextureDimension into the OpenGL enum equivalent. GLenum to_GL_dimension(TextureDimension dim); /// Converts a texture format into an OpenGL internal format. GLenum to_GL_internal_format(TextureFormat format); /// Converts a texture format into an OpenGL format. GLenum to_GL_format(TextureFormat format); /// Converts a texture format into an OpenGL type. GLenum to_GL_type(TextureFormat format); /// Converts a cubemap face into the OpenGL enum equivalent. GLenum to_GL_cubemap_face(CubemapFace face);