summaryrefslogtreecommitdiff
path: root/gfx/src/core/texture.h
blob: 4af41e90279457ce5b01dbc84377973db450bda3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once

#include <gfx/core.h>

#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);