From 105451d1bea329edff85a5727f0bc4fd3b8e5504 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Tue, 7 Sep 2010 23:35:26 +0100 Subject: [PATCH] cogl: removes unused _cogl_setup_viewport Clutter has now taken responsibility for managing its viewport, projection matrix and view transform as part of ClutterStage so _cogl_setup_viewport is no longer used by anything, and since it's quite an obscure API anyway it's we've taken the opportunity to remove the function. --- clutter/cogl/cogl/cogl.c | 74 ---------------------------------------- clutter/cogl/cogl/cogl.h | 26 -------------- 2 files changed, 100 deletions(-) diff --git a/clutter/cogl/cogl/cogl.c b/clutter/cogl/cogl/cogl.c index 600572511..6ec98e07e 100644 --- a/clutter/cogl/cogl/cogl.c +++ b/clutter/cogl/cogl/cogl.c @@ -411,80 +411,6 @@ cogl_viewport (unsigned int width, cogl_set_viewport (0, 0, width, height); } -void -_cogl_setup_viewport (unsigned int width, - unsigned int height, - float fovy, - float aspect, - float z_near, - float z_far) -{ - float z_camera; - CoglMatrix projection_matrix; - CoglMatrixStack *modelview_stack; - - _COGL_GET_CONTEXT (ctx, NO_RETVAL); - - cogl_set_viewport (0, 0, width, height); - - /* For Ortho projection. - * _cogl_matrix_stack_ortho (projection_stack, 0, width, 0, height, -1, 1); - */ - - cogl_perspective (fovy, aspect, z_near, z_far); - - /* - * In theory, we can compute the camera distance from screen as: - * - * 0.5 * tan (FOV) - * - * However, it's better to compute the z_camera from our projection - * matrix so that we get a 1:1 mapping at the screen distance. Consider - * the upper-left corner of the screen. It has object coordinates - * (0,0,0), so by the transform below, ends up with eye coordinate - * - * x_eye = x_object / width - 0.5 = - 0.5 - * y_eye = (height - y_object) / width - 0.5 = 0.5 - * z_eye = z_object / width - z_camera = - z_camera - * - * From cogl_perspective(), we know that the projection matrix has - * the form: - * - * (x, 0, 0, 0) - * (0, y, 0, 0) - * (0, 0, c, d) - * (0, 0, -1, 0) - * - * Applied to the above, we get clip coordinates of - * - * x_clip = x * (- 0.5) - * y_clip = y * 0.5 - * w_clip = - 1 * (- z_camera) = z_camera - * - * Dividing through by w to get normalized device coordinates, we - * have, x_nd = x * 0.5 / z_camera, y_nd = - y * 0.5 / z_camera. - * The upper left corner of the screen has normalized device coordinates, - * (-1, 1), so to have the correct 1:1 mapping, we have to have: - * - * z_camera = 0.5 * x = 0.5 * y - * - * If x != y, then we have a non-uniform aspect ration, and a 1:1 mapping - * doesn't make sense. - */ - - cogl_get_projection_matrix (&projection_matrix); - z_camera = 0.5 * projection_matrix.xx; - - modelview_stack = - _cogl_framebuffer_get_modelview_stack (_cogl_get_framebuffer ()); - _cogl_matrix_stack_load_identity (modelview_stack); - _cogl_matrix_stack_translate (modelview_stack, -0.5f, -0.5f, -z_camera); - _cogl_matrix_stack_scale (modelview_stack, - 1.0f / width, -1.0f / height, 1.0f / width); - _cogl_matrix_stack_translate (modelview_stack, - 0.0f, -1.0 * height, 0.0f); -} - CoglFeatureFlags cogl_get_features (void) { diff --git a/clutter/cogl/cogl/cogl.h b/clutter/cogl/cogl/cogl.h index 205e9adfe..8d17880a4 100644 --- a/clutter/cogl/cogl/cogl.h +++ b/clutter/cogl/cogl/cogl.h @@ -290,32 +290,6 @@ cogl_ortho (float left, float near, float far); -/* - * _cogl_setup_viewport: - * @width: Width of the viewport - * @height: Height of the viewport - * @fovy: Field of view angle in degrees - * @aspect: Aspect ratio to determine the field of view along the x-axis - * @z_near: Nearest visible point along the z-axis - * @z_far: Furthest visible point along the z-axis - * - * Replaces the current viewport and projection matrix with the given - * values. The viewport is placed at the top left corner of the window - * with the given width and height. The projection matrix is replaced - * with one that has a viewing angle of @fovy along the y-axis and a - * view scaled according to @aspect along the x-axis. The view is - * clipped according to @z_near and @z_far on the z-axis. - * - * This function is used only by Clutter. - */ -void -_cogl_setup_viewport (unsigned int width, - unsigned int height, - float fovy, - float aspect, - float z_near, - float z_far); - #ifndef COGL_DISABLE_DEPRECATED /**