| Jason Sams | 1b937f5 | 2010-06-09 14:26:16 -0700 | [diff] [blame] | 1 | #ifndef __RS_GRAPHICS_RSH__ |
| 2 | #define __RS_GRAPHICS_RSH__ |
| 3 | |
| Jason Sams | 7349547 | 2010-07-29 17:31:14 -0700 | [diff] [blame] | 4 | // Bind a ProgramFragment to the RS context. |
| 5 | extern void __attribute__((overloadable)) |
| 6 | rsgBindProgramFragment(rs_program_fragment); |
| 7 | extern void __attribute__((overloadable)) |
| 8 | rsgBindProgramStore(rs_program_store); |
| 9 | extern void __attribute__((overloadable)) |
| 10 | rsgBindProgramVertex(rs_program_vertex); |
| 11 | extern void __attribute__((overloadable)) |
| 12 | rsgBindProgramRaster(rs_program_raster); |
| Jason Sams | f2bcce7 | 2010-03-26 15:33:42 -0700 | [diff] [blame] | 13 | |
| Jason Sams | 7349547 | 2010-07-29 17:31:14 -0700 | [diff] [blame] | 14 | extern void __attribute__((overloadable)) |
| 15 | rsgBindSampler(rs_program_fragment, uint slot, rs_sampler); |
| 16 | extern void __attribute__((overloadable)) |
| 17 | rsgBindTexture(rs_program_fragment, uint slot, rs_allocation); |
| Jason Sams | 51f36ab | 2010-03-18 14:36:05 -0700 | [diff] [blame] | 18 | |
| Jason Sams | 7349547 | 2010-07-29 17:31:14 -0700 | [diff] [blame] | 19 | extern void __attribute__((overloadable)) |
| 20 | rsgProgramVertexLoadProjectionMatrix(const rs_matrix4x4 *); |
| 21 | extern void __attribute__((overloadable)) |
| 22 | rsgProgramVertexLoadModelMatrix(const rs_matrix4x4 *); |
| 23 | extern void __attribute__((overloadable)) |
| 24 | rsgProgramVertexLoadTextureMatrix(const rs_matrix4x4 *); |
| Jason Sams | 51f36ab | 2010-03-18 14:36:05 -0700 | [diff] [blame] | 25 | |
| Jason Sams | 6445e52 | 2010-08-04 17:50:20 -0700 | [diff] [blame] | 26 | extern void __attribute__((overloadable)) |
| Alex Sakhartchouk | 95333f9 | 2010-08-16 17:40:10 -0700 | [diff] [blame] | 27 | rsgProgramVertexGetProjectionMatrix(rs_matrix4x4 *); |
| 28 | |
| 29 | extern void __attribute__((overloadable)) |
| Jason Sams | 6445e52 | 2010-08-04 17:50:20 -0700 | [diff] [blame] | 30 | rsgProgramFragmentConstantColor(rs_program_fragment, float, float, float, float); |
| 31 | |
| Jason Sams | 7349547 | 2010-07-29 17:31:14 -0700 | [diff] [blame] | 32 | extern uint __attribute__((overloadable)) |
| 33 | rsgGetWidth(void); |
| 34 | extern uint __attribute__((overloadable)) |
| 35 | rsgGetHeight(void); |
| Jason Sams | 51f36ab | 2010-03-18 14:36:05 -0700 | [diff] [blame] | 36 | |
| Jason Sams | 7349547 | 2010-07-29 17:31:14 -0700 | [diff] [blame] | 37 | extern void __attribute__((overloadable)) |
| Jason Sams | b7e83bd | 2010-12-15 01:41:00 -0800 | [diff] [blame] | 38 | rsgAllocationSyncAll(rs_allocation); |
| 39 | |
| 40 | extern void __attribute__((overloadable)) |
| Jason Sams | 7349547 | 2010-07-29 17:31:14 -0700 | [diff] [blame] | 41 | rsgDrawRect(float x1, float y1, float x2, float y2, float z); |
| 42 | extern 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); |
| 47 | extern 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); |
| 52 | extern void __attribute__((overloadable)) |
| 53 | rsgDrawSpriteScreenspace(float x, float y, float z, float w, float h); |
| Jason Sams | 51f36ab | 2010-03-18 14:36:05 -0700 | [diff] [blame] | 54 | |
| Jason Sams | 7349547 | 2010-07-29 17:31:14 -0700 | [diff] [blame] | 55 | extern void __attribute__((overloadable)) |
| 56 | rsgDrawMesh(rs_mesh ism); |
| 57 | extern void __attribute__((overloadable)) |
| 58 | rsgDrawMesh(rs_mesh ism, uint primitiveIndex); |
| 59 | extern void __attribute__((overloadable)) |
| 60 | rsgDrawMesh(rs_mesh ism, uint primitiveIndex, uint start, uint len); |
| Alex Sakhartchouk | 4e9a7a8 | 2010-07-01 16:14:06 -0700 | [diff] [blame] | 61 | |
| Jason Sams | 7349547 | 2010-07-29 17:31:14 -0700 | [diff] [blame] | 62 | extern void __attribute__((overloadable)) |
| 63 | rsgClearColor(float, float, float, float); |
| 64 | extern void __attribute__((overloadable)) |
| 65 | rsgClearDepth(float); |
| Jason Sams | 51f36ab | 2010-03-18 14:36:05 -0700 | [diff] [blame] | 66 | |
| Jason Sams | 7349547 | 2010-07-29 17:31:14 -0700 | [diff] [blame] | 67 | extern void __attribute__((overloadable)) |
| 68 | rsgDrawText(const char *, int x, int y); |
| 69 | extern void __attribute__((overloadable)) |
| 70 | rsgDrawText(rs_allocation, int x, int y); |
| 71 | extern void __attribute__((overloadable)) |
| 72 | rsgBindFont(rs_font); |
| Alex Sakhartchouk | 9fc9f03 | 2010-08-04 14:45:48 -0700 | [diff] [blame] | 73 | extern void __attribute__((overloadable)) |
| 74 | rsgFontColor(float, float, float, float); |
| Alex Sakhartchouk | 09c6735 | 2010-10-05 11:33:27 -0700 | [diff] [blame] | 75 | // Returns the bounding box of the text relative to (0, 0) |
| 76 | // Any of left, right, top, bottom could be NULL |
| 77 | extern void __attribute__((overloadable)) |
| 78 | rsgMeasureText(const char *, int *left, int *right, int *top, int *bottom); |
| 79 | extern void __attribute__((overloadable)) |
| 80 | rsgMeasureText(rs_allocation, int *left, int *right, int *top, int *bottom); |
| Alex Sakhartchouk | d3e0ad4 | 2010-06-24 17:15:34 -0700 | [diff] [blame] | 81 | |
| Alex Sakhartchouk | ba4aa5c | 2010-08-13 14:32:23 -0700 | [diff] [blame] | 82 | extern void __attribute__((overloadable)) |
| 83 | rsgMeshComputeBoundingBox(rs_mesh mesh, float *minX, float *minY, float *minZ, |
| 84 | float *maxX, float *maxY, float *maxZ); |
| Jason Sams | 399dc9e | 2010-10-15 17:57:07 -0700 | [diff] [blame] | 85 | __inline__ static void __attribute__((overloadable, always_inline)) |
| Alex Sakhartchouk | ba4aa5c | 2010-08-13 14:32:23 -0700 | [diff] [blame] | 86 | rsgMeshComputeBoundingBox(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 Sams | 22fa371 | 2010-05-19 17:22:57 -0700 | [diff] [blame] | 97 | /////////////////////////////////////////////////////// |
| Jason Sams | 51f36ab | 2010-03-18 14:36:05 -0700 | [diff] [blame] | 98 | // misc |
| Jason Sams | 6445e52 | 2010-08-04 17:50:20 -0700 | [diff] [blame] | 99 | |
| 100 | // Depricated |
| Jason Sams | 7349547 | 2010-07-29 17:31:14 -0700 | [diff] [blame] | 101 | extern void __attribute__((overloadable)) |
| 102 | color(float, float, float, float); |
| Jason Sams | 51f36ab | 2010-03-18 14:36:05 -0700 | [diff] [blame] | 103 | |
| Jason Sams | 1b937f5 | 2010-06-09 14:26:16 -0700 | [diff] [blame] | 104 | #endif |
| Jason Sams | 51f36ab | 2010-03-18 14:36:05 -0700 | [diff] [blame] | 105 | |