blob: 3868f24778ee42a93e06c5f648d307bde0bb3c8d [file] [log] [blame]
Jason Sams1b937f52010-06-09 14:26:16 -07001#ifndef __RS_GRAPHICS_RSH__
2#define __RS_GRAPHICS_RSH__
3
Jason Sams73495472010-07-29 17:31:14 -07004// Bind a ProgramFragment to the RS context.
5extern void __attribute__((overloadable))
6 rsgBindProgramFragment(rs_program_fragment);
7extern void __attribute__((overloadable))
8 rsgBindProgramStore(rs_program_store);
9extern void __attribute__((overloadable))
10 rsgBindProgramVertex(rs_program_vertex);
11extern void __attribute__((overloadable))
12 rsgBindProgramRaster(rs_program_raster);
Jason Samsf2bcce72010-03-26 15:33:42 -070013
Jason Sams73495472010-07-29 17:31:14 -070014extern void __attribute__((overloadable))
15 rsgBindSampler(rs_program_fragment, uint slot, rs_sampler);
16extern void __attribute__((overloadable))
17 rsgBindTexture(rs_program_fragment, uint slot, rs_allocation);
Jason Sams51f36ab2010-03-18 14:36:05 -070018
Jason Sams73495472010-07-29 17:31:14 -070019extern void __attribute__((overloadable))
20 rsgProgramVertexLoadProjectionMatrix(const rs_matrix4x4 *);
21extern void __attribute__((overloadable))
22 rsgProgramVertexLoadModelMatrix(const rs_matrix4x4 *);
23extern void __attribute__((overloadable))
24 rsgProgramVertexLoadTextureMatrix(const rs_matrix4x4 *);
Jason Sams51f36ab2010-03-18 14:36:05 -070025
Jason Sams6445e522010-08-04 17:50:20 -070026extern void __attribute__((overloadable))
Alex Sakhartchouk95333f92010-08-16 17:40:10 -070027 rsgProgramVertexGetProjectionMatrix(rs_matrix4x4 *);
28
29extern void __attribute__((overloadable))
Jason Sams6445e522010-08-04 17:50:20 -070030 rsgProgramFragmentConstantColor(rs_program_fragment, float, float, float, float);
31
Jason Sams73495472010-07-29 17:31:14 -070032extern uint __attribute__((overloadable))
33 rsgGetWidth(void);
34extern uint __attribute__((overloadable))
35 rsgGetHeight(void);
Jason Sams51f36ab2010-03-18 14:36:05 -070036
Jason Sams73495472010-07-29 17:31:14 -070037extern void __attribute__((overloadable))
Jason Samsb7e83bd2010-12-15 01:41:00 -080038 rsgAllocationSyncAll(rs_allocation);
39
40extern void __attribute__((overloadable))
Jason Sams73495472010-07-29 17:31:14 -070041 rsgDrawRect(float x1, float y1, float x2, float y2, float z);
42extern void __attribute__((overloadable))
43 rsgDrawQuad(float x1, float y1, float z1,
44 float x2, float y2, float z2,
45 float x3, float y3, float z3,
46 float x4, float y4, float z4);
47extern void __attribute__((overloadable))
48 rsgDrawQuadTexCoords(float x1, float y1, float z1, float u1, float v1,
49 float x2, float y2, float z2, float u2, float v2,
50 float x3, float y3, float z3, float u3, float v3,
51 float x4, float y4, float z4, float u4, float v4);
52extern void __attribute__((overloadable))
53 rsgDrawSpriteScreenspace(float x, float y, float z, float w, float h);
Jason Sams51f36ab2010-03-18 14:36:05 -070054
Jason Sams73495472010-07-29 17:31:14 -070055extern void __attribute__((overloadable))
56 rsgDrawMesh(rs_mesh ism);
57extern void __attribute__((overloadable))
58 rsgDrawMesh(rs_mesh ism, uint primitiveIndex);
59extern void __attribute__((overloadable))
60 rsgDrawMesh(rs_mesh ism, uint primitiveIndex, uint start, uint len);
Alex Sakhartchouk4e9a7a82010-07-01 16:14:06 -070061
Jason Sams73495472010-07-29 17:31:14 -070062extern void __attribute__((overloadable))
63 rsgClearColor(float, float, float, float);
64extern void __attribute__((overloadable))
65 rsgClearDepth(float);
Jason Sams51f36ab2010-03-18 14:36:05 -070066
Jason Sams73495472010-07-29 17:31:14 -070067extern void __attribute__((overloadable))
68 rsgDrawText(const char *, int x, int y);
69extern void __attribute__((overloadable))
70 rsgDrawText(rs_allocation, int x, int y);
71extern void __attribute__((overloadable))
72 rsgBindFont(rs_font);
Alex Sakhartchouk9fc9f032010-08-04 14:45:48 -070073extern void __attribute__((overloadable))
74 rsgFontColor(float, float, float, float);
Alex Sakhartchouk09c67352010-10-05 11:33:27 -070075// Returns the bounding box of the text relative to (0, 0)
76// Any of left, right, top, bottom could be NULL
77extern void __attribute__((overloadable))
78 rsgMeasureText(const char *, int *left, int *right, int *top, int *bottom);
79extern void __attribute__((overloadable))
80 rsgMeasureText(rs_allocation, int *left, int *right, int *top, int *bottom);
Alex Sakhartchoukd3e0ad42010-06-24 17:15:34 -070081
Alex Sakhartchoukba4aa5c2010-08-13 14:32:23 -070082extern void __attribute__((overloadable))
83 rsgMeshComputeBoundingBox(rs_mesh mesh, float *minX, float *minY, float *minZ,
84 float *maxX, float *maxY, float *maxZ);
Jason Sams399dc9e2010-10-15 17:57:07 -070085__inline__ static void __attribute__((overloadable, always_inline))
Alex Sakhartchoukba4aa5c2010-08-13 14:32:23 -070086rsgMeshComputeBoundingBox(rs_mesh mesh, float3 *bBoxMin, float3 *bBoxMax) {
87 float x1, y1, z1, x2, y2, z2;
88 rsgMeshComputeBoundingBox(mesh, &x1, &y1, &z1, &x2, &y2, &z2);
89 bBoxMin->x = x1;
90 bBoxMin->y = y1;
91 bBoxMin->z = z1;
92 bBoxMax->x = x2;
93 bBoxMax->y = y2;
94 bBoxMax->z = z2;
95}
96
Jason Sams22fa3712010-05-19 17:22:57 -070097///////////////////////////////////////////////////////
Jason Sams51f36ab2010-03-18 14:36:05 -070098// misc
Jason Sams6445e522010-08-04 17:50:20 -070099
100// Depricated
Jason Sams73495472010-07-29 17:31:14 -0700101extern void __attribute__((overloadable))
102 color(float, float, float, float);
Jason Sams51f36ab2010-03-18 14:36:05 -0700103
Jason Sams1b937f52010-06-09 14:26:16 -0700104#endif
Jason Sams51f36ab2010-03-18 14:36:05 -0700105