X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2F3dengfx%2Fsrc%2F3dengfx%2F3denginefx.cpp;h=804eb5647717e30a57cfb1d7eafed17cc780c434;hb=2b4c0d15331a49f96411abe7dfe3f4c6a8e4b170;hp=97a7dcdcdedae886578fa42049aaafe79403d9ed;hpb=3f8f761e9f2030af5128ff45aec9e44fefe3f82b;p=summerhack diff --git a/src/3dengfx/src/3dengfx/3denginefx.cpp b/src/3dengfx/src/3dengfx/3denginefx.cpp index 97a7dcd..804eb56 100644 --- a/src/3dengfx/src/3dengfx/3denginefx.cpp +++ b/src/3dengfx/src/3dengfx/3denginefx.cpp @@ -1226,14 +1226,12 @@ void set_viewport_norm(float x, float y, float xsize, float ysize) Matrix4x4 create_projection_matrix(scalar_t vfov, scalar_t aspect, scalar_t near_clip, scalar_t far_clip) { #ifdef COORD_LHS - scalar_t hfov = vfov * aspect; - scalar_t w = 1.0f / (scalar_t)tan(hfov * 0.5f); - scalar_t h = 1.0f / (scalar_t)tan(vfov * 0.5f); + scalar_t f = 1.0f / (scalar_t)tan(vfov * 0.5f); scalar_t q = far_clip / (far_clip - near_clip); - + Matrix4x4 mat; - mat[0][0] = w; - mat[1][1] = h; + mat[0][0] = f / aspect; + mat[1][1] = f; mat[2][2] = q; mat[3][2] = 1.0f; mat[2][3] = -q * near_clip;