64 lines
2.0 KiB
C
64 lines
2.0 KiB
C
#ifndef WR_TEXTURE_H
|
|
#define WR_TEXTURE_H
|
|
|
|
#define WR_TEXTURE(x) ((WrTexture *)(x))
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct WrTexture;
|
|
typedef struct WrTexture WrTexture;
|
|
|
|
typedef enum WrTextureType {
|
|
WR_TEXTURE_TYPE_2D,
|
|
WR_TEXTURE_TYPE_RTT,
|
|
WR_TEXTURE_TYPE_CUBEMAP,
|
|
WR_TEXTURE_TYPE_DRAWABLE
|
|
} WrTextureType;
|
|
|
|
typedef enum WrTextureInternalFormat {
|
|
WR_TEXTURE_INTERNAL_FORMAT_RED,
|
|
WR_TEXTURE_INTERNAL_FORMAT_RG8,
|
|
WR_TEXTURE_INTERNAL_FORMAT_RGB8,
|
|
WR_TEXTURE_INTERNAL_FORMAT_RGBA8,
|
|
WR_TEXTURE_INTERNAL_FORMAT_R16F,
|
|
WR_TEXTURE_INTERNAL_FORMAT_RGB16F,
|
|
WR_TEXTURE_INTERNAL_FORMAT_RGBA16F,
|
|
WR_TEXTURE_INTERNAL_FORMAT_R32F,
|
|
WR_TEXTURE_INTERNAL_FORMAT_RG32F,
|
|
WR_TEXTURE_INTERNAL_FORMAT_RGB32F,
|
|
WR_TEXTURE_INTERNAL_FORMAT_RGBA32F,
|
|
WR_TEXTURE_INTERNAL_FORMAT_DEPTH24_STENCIL8,
|
|
WR_TEXTURE_INTERNAL_FORMAT_DEPTH_COMPONENT32F,
|
|
WR_TEXTURE_INTERNAL_FORMAT_COUNT
|
|
} WrTextureInternalFormat;
|
|
|
|
typedef enum WrTextureWrapMode {
|
|
WR_TEXTURE_WRAP_MODE_REPEAT = 0x2901, // GL_REPEAT
|
|
WR_TEXTURE_WRAP_MODE_CLAMP_TO_EDGE = 0x812F, // GL_CLAMP_TO_EDGE
|
|
WR_TEXTURE_WRAP_MODE_CLAMP_TO_BORDER = 0x812D // GL_CLAMP_TO_BORDER
|
|
} WrTextureWrapMode;
|
|
|
|
void wr_texture_delete(WrTexture *texture);
|
|
|
|
void wr_texture_set_internal_format(WrTexture *texture, WrTextureInternalFormat format);
|
|
void wr_texture_set_texture_unit(WrTexture *texture, unsigned int unit);
|
|
void wr_texture_set_size(WrTexture *texture, int width, int height);
|
|
void wr_texture_set_translucent(WrTexture *texture, bool translucent);
|
|
void wr_texture_change_data(WrTexture *texture, void *data, int x, int y, int width, int height);
|
|
|
|
void wr_texture_setup(WrTexture *texture);
|
|
|
|
int wr_texture_get_width(const WrTexture *texture);
|
|
int wr_texture_get_height(const WrTexture *texture);
|
|
bool wr_texture_is_translucent(const WrTexture *texture);
|
|
WrTextureType wr_texture_get_type(const WrTexture *texture);
|
|
unsigned int wr_texture_get_gl_name(const WrTexture *texture);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // WR_TEXTURE_H
|