summaryrefslogtreecommitdiffstats
path: root/tests/gl.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/gl.c')
-rw-r--r--tests/gl.c110
1 files changed, 10 insertions, 100 deletions
diff --git a/tests/gl.c b/tests/gl.c
index ca6950e..5b291f6 100644
--- a/tests/gl.c
+++ b/tests/gl.c
@@ -28,99 +28,25 @@ main() {
dmnsn_progress *progress;
dmnsn_scene *scene;
dmnsn_object *sphere, *cube;
- dmnsn_sRGB sRGB;
- dmnsn_color color;
dmnsn_matrix trans;
unsigned int i;
/* Set the resilience low for tests */
dmnsn_set_resilience(DMNSN_SEVERITY_LOW);
- /* Allocate our new scene */
- scene = dmnsn_new_scene();
+ scene = dmnsn_new_default_scene();
if (!scene) {
- fprintf(stderr, "--- Allocation of scene failed! ---\n");
+ fprintf(stderr, "--- Couldn't create default scene! ---\n");
return EXIT_FAILURE;
}
- /* Allocate a canvas */
- scene->canvas = dmnsn_new_canvas(768, 480);
- if (!scene->canvas) {
- dmnsn_delete_scene(scene);
- fprintf(stderr, "--- Allocation of canvas failed! ---\n");
- return EXIT_FAILURE;
- }
-
- /* Set up the transformation matrix for the perspective camera */
- trans = dmnsn_scale_matrix(
- dmnsn_vector_construct(
- ((double)scene->canvas->x)/scene->canvas->y, 1.0, 1.0
- )
- );
- trans = dmnsn_matrix_mul(
- dmnsn_translation_matrix(dmnsn_vector_construct(0.0, 0.0, -4.0)),
- trans
- );
- trans = dmnsn_matrix_mul(
- dmnsn_rotation_matrix(dmnsn_vector_construct(0.0, 1.0, 0.0)),
- trans
- );
-
- /* Create a perspective camera */
- scene->camera = dmnsn_new_perspective_camera(trans);
- if (!scene->camera) {
- dmnsn_delete_canvas(scene->canvas);
- dmnsn_delete_scene(scene);
- fprintf(stderr, "--- Allocation of camera failed! ---\n");
- return EXIT_FAILURE;
- }
-
- /* Background color */
- sRGB.R = 0.0;
- sRGB.G = 0.0;
- sRGB.B = 0.1;
- color = dmnsn_color_from_sRGB(sRGB);
- color.filter = 0.1;
- scene->background = color;
-
- /* Now make our objects */
-
- sphere = dmnsn_new_sphere();
- if (!sphere) {
- dmnsn_delete_perspective_camera(scene->camera);
- dmnsn_delete_canvas(scene->canvas);
- dmnsn_delete_scene(scene);
- fprintf(stderr, "--- Allocation of sphere failed! ---\n");
- return EXIT_FAILURE;
- }
-
- sphere->trans = dmnsn_matrix_inverse(
- dmnsn_scale_matrix(dmnsn_vector_construct(1.25, 1.25, 1.25))
- );
- dmnsn_array_push(scene->objects, &sphere);
-
- cube = dmnsn_new_cube();
- if (!cube) {
- dmnsn_delete_sphere(sphere);
- dmnsn_delete_perspective_camera(scene->camera);
- dmnsn_delete_canvas(scene->canvas);
- dmnsn_delete_scene(scene);
- fprintf(stderr, "--- Allocation of cube failed! ---\n");
- return EXIT_FAILURE;
- }
-
- cube->trans = dmnsn_matrix_inverse(
- dmnsn_rotation_matrix(dmnsn_vector_construct(0.75, 0.0, 0.0))
- );
- dmnsn_array_push(scene->objects, &cube);
+ dmnsn_array_get(scene->objects, 0, &sphere);
+ dmnsn_array_get(scene->objects, 1, &cube);
+ trans = dmnsn_get_perspective_camera_trans(scene->camera);
display = dmnsn_new_glX_display(scene->canvas);
if (!display) {
- dmnsn_delete_cube(cube);
- dmnsn_delete_sphere(sphere);
- dmnsn_delete_perspective_camera(scene->camera);
- dmnsn_delete_canvas(scene->canvas);
- dmnsn_delete_scene(scene);
+ dmnsn_delete_default_scene(scene);
fprintf(stderr, "--- Couldn't initialize X or glX! ---\n");
return EXIT_FAILURE;
}
@@ -129,11 +55,7 @@ main() {
progress = dmnsn_raytrace_scene_async(scene);
if (!progress) {
dmnsn_delete_display(display);
- dmnsn_delete_cube(cube);
- dmnsn_delete_sphere(sphere);
- dmnsn_delete_perspective_camera(scene->camera);
- dmnsn_delete_canvas(scene->canvas);
- dmnsn_delete_scene(scene);
+ dmnsn_delete_default_scene(scene);
fprintf(stderr, "--- Couldn't start raytracing worker thread! ---\n");
return EXIT_FAILURE;
}
@@ -142,22 +64,14 @@ main() {
if (dmnsn_finish_progress(progress) != 0) {
dmnsn_delete_display(display);
- dmnsn_delete_cube(cube);
- dmnsn_delete_sphere(sphere);
- dmnsn_delete_perspective_camera(scene->camera);
- dmnsn_delete_canvas(scene->canvas);
- dmnsn_delete_scene(scene);
+ dmnsn_delete_default_scene(scene);
fprintf(stderr, "--- Raytracing failed! ---\n");
return EXIT_FAILURE;
}
if (dmnsn_gl_write_canvas(scene->canvas) != 0) {
dmnsn_delete_display(display);
- dmnsn_delete_cube(cube);
- dmnsn_delete_sphere(sphere);
- dmnsn_delete_perspective_camera(scene->camera);
- dmnsn_delete_canvas(scene->canvas);
- dmnsn_delete_scene(scene);
+ dmnsn_delete_default_scene(scene);
fprintf(stderr, "--- Drawing to openGL failed! ---\n");
return EXIT_FAILURE;
}
@@ -180,10 +94,6 @@ main() {
}
dmnsn_delete_display(display);
- dmnsn_delete_cube(cube);
- dmnsn_delete_sphere(sphere);
- dmnsn_delete_perspective_camera(scene->camera);
- dmnsn_delete_canvas(scene->canvas);
- dmnsn_delete_scene(scene);
+ dmnsn_delete_default_scene(scene);
return EXIT_SUCCESS;
}