Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef _RENDERER_H_
- #define _RENDERER_H_
- // ezt egyelore iderakom, ameddig nem talalok ki jobb jatekot.
- #ifndef _USE_OPENGL
- #include <GLES2/gl2.h>
- #else
- #include <GL/GL.h>
- #include "../platform/windows/ext.h"
- #endif
- typedef struct{
- int width, height;
- } windowMetrices_t;
- extern void setupRenderer(windowMetrices_t metrices);
- ///////////////////////////////////////////////////////////////////////////////
- // timer
- ///////////////////////////////////////////////////////////////////////////////
- extern float getTime();
- ///////////////////////////////////////////////////////////////////////////////
- // rendering
- ///////////////////////////////////////////////////////////////////////////////
- extern void clear(float r, float g, float b, float a);
- // clears every binded state
- extern void clearStates();
- enum blending_e{
- BLEND_COUTN
- };
- extern void blending();
- extern void flush();
- ///////////////////////////////////////////////////////////////////////////////
- // mesh
- ///////////////////////////////////////////////////////////////////////////////
- enum polygon_drawtype_e{
- DRAW_triangles,
- DRAW_triangleFan,
- DRAW_COUNT
- };
- typedef struct{
- const float *vertices; int vertices_len;
- const float *normals; /*int normals_len;*/
- const float *uvs; /*int uvs_len;*/
- const short int *indices; int indices_len; //in OGLES only _SHORT and _BYTE accepted :(
- enum polygon_drawtype_e drawtype;
- //
- int use_vbo;
- int vertices_id, normals_id, uvs_id, indices_id;
- } mesh_t;
- extern int mesh_build(mesh_t *meshObject);
- extern void mesh_bind(mesh_t *meshObject);
- extern void mesh_draw(mesh_t *meshObject);
- extern void mesh_unbind(mesh_t *meshObject);
- ///////////////////////////////////////////////////////////////////////////////
- // shader
- // elengedhetetlen resze az ogles2-nek
- ///////////////////////////////////////////////////////////////////////////////
- enum fixed_uniforms_e{
- UNIFORM_modelView,
- UNIFORM_projection,
- UNIFORM_COUNT
- };
- enum fixed_attribs_e{
- ATTRIB_vertex,
- ATTRIB_texCoord,
- ATTRIB_color,
- ATTRIB_normal,
- ATTRIB_tangent,
- ATTRIB_COUNT
- };
- typedef struct{
- const char *vertex_source, *fragment_source;
- int programID, vertexID, fragmentID;
- int fxed_attrib_id[16];
- int fxed_uniform_id[16];
- } shader_t;
- extern int shader_build(shader_t *shaderObject);
- extern void shader_bind(shader_t *shaderObject);
- extern void shader_unbind(shader_t *shaderObject);
- extern void shader_uniform_1f (shader_t *shaderObject, const char* name, float f1);
- extern void shader_uniform_2f (shader_t *shaderObject, const char* name, float f1, float f2);
- extern void shader_uniform_3f (shader_t *shaderObject, const char* name, float f1, float f2, float f3);
- extern void shader_uniform_4f (shader_t *shaderObject, const char* name, float f1, float f2, float f3, float f4);
- extern void shader_uniform_1i (shader_t *shaderObject, const char* name, int i);
- extern void shader_uniform_mat3(shader_t *shaderObject, const char* name, float *mat);
- extern void shader_uniform_mat4(shader_t *shaderObject, const char* name, float *mat);
- extern void shader_fixed_attrib(const enum fixed_attribs_e dest, const void* data, const int length, const int elem_length);
- //extern void shader_fixed_uniform(fixed_uniforms dest, const void* data, const int length); //lol mi + 9001 overload
- ///////////////////////////////////////////////////////////////////////////////
- // texture
- ///////////////////////////////////////////////////////////////////////////////
- typedef struct {
- int id;
- int sx, sy, ch;
- void* bitmap;
- int bound_level;
- } texture_t;
- // @return 0 if succeed.
- extern int bitmap_create(texture_t *textureObject);
- extern int bitmap_load(texture_t *textureObject, const void* data, const unsigned int length, int force_ch);
- extern int bitmap_resize(texture_t *textureObject, const unsigned int nx, const unsigned int ny);
- extern int bitmap_buildTexture(texture_t *textureObject);
- extern void bitmap_bindTexture(texture_t *textureObject);
- extern void bitmap_bindTexture_level(texture_t *textureObject, int level);
- extern void bitmap_unbindTexture(texture_t *textureObject);
- extern int bitmap_delete(texture_t *textureObject);
- ///////////////////////////////////////////////////////////////////////////////
- // Misc
- ///////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////
- // Data for full screen aligned quad
- ///////////////////////////////////////////////////////////////////////////////
- extern const float *full_screen_quad_vertices;
- extern const float *full_screen_quad_uvs;
- extern const unsigned short *full_screen_quad_indices;
- extern const int full_screen_quad_vertices_length;
- extern const int full_screen_quad_uvs_length;
- extern const int full_screen_quad_indices_length;
- #endif /*_RENDERER_H_*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement