memset(m, 0, sizeof(m));
m[0] = 2/(right - left);
m[5] = 2/(top - bottom);
-// m[10] = -2/(zFar - zNear);
- m[10] = -1/(zFar - zNear);
+ m[10] = -2/(zFar - zNear);
m[12] = - (right + left)/(right - left);
m[13] = - (top + bottom)/(top - bottom);
-// m[14] = - (zFar + zNear)/(zFar - zNear);
- m[14] = -zNear/(zFar-zNear);
+ m[14] = - (zFar + zNear)/(zFar - zNear);
m[15] = 1;
+ switch(vid.renderpath)
+ {
+ case RENDERPATH_GL11:
+ case RENDERPATH_GL13:
+ case RENDERPATH_GL20:
+ case RENDERPATH_CGGL:
+ break;
+ case RENDERPATH_D3D9:
+ case RENDERPATH_D3D10:
+ case RENDERPATH_D3D11:
+ m[10] = -1/(zFar - zNear);
+ m[14] = -zNear/(zFar-zNear);
+ break;
+ }
v->screentodepth[0] = -farclip / (farclip - nearclip);
v->screentodepth[1] = farclip * nearclip / (farclip - nearclip);
float m[16];
memset(v, 0, sizeof(*v));
- if(v_flipped.integer)
- frustumx = -frustumx;
-
v->type = R_VIEWPORTTYPE_PERSPECTIVE;
v->cameramatrix = *cameramatrix;
v->x = x;
if (nearplane)
R_Viewport_ApplyNearClipPlaneFloatGL(v, m, nearplane[0], nearplane[1], nearplane[2], nearplane[3]);
+ if(v_flipped.integer)
+ {
+ m[0] = -m[0];
+ m[4] = -m[4];
+ m[8] = -m[8];
+ m[12] = -m[12];
+ }
+
Matrix4x4_FromArrayFloatGL(&v->projectmatrix, m);
}
float m[16];
memset(v, 0, sizeof(*v));
- if(v_flipped.integer)
- frustumx = -frustumx;
-
v->type = R_VIEWPORTTYPE_PERSPECTIVE_INFINITEFARCLIP;
v->cameramatrix = *cameramatrix;
v->x = x;
if (nearplane)
R_Viewport_ApplyNearClipPlaneFloatGL(v, m, nearplane[0], nearplane[1], nearplane[2], nearplane[3]);
+ if(v_flipped.integer)
+ {
+ m[0] = -m[0];
+ m[4] = -m[4];
+ m[8] = -m[8];
+ m[12] = -m[12];
+ }
+
Matrix4x4_FromArrayFloatGL(&v->projectmatrix, m);
}