From e83d66a7a654bd28b811e91a9fbc1b700a29b882 Mon Sep 17 00:00:00 2001 From: Cheesse Date: Thu, 3 Dec 2020 17:23:01 -0500 Subject: [PATCH] Change frustum culling calculation for D3D --- src/Vectors.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Vectors.c b/src/Vectors.c index a5355605c..9961412e6 100644 --- a/src/Vectors.c +++ b/src/Vectors.c @@ -2,6 +2,7 @@ #include "ExtMath.h" #include "Funcs.h" #include "Constants.h" +#include "Core.h" void Vec3_Lerp(Vec3* result, const Vec3* a, const Vec3* b, float blend) { result->X = blend * (b->X - a->X) + a->X; @@ -271,10 +272,19 @@ void FrustumCulling_CalcFrustumEquations(struct Matrix* projection, struct Matri frustum33 = clip[15] - clip[13]; FrustumCulling_Normalise(&frustum30, &frustum31, &frustum32, &frustum33); - /* Extract the FAR plane */ + /* Extract the FAR plane (Different for each graphics backend) */ +#if defined(CC_BUILD_GL) frustum40 = clip[3] - clip[2]; frustum41 = clip[7] - clip[6]; frustum42 = clip[11] - clip[10]; frustum43 = clip[15] - clip[14]; +#elif defined(CC_BUILD_D3D9) + frustum40 = clip[2]; + frustum41 = clip[6]; + frustum42 = clip[10]; + frustum43 = clip[14]; +#else +#error "Vectors.c: No graphics backend chosen." +#endif FrustumCulling_Normalise(&frustum40, &frustum41, &frustum42, &frustum43); }