blob: fba3d6d0acd00e9692adaf15752c1707d2986aa3 [file] [log] [blame]
Jason Sams1b937f52010-06-09 14:26:16 -07001#ifndef __RS_GRAPHICS_RSH__
2#define __RS_GRAPHICS_RSH__
3
Jason Sams22fa3712010-05-19 17:22:57 -07004#include "rs_math.rsh"
Jason Sams51f36ab2010-03-18 14:36:05 -07005
6
Jason Sams22fa3712010-05-19 17:22:57 -07007// context
8extern void rsgBindProgramFragment(rs_program_fragment);
9extern void rsgBindProgramStore(rs_program_store);
10extern void rsgBindProgramVertex(rs_program_vertex);
11extern void rsgBindProgramRaster(rs_program_raster);
Jason Samsf2bcce72010-03-26 15:33:42 -070012
Jason Sams22fa3712010-05-19 17:22:57 -070013extern void rsgBindSampler(rs_program_fragment, int slot, rs_sampler);
14extern void rsgBindTexture(rs_program_fragment, int slot, rs_allocation);
Jason Sams51f36ab2010-03-18 14:36:05 -070015
Jason Sams22fa3712010-05-19 17:22:57 -070016extern void rsgProgramVertexLoadModelMatrix(const rs_matrix4x4 *);
17extern void rsgProgramVertexLoadTextureMatrix(const rs_matrix4x4 *);
Jason Sams51f36ab2010-03-18 14:36:05 -070018
Jason Sams22fa3712010-05-19 17:22:57 -070019extern int rsgGetWidth();
20extern int rsgGetHeight();
Jason Sams51f36ab2010-03-18 14:36:05 -070021
Jason Sams22fa3712010-05-19 17:22:57 -070022extern void __attribute__((overloadable)) rsgUploadToTexture(rs_allocation);
23extern void __attribute__((overloadable)) rsgUploadToTexture(rs_allocation, int mipLevel);
24extern void rsgUploadToBufferObject(rs_allocation);
25//extern void rsgUploadMesh(rs_mesh);
Jason Sams51f36ab2010-03-18 14:36:05 -070026
Jason Sams22fa3712010-05-19 17:22:57 -070027extern void rsgDrawRect(float x1, float y1, float x2, float y2, float z);
28extern void rsgDrawQuad(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4);
29extern void rsgDrawQuadTexCoords(float x1, float y1, float z1, float u1, float v1, float x2, float y2, float z2, float u2, float v2, float x3, float y3, float z3, float u3, float v3, float x4, float y4, float z4, float u4, float v4);
30//extern void rsgDrawSprite(float x, float y, float z, float w, float h);
31extern void rsgDrawSpriteScreenspace(float x, float y, float z, float w, float h);
Jason Sams22fa3712010-05-19 17:22:57 -070032extern void __attribute__((overloadable)) rsgDrawSimpleMesh(rs_mesh ism);
33extern void __attribute__((overloadable)) rsgDrawSimpleMesh(rs_mesh ism, int start, int len);
Jason Sams51f36ab2010-03-18 14:36:05 -070034
Jason Sams22fa3712010-05-19 17:22:57 -070035extern void rsgClearColor(float, float, float, float);
36extern void rsgClearDepth(float);
Jason Sams51f36ab2010-03-18 14:36:05 -070037
Alex Sakhartchoukd3e0ad42010-06-24 17:15:34 -070038extern void __attribute__((overloadable)) rsgDrawText(const char *, int x, int y);
39extern void __attribute__((overloadable)) rsgDrawText(rs_allocation, int x, int y);
40extern void rsgBindFont(rs_font);
41
Jason Sams22fa3712010-05-19 17:22:57 -070042///////////////////////////////////////////////////////
Jason Sams51f36ab2010-03-18 14:36:05 -070043// misc
Jason Sams51f36ab2010-03-18 14:36:05 -070044extern void color(float, float, float, float);
Jason Sams51f36ab2010-03-18 14:36:05 -070045
Jason Sams1b937f52010-06-09 14:26:16 -070046#endif
Jason Sams51f36ab2010-03-18 14:36:05 -070047