Files
DoomRTX/neo/engine/opengl/gl_radiant_moc.h
T
2026-05-21 15:37:31 -07:00

46 lines
2.4 KiB
C

/*
===========================================================================
Radiant masked occlusion culling bridge
===========================================================================
*/
#pragma once
struct qglRadiantMOCClipVertex_t {
float x;
float y;
float w;
};
struct qglRadiantMOCStats_t {
int occluderTriangles;
int testedRects;
int occludedRects;
};
typedef void* qglMOCContext_t;
qglMOCContext_t QGL_MOC_Create();
void QGL_MOC_Destroy(qglMOCContext_t context);
bool QGL_MOC_BeginFrame(qglMOCContext_t context, int width, int height, float nearClip);
void QGL_MOC_EndFrame(qglMOCContext_t context);
bool QGL_MOC_IsActive(qglMOCContext_t context);
void QGL_MOC_RenderTriangles(qglMOCContext_t context, const qglRadiantMOCClipVertex_t* verts, const unsigned int* indices, int numTriangles);
bool QGL_MOC_TestTriangles(qglMOCContext_t context, const qglRadiantMOCClipVertex_t* verts, const unsigned int* indices, int numTriangles);
void QGL_MOC_RenderIndexedTriangles(qglMOCContext_t context, const float* verts, const unsigned int* indices, int numTriangles, const float* modelToClipMatrix, int vertexStride, int yOffset, int zOffset);
bool QGL_MOC_TestIndexedTriangles(qglMOCContext_t context, const float* verts, const unsigned int* indices, int numTriangles, const float* modelToClipMatrix, int vertexStride, int yOffset, int zOffset);
bool QGL_MOC_TestRect(qglMOCContext_t context, float xmin, float ymin, float xmax, float ymax, float wmin);
qglRadiantMOCStats_t QGL_MOC_GetStats(qglMOCContext_t context);
bool QGL_RadiantMOC_BeginFrame(int width, int height, float nearClip);
void QGL_RadiantMOC_EndFrame();
bool QGL_RadiantMOC_IsActive();
void QGL_RadiantMOC_RenderTriangles(const qglRadiantMOCClipVertex_t* verts, const unsigned int* indices, int numTriangles);
bool QGL_RadiantMOC_TestTriangles(const qglRadiantMOCClipVertex_t* verts, const unsigned int* indices, int numTriangles);
void QGL_RadiantMOC_RenderIndexedTriangles(const float* verts, const unsigned int* indices, int numTriangles, const float* modelToClipMatrix, int vertexStride, int yOffset, int zOffset);
bool QGL_RadiantMOC_TestIndexedTriangles(const float* verts, const unsigned int* indices, int numTriangles, const float* modelToClipMatrix, int vertexStride, int yOffset, int zOffset);
bool QGL_RadiantMOC_TestRect(float xmin, float ymin, float xmax, float ymax, float wmin);
qglRadiantMOCStats_t QGL_RadiantMOC_GetStats();