mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-17 19:23:51 +02:00
46 lines
2.4 KiB
C
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();
|