tests: add some test for project/unproject

This commit is contained in:
Recep Aslantas
2019-09-22 10:52:02 +03:00
parent d0671b3e7a
commit d7b37ba245
3 changed files with 120 additions and 22 deletions

View File

@@ -5,28 +5,22 @@
* Full license can be found in the LICENSE file
*/
#include "test_common.h"
/* test inline project */
TEST_IMPL(project) {
mat4 model, view, proj, mvp;
vec4 viewport = {0.0f, 0.0f, 800.0f, 600.0f};
vec3 pos = {13.0f, 45.0f, 0.74f};
vec3 projected, unprojected;
#define GLM_PREFIX glm_
#define GLM(X) (glm_ ## X)
glm_translate_make(model, (vec3){0.0f, 0.0f, -10.0f});
glm_lookat((vec3){0.0f, 0.0f, 0.0f}, pos, GLM_YUP, view);
#include "test_project.h"
glm_perspective_default(0.5f, proj);
glm_mat4_mulN((mat4 *[]){&proj, &view, &model}, 3, mvp);
#undef GLM
#undef GLM_PREFIX
glmc_project(pos, mvp, viewport, projected);
glmc_unproject(projected, mvp, viewport, unprojected);
/* test pre-compiled project */
/* unprojected of projected vector must be same as original one */
/* we used 0.01 because of projection floating point errors */
ASSERT(fabsf(pos[0] - unprojected[0]) < 0.01);
ASSERT(fabsf(pos[1] - unprojected[1]) < 0.01);
ASSERT(fabsf(pos[2] - unprojected[2]) < 0.01);
TEST_SUCCESS
}
#define GLM_PREFIX glmc_
#define GLM(X) (glmc_ ## X)
#include "test_project.h"
#undef GLM
#undef GLM_PREFIX