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