nouveau: nv10: properly set viewport and projection
authorPatrice Mandin <pmandin@caramail.com>
Sat, 25 Aug 2007 09:39:04 +0000 (11:39 +0200)
committerPatrice Mandin <pmandin@caramail.com>
Sat, 25 Aug 2007 09:39:04 +0000 (11:39 +0200)
src/mesa/drivers/dri/nouveau/nv10_state.c

index 5d512b13c41bfdbcca1fc404691a0f94f6608ac6..6d9ddd55d4518f6ef94b4415daf605a268eee492 100644 (file)
@@ -37,8 +37,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
 static void nv10ViewportScale(nouveauContextPtr nmesa)
 {
        GLcontext *ctx = nmesa->glCtx;
-       GLuint w = ((GLfloat) ctx->Viewport.Width) * 0.5;
-       GLuint h = ((GLfloat) ctx->Viewport.Height) * 0.5;
+       GLfloat w = ((GLfloat) ctx->Viewport.Width) * 0.5;
+       GLfloat h = ((GLfloat) ctx->Viewport.Height) * 0.5;
        GLfloat max_depth = (ctx->Viewport.Near + ctx->Viewport.Far) * 0.5;
        GLfloat projection[16];
        int i;
@@ -67,7 +67,7 @@ static void nv10ViewportScale(nouveauContextPtr nmesa)
 
        memset(projection, 0, sizeof(projection));
        projection[0*4+0] = w;
-       projection[1*4+1] = h;
+       projection[1*4+1] = -h;
        projection[2*4+2] = max_depth;
        projection[3*4+3] = 1.0;
        BEGIN_RING_CACHE(NvSub3D, NV10_TCL_PRIMITIVE_3D_PROJECTION_MATRIX(0), 16);