1#ifndef __LP64__
2
3#include "rs_core.rsh"
4#include "rs_graphics.rsh"
5#include "rs_structs.h"
6
7/**
8* Program Store
9*/
10extern rs_depth_func __attribute__((overloadable))
11        rsgProgramStoreGetDepthFunc(rs_program_store ps) {
12    ProgramStore_t *prog = (ProgramStore_t *)ps.p;
13    if (prog == NULL) {
14        return RS_DEPTH_FUNC_INVALID;
15    }
16    return prog->mHal.state.depthFunc;
17}
18
19extern bool __attribute__((overloadable))
20        rsgProgramStoreIsDepthMaskEnabled(rs_program_store ps) {
21    ProgramStore_t *prog = (ProgramStore_t *)ps.p;
22    if (prog == NULL) {
23        return false;
24    }
25    return prog->mHal.state.depthWriteEnable;
26}
27
28extern bool __attribute__((overloadable))
29        rsgProgramStoreIsColorMaskRedEnabled(rs_program_store ps) {
30    ProgramStore_t *prog = (ProgramStore_t *)ps.p;
31    if (prog == NULL) {
32        return false;
33    }
34    return prog->mHal.state.colorRWriteEnable;
35}
36
37extern bool __attribute__((overloadable))
38        rsgProgramStoreIsColorMaskGreenEnabled(rs_program_store ps) {
39    ProgramStore_t *prog = (ProgramStore_t *)ps.p;
40    if (prog == NULL) {
41        return false;
42    }
43    return prog->mHal.state.colorGWriteEnable;
44}
45
46extern bool __attribute__((overloadable))
47        rsgProgramStoreIsColorMaskBlueEnabled(rs_program_store ps) {
48    ProgramStore_t *prog = (ProgramStore_t *)ps.p;
49    if (prog == NULL) {
50        return false;
51    }
52    return prog->mHal.state.colorBWriteEnable;
53}
54
55extern bool __attribute__((overloadable))
56        rsgProgramStoreIsColorMaskAlphaEnabled(rs_program_store ps) {
57    ProgramStore_t *prog = (ProgramStore_t *)ps.p;
58    if (prog == NULL) {
59        return false;
60    }
61    return prog->mHal.state.colorAWriteEnable;
62}
63
64extern rs_blend_src_func __attribute__((overloadable))
65        rsgProgramStoreGetBlendSrcFunc(rs_program_store ps) {
66    ProgramStore_t *prog = (ProgramStore_t *)ps.p;
67    if (prog == NULL) {
68        return RS_BLEND_SRC_INVALID;
69    }
70    return prog->mHal.state.blendSrc;
71}
72
73extern rs_blend_dst_func __attribute__((overloadable))
74        rsgProgramStoreGetBlendDstFunc(rs_program_store ps) {
75    ProgramStore_t *prog = (ProgramStore_t *)ps.p;
76    if (prog == NULL) {
77        return RS_BLEND_DST_INVALID;
78    }
79    return prog->mHal.state.blendDst;
80}
81
82extern bool __attribute__((overloadable))
83        rsgProgramStoreIsDitherEnabled(rs_program_store ps) {
84    ProgramStore_t *prog = (ProgramStore_t *)ps.p;
85    if (prog == NULL) {
86        return false;
87    }
88    return prog->mHal.state.ditherEnable;
89}
90
91/**
92* Program Raster
93*/
94extern bool __attribute__((overloadable))
95        rsgProgramRasterIsPointSpriteEnabled(rs_program_raster pr) {
96    ProgramRaster_t *prog = (ProgramRaster_t *)pr.p;
97    if (prog == NULL) {
98        return false;
99    }
100    return prog->mHal.state.pointSprite;
101}
102
103extern rs_cull_mode __attribute__((overloadable))
104        rsgProgramRasterGetCullMode(rs_program_raster pr) {
105    ProgramRaster_t *prog = (ProgramRaster_t *)pr.p;
106    if (prog == NULL) {
107        return RS_CULL_INVALID;
108    }
109    return prog->mHal.state.cull;
110}
111
112#endif
113