style: rename nearVal, farVal to nearZ and farZ

This commit is contained in:
Recep Aslantas
2021-05-08 22:42:44 +03:00
parent 7760c709da
commit a242d83805
5 changed files with 159 additions and 204 deletions

View File

@@ -15,23 +15,17 @@ extern "C" {
CGLM_EXPORT CGLM_EXPORT
void void
glmc_frustum(float left, glmc_frustum(float left, float right,
float right, float bottom, float top,
float bottom, float nearZ, float farZ,
float top, mat4 dest);
float nearVal,
float farVal,
mat4 dest);
CGLM_EXPORT CGLM_EXPORT
void void
glmc_ortho(float left, glmc_ortho(float left, float right,
float right, float bottom, float top,
float bottom, float nearZ, float farZ,
float top, mat4 dest);
float nearVal,
float farVal,
mat4 dest);
CGLM_EXPORT CGLM_EXPORT
void void
@@ -55,11 +49,7 @@ glmc_ortho_default_s(float aspect, float size, mat4 dest);
CGLM_EXPORT CGLM_EXPORT
void void
glmc_perspective(float fovy, glmc_perspective(float fovy, float aspect, float nearZ, float farZ, mat4 dest);
float aspect,
float nearVal,
float farVal,
mat4 dest);
CGLM_EXPORT CGLM_EXPORT
void void
@@ -88,8 +78,8 @@ glmc_look_anyup(vec3 eye, vec3 dir, mat4 dest);
CGLM_EXPORT CGLM_EXPORT
void void
glmc_persp_decomp(mat4 proj, glmc_persp_decomp(mat4 proj,
float * __restrict nearVal, float * __restrict nearZ,
float * __restrict farVal, float * __restrict farZ,
float * __restrict top, float * __restrict top,
float * __restrict bottom, float * __restrict bottom,
float * __restrict left, float * __restrict left,
@@ -114,16 +104,16 @@ glmc_persp_decomp_y(mat4 proj,
CGLM_EXPORT CGLM_EXPORT
void void
glmc_persp_decomp_z(mat4 proj, glmc_persp_decomp_z(mat4 proj,
float * __restrict nearVal, float * __restrict nearZ,
float * __restrict farVal); float * __restrict farZ);
CGLM_EXPORT CGLM_EXPORT
void void
glmc_persp_decomp_far(mat4 proj, float * __restrict farVal); glmc_persp_decomp_far(mat4 proj, float * __restrict farZ);
CGLM_EXPORT CGLM_EXPORT
void void
glmc_persp_decomp_near(mat4 proj, float * __restrict nearVal); glmc_persp_decomp_near(mat4 proj, float * __restrict nearZ);
CGLM_EXPORT CGLM_EXPORT
float float

View File

@@ -7,13 +7,13 @@
/* /*
Functions: Functions:
CGLM_INLINE void glm_frustum(float left, float right, CGLM_INLINE void glm_frustum(float left, float right,
float bottom, float top, float bottom, float top,
float nearVal, float farVal, float nearZ, float farZ,
mat4 dest) mat4 dest)
CGLM_INLINE void glm_ortho(float left, float right, CGLM_INLINE void glm_ortho(float left, float right,
float bottom, float top, float bottom, float top,
float nearVal, float farVal, float nearZ, float farZ,
mat4 dest) mat4 dest)
CGLM_INLINE void glm_ortho_aabb(vec3 box[2], mat4 dest) CGLM_INLINE void glm_ortho_aabb(vec3 box[2], mat4 dest)
CGLM_INLINE void glm_ortho_aabb_p(vec3 box[2], float padding, mat4 dest) CGLM_INLINE void glm_ortho_aabb_p(vec3 box[2], float padding, mat4 dest)
@@ -22,8 +22,8 @@
CGLM_INLINE void glm_ortho_default_s(float aspect, float size, mat4 dest) CGLM_INLINE void glm_ortho_default_s(float aspect, float size, mat4 dest)
CGLM_INLINE void glm_perspective(float fovy, CGLM_INLINE void glm_perspective(float fovy,
float aspect, float aspect,
float nearVal, float nearZ,
float farVal, float farZ,
mat4 dest) mat4 dest)
CGLM_INLINE void glm_perspective_default(float aspect, mat4 dest) CGLM_INLINE void glm_perspective_default(float aspect, mat4 dest)
CGLM_INLINE void glm_perspective_resize(float aspect, mat4 proj) CGLM_INLINE void glm_perspective_resize(float aspect, mat4 proj)
@@ -31,15 +31,15 @@
CGLM_INLINE void glm_look(vec3 eye, vec3 dir, vec3 up, mat4 dest) CGLM_INLINE void glm_look(vec3 eye, vec3 dir, vec3 up, mat4 dest)
CGLM_INLINE void glm_look_anyup(vec3 eye, vec3 dir, mat4 dest) CGLM_INLINE void glm_look_anyup(vec3 eye, vec3 dir, mat4 dest)
CGLM_INLINE void glm_persp_decomp(mat4 proj, CGLM_INLINE void glm_persp_decomp(mat4 proj,
float *nearVal, float *farVal, float *nearZ, float *farZ,
float *top, float *bottom, float *top, float *bottom,
float *left, float *right) float *left, float *right)
CGLM_INLINE void glm_persp_decompv(mat4 proj, float dest[6]) CGLM_INLINE void glm_persp_decompv(mat4 proj, float dest[6])
CGLM_INLINE void glm_persp_decomp_x(mat4 proj, float *left, float *right) CGLM_INLINE void glm_persp_decomp_x(mat4 proj, float *left, float *right)
CGLM_INLINE void glm_persp_decomp_y(mat4 proj, float *top, float *bottom) CGLM_INLINE void glm_persp_decomp_y(mat4 proj, float *top, float *bottom)
CGLM_INLINE void glm_persp_decomp_z(mat4 proj, float *nearv, float *farv) CGLM_INLINE void glm_persp_decomp_z(mat4 proj, float *nearv, float *farv)
CGLM_INLINE void glm_persp_decomp_far(mat4 proj, float *farVal) CGLM_INLINE void glm_persp_decomp_far(mat4 proj, float *farZ)
CGLM_INLINE void glm_persp_decomp_near(mat4 proj, float *nearVal) CGLM_INLINE void glm_persp_decomp_near(mat4 proj, float *nearZ)
CGLM_INLINE float glm_persp_fovy(mat4 proj) CGLM_INLINE float glm_persp_fovy(mat4 proj)
CGLM_INLINE float glm_persp_aspect(mat4 proj) CGLM_INLINE float glm_persp_aspect(mat4 proj)
CGLM_INLINE void glm_persp_sizes(mat4 proj, float fovy, vec4 dest) CGLM_INLINE void glm_persp_sizes(mat4 proj, float fovy, vec4 dest)
@@ -58,32 +58,32 @@
* @param[in] right viewport.right * @param[in] right viewport.right
* @param[in] bottom viewport.bottom * @param[in] bottom viewport.bottom
* @param[in] top viewport.top * @param[in] top viewport.top
* @param[in] nearVal near clipping plane * @param[in] nearZ near clipping plane
* @param[in] farVal far clipping plane * @param[in] farZ far clipping plane
* @param[out] dest result matrix * @param[out] dest result matrix
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_frustum(float left, float right, glm_frustum(float left, float right,
float bottom, float top, float bottom, float top,
float nearVal, float farVal, float nearZ, float farZ,
mat4 dest) { mat4 dest) {
float rl, tb, fn, nv; float rl, tb, fn, nv;
glm_mat4_zero(dest); glm_mat4_zero(dest);
rl = 1.0f / (right - left); rl = 1.0f / (right - left);
tb = 1.0f / (top - bottom); tb = 1.0f / (top - bottom);
fn =-1.0f / (farVal - nearVal); fn =-1.0f / (farZ - nearZ);
nv = 2.0f * nearVal; nv = 2.0f * nearZ;
dest[0][0] = nv * rl; dest[0][0] = nv * rl;
dest[1][1] = nv * tb; dest[1][1] = nv * tb;
dest[2][0] = (right + left) * rl; dest[2][0] = (right + left) * rl;
dest[2][1] = (top + bottom) * tb; dest[2][1] = (top + bottom) * tb;
dest[2][2] = (farVal + nearVal) * fn; dest[2][2] = (farZ + nearZ) * fn;
dest[2][3] =-1.0f; dest[2][3] =-1.0f;
dest[3][2] = farVal * nv * fn; dest[3][2] = farZ * nv * fn;
} }
/*! /*!
@@ -93,30 +93,30 @@ glm_frustum(float left, float right,
* @param[in] right viewport.right * @param[in] right viewport.right
* @param[in] bottom viewport.bottom * @param[in] bottom viewport.bottom
* @param[in] top viewport.top * @param[in] top viewport.top
* @param[in] nearVal near clipping plane * @param[in] nearZ near clipping plane
* @param[in] farVal far clipping plane * @param[in] farZ far clipping plane
* @param[out] dest result matrix * @param[out] dest result matrix
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_ortho(float left, float right, glm_ortho(float left, float right,
float bottom, float top, float bottom, float top,
float nearVal, float farVal, float nearZ, float farZ,
mat4 dest) { mat4 dest) {
float rl, tb, fn; float rl, tb, fn;
glm_mat4_zero(dest); glm_mat4_zero(dest);
rl = 1.0f / (right - left); rl = 1.0f / (right - left);
tb = 1.0f / (top - bottom); tb = 1.0f / (top - bottom);
fn =-1.0f / (farVal - nearVal); fn =-1.0f / (farZ - nearZ);
dest[0][0] = 2.0f * rl; dest[0][0] = 2.0f * rl;
dest[1][1] = 2.0f * tb; dest[1][1] = 2.0f * tb;
dest[2][2] = 2.0f * fn; dest[2][2] = 2.0f * fn;
dest[3][0] =-(right + left) * rl; dest[3][0] =-(right + left) * rl;
dest[3][1] =-(top + bottom) * tb; dest[3][1] =-(top + bottom) * tb;
dest[3][2] = (farVal + nearVal) * fn; dest[3][2] = (farZ + nearZ) * fn;
dest[3][3] = 1.0f; dest[3][3] = 1.0f;
} }
@@ -227,29 +227,25 @@ glm_ortho_default_s(float aspect, float size, mat4 dest) {
* *
* @param[in] fovy field of view angle * @param[in] fovy field of view angle
* @param[in] aspect aspect ratio ( width / height ) * @param[in] aspect aspect ratio ( width / height )
* @param[in] nearVal near clipping plane * @param[in] nearZ near clipping plane
* @param[in] farVal far clipping planes * @param[in] farZ far clipping planes
* @param[out] dest result matrix * @param[out] dest result matrix
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_perspective(float fovy, glm_perspective(float fovy, float aspect, float nearZ, float farZ, mat4 dest) {
float aspect,
float nearVal,
float farVal,
mat4 dest) {
float f, fn; float f, fn;
glm_mat4_zero(dest); glm_mat4_zero(dest);
f = 1.0f / tanf(fovy * 0.5f); f = 1.0f / tanf(fovy * 0.5f);
fn = 1.0f / (nearVal - farVal); fn = 1.0f / (nearZ - farZ);
dest[0][0] = f / aspect; dest[0][0] = f / aspect;
dest[1][1] = f; dest[1][1] = f;
dest[2][2] = (nearVal + farVal) * fn; dest[2][2] = (nearZ + farZ) * fn;
dest[2][3] =-1.0f; dest[2][3] =-1.0f;
dest[3][2] = 2.0f * nearVal * farVal * fn; dest[3][2] = 2.0f * nearZ * farZ * fn;
} }
/*! /*!
@@ -263,17 +259,17 @@ glm_perspective(float fovy,
CGLM_INLINE CGLM_INLINE
void void
glm_persp_move_far(mat4 proj, float deltaFar) { glm_persp_move_far(mat4 proj, float deltaFar) {
float fn, farVal, nearVal, p22, p32; float fn, farZ, nearZ, p22, p32;
p22 = proj[2][2]; p22 = proj[2][2];
p32 = proj[3][2]; p32 = proj[3][2];
nearVal = p32 / (p22 - 1.0f); nearZ = p32 / (p22 - 1.0f);
farVal = p32 / (p22 + 1.0f) + deltaFar; farZ = p32 / (p22 + 1.0f) + deltaFar;
fn = 1.0f / (nearVal - farVal); fn = 1.0f / (nearZ - farZ);
proj[2][2] = (nearVal + farVal) * fn; proj[2][2] = (nearZ + farZ) * fn;
proj[3][2] = 2.0f * nearVal * farVal * fn; proj[3][2] = 2.0f * nearZ * farZ * fn;
} }
/*! /*!
@@ -388,8 +384,8 @@ glm_look_anyup(vec3 eye, vec3 dir, mat4 dest) {
* @brief decomposes frustum values of perspective projection. * @brief decomposes frustum values of perspective projection.
* *
* @param[in] proj perspective projection matrix * @param[in] proj perspective projection matrix
* @param[out] nearVal near * @param[out] nearZ near
* @param[out] farVal far * @param[out] farZ far
* @param[out] top top * @param[out] top top
* @param[out] bottom bottom * @param[out] bottom bottom
* @param[out] left left * @param[out] left left
@@ -398,9 +394,9 @@ glm_look_anyup(vec3 eye, vec3 dir, mat4 dest) {
CGLM_INLINE CGLM_INLINE
void void
glm_persp_decomp(mat4 proj, glm_persp_decomp(mat4 proj,
float * __restrict nearVal, float * __restrict farVal, float * __restrict nearZ, float * __restrict farZ,
float * __restrict top, float * __restrict bottom, float * __restrict top, float * __restrict bottom,
float * __restrict left, float * __restrict right) { float * __restrict left, float * __restrict right) {
float m00, m11, m20, m21, m22, m32, n, f; float m00, m11, m20, m21, m22, m32, n, f;
float n_m11, n_m00; float n_m11, n_m00;
@@ -417,8 +413,8 @@ glm_persp_decomp(mat4 proj,
n_m11 = n / m11; n_m11 = n / m11;
n_m00 = n / m00; n_m00 = n / m00;
*nearVal = n; *nearZ = n;
*farVal = f; *farZ = f;
*bottom = n_m11 * (m21 - 1.0f); *bottom = n_m11 * (m21 - 1.0f);
*top = n_m11 * (m21 + 1.0f); *top = n_m11 * (m21 + 1.0f);
*left = n_m00 * (m20 - 1.0f); *left = n_m00 * (m20 - 1.0f);
@@ -452,14 +448,14 @@ void
glm_persp_decomp_x(mat4 proj, glm_persp_decomp_x(mat4 proj,
float * __restrict left, float * __restrict left,
float * __restrict right) { float * __restrict right) {
float nearVal, m20, m00; float nearZ, m20, m00;
m00 = proj[0][0]; m00 = proj[0][0];
m20 = proj[2][0]; m20 = proj[2][0];
nearVal = proj[3][2] / (proj[3][3] - 1.0f); nearZ = proj[3][2] / (proj[3][3] - 1.0f);
*left = nearVal * (m20 - 1.0f) / m00; *left = nearZ * (m20 - 1.0f) / m00;
*right = nearVal * (m20 + 1.0f) / m00; *right = nearZ * (m20 + 1.0f) / m00;
} }
/*! /*!
@@ -475,14 +471,14 @@ void
glm_persp_decomp_y(mat4 proj, glm_persp_decomp_y(mat4 proj,
float * __restrict top, float * __restrict top,
float * __restrict bottom) { float * __restrict bottom) {
float nearVal, m21, m11; float nearZ, m21, m11;
m21 = proj[2][1]; m21 = proj[2][1];
m11 = proj[1][1]; m11 = proj[1][1];
nearVal = proj[3][2] / (proj[3][3] - 1.0f); nearZ = proj[3][2] / (proj[3][3] - 1.0f);
*bottom = nearVal * (m21 - 1) / m11; *bottom = nearZ * (m21 - 1) / m11;
*top = nearVal * (m21 + 1) / m11; *top = nearZ * (m21 + 1) / m11;
} }
/*! /*!
@@ -490,45 +486,43 @@ glm_persp_decomp_y(mat4 proj,
* z stands for z axis (near / far axis) * z stands for z axis (near / far axis)
* *
* @param[in] proj perspective projection matrix * @param[in] proj perspective projection matrix
* @param[out] nearVal near * @param[out] nearZ near
* @param[out] farVal far * @param[out] farZ far
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_persp_decomp_z(mat4 proj, glm_persp_decomp_z(mat4 proj, float * __restrict nearZ, float * __restrict farZ) {
float * __restrict nearVal,
float * __restrict farVal) {
float m32, m22; float m32, m22;
m32 = proj[3][2]; m32 = proj[3][2];
m22 = proj[2][2]; m22 = proj[2][2];
*nearVal = m32 / (m22 - 1.0f); *nearZ = m32 / (m22 - 1.0f);
*farVal = m32 / (m22 + 1.0f); *farZ = m32 / (m22 + 1.0f);
} }
/*! /*!
* @brief decomposes far value of perspective projection. * @brief decomposes far value of perspective projection.
* *
* @param[in] proj perspective projection matrix * @param[in] proj perspective projection matrix
* @param[out] farVal far * @param[out] farZ far
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_persp_decomp_far(mat4 proj, float * __restrict farVal) { glm_persp_decomp_far(mat4 proj, float * __restrict farZ) {
*farVal = proj[3][2] / (proj[2][2] + 1.0f); *farZ = proj[3][2] / (proj[2][2] + 1.0f);
} }
/*! /*!
* @brief decomposes near value of perspective projection. * @brief decomposes near value of perspective projection.
* *
* @param[in] proj perspective projection matrix * @param[in] proj perspective projection matrix
* @param[out] nearVal near * @param[out] nearZ near
*/ */
CGLM_INLINE CGLM_INLINE
void void
glm_persp_decomp_near(mat4 proj, float * __restrict nearVal) { glm_persp_decomp_near(mat4 proj, float * __restrict nearZ) {
*nearVal = proj[3][2] / (proj[2][2] - 1.0f); *nearZ = proj[3][2] / (proj[2][2] - 1.0f);
} }
/*! /*!
@@ -566,15 +560,15 @@ glm_persp_aspect(mat4 proj) {
CGLM_INLINE CGLM_INLINE
void void
glm_persp_sizes(mat4 proj, float fovy, vec4 dest) { glm_persp_sizes(mat4 proj, float fovy, vec4 dest) {
float t, a, nearVal, farVal; float t, a, nearZ, farZ;
t = 2.0f * tanf(fovy * 0.5f); t = 2.0f * tanf(fovy * 0.5f);
a = glm_persp_aspect(proj); a = glm_persp_aspect(proj);
glm_persp_decomp_z(proj, &nearVal, &farVal); glm_persp_decomp_z(proj, &nearZ, &farZ);
dest[1] = t * nearVal; dest[1] = t * nearZ;
dest[3] = t * farVal; dest[3] = t * farZ;
dest[0] = a * dest[1]; dest[0] = a * dest[1];
dest[2] = a * dest[3]; dest[2] = a * dest[3];
} }

View File

@@ -9,10 +9,10 @@
Functions: Functions:
CGLM_INLINE mat4s glms_frustum(float left, float right, CGLM_INLINE mat4s glms_frustum(float left, float right,
float bottom, float top, float bottom, float top,
float nearVal, float farVal) float nearZ, float farZ)
CGLM_INLINE mat4s glms_ortho(float left, float right, CGLM_INLINE mat4s glms_ortho(float left, float right,
float bottom, float top, float bottom, float top,
float nearVal, float farVal) float nearZ, float farZ)
CGLM_INLINE mat4s glms_ortho_aabb(vec3s box[2]); CGLM_INLINE mat4s glms_ortho_aabb(vec3s box[2]);
CGLM_INLINE mat4s glms_ortho_aabb_p(vec3s box[2], float padding); CGLM_INLINE mat4s glms_ortho_aabb_p(vec3s box[2], float padding);
CGLM_INLINE mat4s glms_ortho_aabb_pz(vec3s box[2], float padding); CGLM_INLINE mat4s glms_ortho_aabb_pz(vec3s box[2], float padding);
@@ -20,8 +20,8 @@
CGLM_INLINE mat4s glms_ortho_default_s(float aspect, float size) CGLM_INLINE mat4s glms_ortho_default_s(float aspect, float size)
CGLM_INLINE mat4s glms_perspective(float fovy, CGLM_INLINE mat4s glms_perspective(float fovy,
float aspect, float aspect,
float nearVal, float nearZ,
float farVal) float farZ)
CGLM_INLINE void glms_persp_move_far(mat4s proj, float deltaFar) CGLM_INLINE void glms_persp_move_far(mat4s proj, float deltaFar)
CGLM_INLINE mat4s glms_perspective_default(float aspect) CGLM_INLINE mat4s glms_perspective_default(float aspect)
CGLM_INLINE void glms_perspective_resize(mat4s proj, float aspect) CGLM_INLINE void glms_perspective_resize(mat4s proj, float aspect)
@@ -36,8 +36,8 @@
CGLM_INLINE void glms_persp_decomp_x(mat4s proj, float *left, float *right) CGLM_INLINE void glms_persp_decomp_x(mat4s proj, float *left, float *right)
CGLM_INLINE void glms_persp_decomp_y(mat4s proj, float *top, float *bottom) CGLM_INLINE void glms_persp_decomp_y(mat4s proj, float *top, float *bottom)
CGLM_INLINE void glms_persp_decomp_z(mat4s proj, float *nearv, float *farv) CGLM_INLINE void glms_persp_decomp_z(mat4s proj, float *nearv, float *farv)
CGLM_INLINE void glms_persp_decomp_far(mat4s proj, float *farVal) CGLM_INLINE void glms_persp_decomp_far(mat4s proj, float *farZ)
CGLM_INLINE void glms_persp_decomp_near(mat4s proj, float *nearVal) CGLM_INLINE void glms_persp_decomp_near(mat4s proj, float *nearZ)
CGLM_INLINE float glms_persp_fovy(mat4s proj) CGLM_INLINE float glms_persp_fovy(mat4s proj)
CGLM_INLINE float glms_persp_aspect(mat4s proj) CGLM_INLINE float glms_persp_aspect(mat4s proj)
CGLM_INLINE vec4s glms_persp_sizes(mat4s proj, float fovy) CGLM_INLINE vec4s glms_persp_sizes(mat4s proj, float fovy)
@@ -58,17 +58,17 @@
* @param[in] right viewport.right * @param[in] right viewport.right
* @param[in] bottom viewport.bottom * @param[in] bottom viewport.bottom
* @param[in] top viewport.top * @param[in] top viewport.top
* @param[in] nearVal near clipping plane * @param[in] nearZ near clipping plane
* @param[in] farVal far clipping plane * @param[in] farZ far clipping plane
* @returns result matrix * @returns result matrix
*/ */
CGLM_INLINE CGLM_INLINE
mat4s mat4s
glms_frustum(float left, float right, glms_frustum(float left, float right,
float bottom, float top, float bottom, float top,
float nearVal, float farVal) { float nearZ, float farZ) {
mat4s dest; mat4s dest;
glm_frustum(left, right, bottom, top, nearVal, farVal, dest.raw); glm_frustum(left, right, bottom, top, nearZ, farZ, dest.raw);
return dest; return dest;
} }
@@ -79,17 +79,17 @@ glms_frustum(float left, float right,
* @param[in] right viewport.right * @param[in] right viewport.right
* @param[in] bottom viewport.bottom * @param[in] bottom viewport.bottom
* @param[in] top viewport.top * @param[in] top viewport.top
* @param[in] nearVal near clipping plane * @param[in] nearZ near clipping plane
* @param[in] farVal far clipping plane * @param[in] farZ far clipping plane
* @returns result matrix * @returns result matrix
*/ */
CGLM_INLINE CGLM_INLINE
mat4s mat4s
glms_ortho(float left, float right, glms_ortho(float left, float right,
float bottom, float top, float bottom, float top,
float nearVal, float farVal) { float nearZ, float farZ) {
mat4s dest; mat4s dest;
glm_ortho(left, right, bottom, top, nearVal, farVal, dest.raw); glm_ortho(left, right, bottom, top, nearZ, farZ, dest.raw);
return dest; return dest;
} }
@@ -189,15 +189,15 @@ glms_ortho_default_s(float aspect, float size) {
* *
* @param[in] fovy field of view angle * @param[in] fovy field of view angle
* @param[in] aspect aspect ratio ( width / height ) * @param[in] aspect aspect ratio ( width / height )
* @param[in] nearVal near clipping plane * @param[in] nearZ near clipping plane
* @param[in] farVal far clipping planes * @param[in] farZ far clipping planes
* @returns result matrix * @returns result matrix
*/ */
CGLM_INLINE CGLM_INLINE
mat4s mat4s
glms_perspective(float fovy, float aspect, float nearVal, float farVal) { glms_perspective(float fovy, float aspect, float nearZ, float farZ) {
mat4s dest; mat4s dest;
glm_perspective(fovy, aspect, nearVal, farVal, dest.raw); glm_perspective(fovy, aspect, nearZ, farZ, dest.raw);
return dest; return dest;
} }
@@ -307,8 +307,8 @@ glms_look_anyup(vec3s eye, vec3s dir) {
* @brief decomposes frustum values of perspective projection. * @brief decomposes frustum values of perspective projection.
* *
* @param[in] proj perspective projection matrix * @param[in] proj perspective projection matrix
* @param[out] nearVal near * @param[out] nearZ near
* @param[out] farVal far * @param[out] farZ far
* @param[out] top top * @param[out] top top
* @param[out] bottom bottom * @param[out] bottom bottom
* @param[out] left left * @param[out] left left
@@ -317,10 +317,10 @@ glms_look_anyup(vec3s eye, vec3s dir) {
CGLM_INLINE CGLM_INLINE
void void
glms_persp_decomp(mat4s proj, glms_persp_decomp(mat4s proj,
float * __restrict nearVal, float * __restrict farVal, float * __restrict nearZ, float * __restrict farZ,
float * __restrict top, float * __restrict bottom, float * __restrict top, float * __restrict bottom,
float * __restrict left, float * __restrict right) { float * __restrict left, float * __restrict right) {
glm_persp_decomp(proj.raw, nearVal, farVal, top, bottom, left, right); glm_persp_decomp(proj.raw, nearZ, farZ, top, bottom, left, right);
} }
/*! /*!
@@ -373,39 +373,39 @@ glms_persp_decomp_y(mat4s proj,
* z stands for z axis (near / far axis) * z stands for z axis (near / far axis)
* *
* @param[in] proj perspective projection matrix * @param[in] proj perspective projection matrix
* @param[out] nearVal near * @param[out] nearZ near
* @param[out] farVal far * @param[out] farZ far
*/ */
CGLM_INLINE CGLM_INLINE
void void
glms_persp_decomp_z(mat4s proj, glms_persp_decomp_z(mat4s proj,
float * __restrict nearVal, float * __restrict nearZ,
float * __restrict farVal) { float * __restrict farZ) {
glm_persp_decomp_z(proj.raw, nearVal, farVal); glm_persp_decomp_z(proj.raw, nearZ, farZ);
} }
/*! /*!
* @brief decomposes far value of perspective projection. * @brief decomposes far value of perspective projection.
* *
* @param[in] proj perspective projection matrix * @param[in] proj perspective projection matrix
* @param[out] farVal far * @param[out] farZ far
*/ */
CGLM_INLINE CGLM_INLINE
void void
glms_persp_decomp_far(mat4s proj, float * __restrict farVal) { glms_persp_decomp_far(mat4s proj, float * __restrict farZ) {
glm_persp_decomp_far(proj.raw, farVal); glm_persp_decomp_far(proj.raw, farZ);
} }
/*! /*!
* @brief decomposes near value of perspective projection. * @brief decomposes near value of perspective projection.
* *
* @param[in] proj perspective projection matrix * @param[in] proj perspective projection matrix
* @param[out] nearVal near * @param[out] nearZ near
*/ */
CGLM_INLINE CGLM_INLINE
void void
glms_persp_decomp_near(mat4s proj, float * __restrict nearVal) { glms_persp_decomp_near(mat4s proj, float * __restrict nearZ) {
glm_persp_decomp_near(proj.raw, nearVal); glm_persp_decomp_near(proj.raw, nearZ);
} }
/*! /*!

View File

@@ -10,38 +10,20 @@
CGLM_EXPORT CGLM_EXPORT
void void
glmc_frustum(float left, glmc_frustum(float left, float right,
float right, float bottom, float top,
float bottom, float nearZ, float farZ,
float top,
float nearVal,
float farVal,
mat4 dest) { mat4 dest) {
glm_frustum(left, glm_frustum(left, right, bottom, top, nearZ, farZ, dest);
right,
bottom,
top,
nearVal,
farVal,
dest);
} }
CGLM_EXPORT CGLM_EXPORT
void void
glmc_ortho(float left, glmc_ortho(float left, float right,
float right, float bottom, float top,
float bottom, float nearZ, float farZ,
float top, mat4 dest) {
float nearVal, glm_ortho(left, right, bottom, top, nearZ, farZ, dest);
float farVal,
mat4 dest) {
glm_ortho(left,
right,
bottom,
top,
nearVal,
farVal,
dest);
} }
CGLM_EXPORT CGLM_EXPORT
@@ -76,16 +58,8 @@ glmc_ortho_default_s(float aspect, float size, mat4 dest) {
CGLM_EXPORT CGLM_EXPORT
void void
glmc_perspective(float fovy, glmc_perspective(float fovy, float aspect, float nearZ, float farZ, mat4 dest) {
float aspect, glm_perspective(fovy, aspect, nearZ, farZ, dest);
float nearVal,
float farVal,
mat4 dest) {
glm_perspective(fovy,
aspect,
nearVal,
farVal,
dest);
} }
CGLM_EXPORT CGLM_EXPORT
@@ -108,10 +82,7 @@ glmc_perspective_resize(float aspect, mat4 proj) {
CGLM_EXPORT CGLM_EXPORT
void void
glmc_lookat(vec3 eye, glmc_lookat(vec3 eye, vec3 center, vec3 up, mat4 dest) {
vec3 center,
vec3 up,
mat4 dest) {
glm_lookat(eye, center, up, dest); glm_lookat(eye, center, up, dest);
} }
@@ -130,13 +101,13 @@ glmc_look_anyup(vec3 eye, vec3 dir, mat4 dest) {
CGLM_EXPORT CGLM_EXPORT
void void
glmc_persp_decomp(mat4 proj, glmc_persp_decomp(mat4 proj,
float * __restrict nearVal, float * __restrict nearZ,
float * __restrict farVal, float * __restrict farZ,
float * __restrict top, float * __restrict top,
float * __restrict bottom, float * __restrict bottom,
float * __restrict left, float * __restrict left,
float * __restrict right) { float * __restrict right) {
glm_persp_decomp(proj, nearVal, farVal, top, bottom, left, right); glm_persp_decomp(proj, nearZ, farZ, top, bottom, left, right);
} }
CGLM_EXPORT CGLM_EXPORT
@@ -164,21 +135,21 @@ glmc_persp_decomp_y(mat4 proj,
CGLM_EXPORT CGLM_EXPORT
void void
glmc_persp_decomp_z(mat4 proj, glmc_persp_decomp_z(mat4 proj,
float * __restrict nearVal, float * __restrict nearZ,
float * __restrict farVal) { float * __restrict farZ) {
glm_persp_decomp_z(proj, nearVal, farVal); glm_persp_decomp_z(proj, nearZ, farZ);
} }
CGLM_EXPORT CGLM_EXPORT
void void
glmc_persp_decomp_far(mat4 proj, float * __restrict farVal) { glmc_persp_decomp_far(mat4 proj, float * __restrict farZ) {
glm_persp_decomp_far(proj, farVal); glm_persp_decomp_far(proj, farZ);
} }
CGLM_EXPORT CGLM_EXPORT
void void
glmc_persp_decomp_near(mat4 proj, float * __restrict nearVal) { glmc_persp_decomp_near(mat4 proj, float * __restrict nearZ) {
glm_persp_decomp_near(proj, nearVal); glm_persp_decomp_near(proj, nearZ);
} }
CGLM_EXPORT CGLM_EXPORT

View File

@@ -27,14 +27,14 @@ TEST_IMPL(camera_lookat) {
TEST_IMPL(camera_decomp) { TEST_IMPL(camera_decomp) {
mat4 proj, proj2; mat4 proj, proj2;
vec4 sizes; vec4 sizes;
float aspect, fovy, nearVal, farVal; float aspect, fovy, nearZ, farZ;
aspect = 0.782f; aspect = 0.782f;
fovy = glm_rad(49.984f); fovy = glm_rad(49.984f);
nearVal = 0.1f; nearZ = 0.1f;
farVal = 100.0f; farZ = 100.0f;
glm_perspective(fovy, aspect, nearVal, farVal, proj); glm_perspective(fovy, aspect, nearZ, farZ, proj);
ASSERT(fabsf(aspect - glm_persp_aspect(proj)) < GLM_FLT_EPSILON) ASSERT(fabsf(aspect - glm_persp_aspect(proj)) < GLM_FLT_EPSILON)
ASSERT(fabsf(fovy - glm_persp_fovy(proj)) < GLM_FLT_EPSILON) ASSERT(fabsf(fovy - glm_persp_fovy(proj)) < GLM_FLT_EPSILON)
ASSERT(fabsf(49.984f - glm_deg(glm_persp_fovy(proj))) < GLM_FLT_EPSILON) ASSERT(fabsf(49.984f - glm_deg(glm_persp_fovy(proj))) < GLM_FLT_EPSILON)
@@ -45,8 +45,8 @@ TEST_IMPL(camera_decomp) {
sizes[0] * 0.5f, sizes[0] * 0.5f,
-sizes[1] * 0.5f, -sizes[1] * 0.5f,
sizes[1] * 0.5f, sizes[1] * 0.5f,
nearVal, nearZ,
farVal, farZ,
proj2); proj2);
ASSERTIFY(test_assert_mat4_eq(proj, proj2)) ASSERTIFY(test_assert_mat4_eq(proj, proj2))