rs_graphics.rsh revision d3e0ad43dc758c409fc23d1893dab67b18520c24
11b937f5c0d66a65daf07a45554c98a9f2481b9baJason Sams#ifndef __RS_GRAPHICS_RSH__
21b937f5c0d66a65daf07a45554c98a9f2481b9baJason Sams#define __RS_GRAPHICS_RSH__
31b937f5c0d66a65daf07a45554c98a9f2481b9baJason Sams
422fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams#include "rs_math.rsh"
551f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams
651f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams
722fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams// context
822fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgBindProgramFragment(rs_program_fragment);
922fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgBindProgramStore(rs_program_store);
1022fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgBindProgramVertex(rs_program_vertex);
1122fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgBindProgramRaster(rs_program_raster);
12f2bcce71dc7a2328355ce779028904772a85cc5fJason Sams
1322fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgBindSampler(rs_program_fragment, int slot, rs_sampler);
1422fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgBindTexture(rs_program_fragment, int slot, rs_allocation);
1551f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams
1622fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgProgramVertexLoadModelMatrix(const rs_matrix4x4 *);
1722fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgProgramVertexLoadTextureMatrix(const rs_matrix4x4 *);
1851f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams
1922fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern int rsgGetWidth();
2022fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern int rsgGetHeight();
2151f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams
2222fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void __attribute__((overloadable)) rsgUploadToTexture(rs_allocation);
2322fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void __attribute__((overloadable)) rsgUploadToTexture(rs_allocation, int mipLevel);
2422fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgUploadToBufferObject(rs_allocation);
2522fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams//extern void rsgUploadMesh(rs_mesh);
2651f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams
2722fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgDrawRect(float x1, float y1, float x2, float y2, float z);
2822fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern 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);
2922fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern 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);
3022fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams//extern void rsgDrawSprite(float x, float y, float z, float w, float h);
3122fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgDrawSpriteScreenspace(float x, float y, float z, float w, float h);
3222fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void __attribute__((overloadable)) rsgDrawSimpleMesh(rs_mesh ism);
3322fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void __attribute__((overloadable)) rsgDrawSimpleMesh(rs_mesh ism, int start, int len);
3451f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams
3522fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgClearColor(float, float, float, float);
3622fa371bf64b8aae786acfe5d711af21afb13a93Jason Samsextern void rsgClearDepth(float);
3751f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams
38d3e0ad43dc758c409fc23d1893dab67b18520c24Alex Sakhartchoukextern void __attribute__((overloadable)) rsgDrawText(const char *, int x, int y);
39d3e0ad43dc758c409fc23d1893dab67b18520c24Alex Sakhartchoukextern void __attribute__((overloadable)) rsgDrawText(rs_allocation, int x, int y);
40d3e0ad43dc758c409fc23d1893dab67b18520c24Alex Sakhartchoukextern void rsgBindFont(rs_font);
41d3e0ad43dc758c409fc23d1893dab67b18520c24Alex Sakhartchouk
4222fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams///////////////////////////////////////////////////////
4351f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams// misc
4451f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Samsextern void color(float, float, float, float);
4551f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams
461b937f5c0d66a65daf07a45554c98a9f2481b9baJason Sams#endif
4751f36ab783316b1c036bab4c3f7e0934dd564bd7Jason Sams
48