diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-03-08 19:54:14 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-03-10 04:18:25 +0300 |
commit | 7c31edb385fce1ce3425c88994a333f4e6f6d5bc (patch) | |
tree | 9c5d6404c4c888a66fbb56ac6753c67335b7a187 /source/blender/draw/intern/DRW_render.h | |
parent | 4402633e33c9687ad24467f5dc7891ad2b2c1f26 (diff) |
DRW: Culling: Expose & Add culling functions to engines.
This way engines can do preemptive culling by themselves.
Diffstat (limited to 'source/blender/draw/intern/DRW_render.h')
-rw-r--r-- | source/blender/draw/intern/DRW_render.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h index 4815c117a8c..9f0c06a2886 100644 --- a/source/blender/draw/intern/DRW_render.h +++ b/source/blender/draw/intern/DRW_render.h @@ -77,6 +77,11 @@ typedef struct DRWInterface DRWInterface; typedef struct DRWPass DRWPass; typedef struct DRWShadingGroup DRWShadingGroup; +/* TODO Put it somewhere else? */ +typedef struct BoundSphere { + float center[3], radius; +} BoundSphere; + /* declare members as empty (unused) */ typedef char DRWViewportEmptyList; @@ -478,6 +483,10 @@ void DRW_state_invert_facing(void); void DRW_state_clip_planes_add(float plane_eq[4]); void DRW_state_clip_planes_reset(void); +/* Culling, return true if object is inside view frustum. */ +bool DRW_culling_sphere_test(BoundSphere *bsphere); +bool DRW_culling_box_test(BoundBox *bbox); + /* Selection */ void DRW_select_load_id(unsigned int id); |