#include "rs_core.rsh"
#include "rs_graphics.rsh"
#include "rs_structs.h"
/**
* Program Store
*/
extern rs_depth_func __attribute__((overloadable))
rsgProgramStoreGetDepthFunc(rs_program_store ps) {
ProgramStore_t *prog = (ProgramStore_t *)ps.p;
if (prog == NULL) {
return RS_DEPTH_FUNC_INVALID;
}
return prog->mHal.state.depthFunc;
}
extern bool __attribute__((overloadable))
rsgProgramStoreIsDepthMaskEnabled(rs_program_store ps) {
ProgramStore_t *prog = (ProgramStore_t *)ps.p;
if (prog == NULL) {
return false;
}
return prog->mHal.state.depthWriteEnable;
}
extern bool __attribute__((overloadable))
rsgProgramStoreIsColorMaskRedEnabled(rs_program_store ps) {
ProgramStore_t *prog = (ProgramStore_t *)ps.p;
if (prog == NULL) {
return false;
}
return prog->mHal.state.colorRWriteEnable;
}
extern bool __attribute__((overloadable))
rsgProgramStoreIsColorMaskGreenEnabled(rs_program_store ps) {
ProgramStore_t *prog = (ProgramStore_t *)ps.p;
if (prog == NULL) {
return false;
}
return prog->mHal.state.colorGWriteEnable;
}
extern bool __attribute__((overloadable))
rsgProgramStoreIsColorMaskBlueEnabled(rs_program_store ps) {
ProgramStore_t *prog = (ProgramStore_t *)ps.p;
if (prog == NULL) {
return false;
}
return prog->mHal.state.colorBWriteEnable;
}
extern bool __attribute__((overloadable))
rsgProgramStoreIsColorMaskAlphaEnabled(rs_program_store ps) {
ProgramStore_t *prog = (ProgramStore_t *)ps.p;
if (prog == NULL) {
return false;
}
return prog->mHal.state.colorAWriteEnable;
}
extern rs_blend_src_func __attribute__((overloadable))
rsgProgramStoreGetBlendSrcFunc(rs_program_store ps) {
ProgramStore_t *prog = (ProgramStore_t *)ps.p;
if (prog == NULL) {
return RS_BLEND_SRC_INVALID;
}
return prog->mHal.state.blendSrc;
}
extern rs_blend_dst_func __attribute__((overloadable))
rsgProgramStoreGetBlendDstFunc(rs_program_store ps) {
ProgramStore_t *prog = (ProgramStore_t *)ps.p;
if (prog == NULL) {
return RS_BLEND_DST_INVALID;
}
return prog->mHal.state.blendDst;
}
extern bool __attribute__((overloadable))
rsgProgramStoreIsDitherEnabled(rs_program_store ps) {
ProgramStore_t *prog = (ProgramStore_t *)ps.p;
if (prog == NULL) {
return false;
}
return prog->mHal.state.ditherEnable;
}
/**
* Program Raster
*/
extern bool __attribute__((overloadable))
rsgProgramRasterIsPointSpriteEnabled(rs_program_raster pr) {
ProgramRaster_t *prog = (ProgramRaster_t *)pr.p;
if (prog == NULL) {
return false;
}
return prog->mHal.state.pointSprite;
}
extern rs_cull_mode __attribute__((overloadable))
rsgProgramRasterGetCullMode(rs_program_raster pr) {
ProgramRaster_t *prog = (ProgramRaster_t *)pr.p;
if (prog == NULL) {
return RS_CULL_INVALID;
}
return prog->mHal.state.cull;
}