62a8a3a1617e0ca7b8bac15959d362be0d38c392
[demo] / src / gfxapi.h
1 #ifndef GFXAPI_H_
2 #define GFXAPI_H_
3
4 class Mesh;
5 class Texture;
6 class ShaderProgram;
7 class Shader;
8
9 enum Gfx_API {
10         GFX_GL,
11         GFX_VK
12 };
13
14 enum Gfx_cull_face {
15         GFX_CULL_NONE,
16         GFX_CULL_FRONT,
17         GFX_CULL_BACK
18 };
19
20 extern void (*gfx_clear)(float r, float g, float b);
21 extern void (*gfx_viewport)(int x, int y, int width, int height);
22 extern void (*gfx_zbuffer)(bool enable);
23 extern void (*gfx_cull_face)(Gfx_cull_face cf);
24 extern void (*gfx_reshape)(int width, int height);
25
26 bool gfx_init(Gfx_API api);
27 void gfx_cleanup();
28
29 Mesh *gfx_create_mesh();
30 Texture *gfx_create_texture();
31 ShaderProgram *gfx_create_shader_program();
32 Shader *gfx_create_shader();
33 char *gfx_get_shader_path();
34
35 #endif // GFXAPI_H_