Merge branch 'enhancement'
[pcsx_rearmed.git] / plugins / gpu-gles / gpuPrim.c
index 5d17f2d..2f200eb 100644 (file)
@@ -90,6 +90,19 @@ BOOL          bUseFixes;
 \r
 long          drawX,drawY,drawW,drawH;                 // offscreen drawing checkers\r
 short         sxmin,sxmax,symin,symax;\r
+unsigned int CSVERTEX=0,CSCOLOR=0,CSTEXTURE=0;\r
+\r
+void offsetPSX4(void)\r
+{\r
+ lx0 += PSXDisplay.DrawOffset.x;\r
+ ly0 += PSXDisplay.DrawOffset.y;\r
+ lx1 += PSXDisplay.DrawOffset.x;\r
+ ly1 += PSXDisplay.DrawOffset.y;\r
+ lx2 += PSXDisplay.DrawOffset.x;\r
+ ly2 += PSXDisplay.DrawOffset.y;\r
+ lx3 += PSXDisplay.DrawOffset.x;\r
+ ly3 += PSXDisplay.DrawOffset.y;\r
+}\r
 \r
 ////////////////////////////////////////////////////////////////////////                                          \r
 // Update global TP infos\r
@@ -193,22 +206,23 @@ v[3].xyz.y = fpoint(vertex3->y);
 v[3].xyz.z = fpoint(vertex3->z);\r
 v[3].st.x = fpoint(vertex3->sow);\r
 v[3].st.y = fpoint(vertex3->tow);\r
-\r
-glEnableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glDisableClientState(GL_VERTEX_ARRAY); \r
+if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError();\r
+if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError();\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSTEXTURE=CSVERTEX=1;\r
+CSCOLOR=0;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawTexturedTri(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawTexturedTri(OGLVertex* vertex1, OGLVertex* vertex2,\r
                                   OGLVertex* vertex3) \r
 {\r
 Vertex v[3];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -227,24 +241,25 @@ v[2].xyz.y = fpoint(vertex3->y);
 v[2].xyz.z = fpoint(vertex3->z);\r
 v[2].st.x = fpoint(vertex3->sow);\r
 v[2].st.y = fpoint(vertex3->tow);\r
-\r
-glEnableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glDrawArrays(GL_TRIANGLES, 0, 3);\r
-glDisableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
+if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError();\r
+if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError();\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glDrawArrays(GL_TRIANGLES, 0, 3);glError();\r
+CSTEXTURE=CSVERTEX=1;\r
+CSCOLOR=0;\r
 \r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawTexGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawTexGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2,\r
                                          OGLVertex* vertex3) \r
 {\r
 \r
 Vertex2 v[3];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -276,26 +291,25 @@ v[2].rgba.g = vertex3->c.col[1];
 v[2].rgba.b = vertex3->c.col[2];\r
 v[2].rgba.a = vertex3->c.col[3];\r
 \r
-glEnableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
 \r
-glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError();\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLES, 0, 3);\r
-glDisableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLES, 0, 3);glError();\r
+CSTEXTURE=CSVERTEX=CSCOLOR=1;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawTexGouraudTriColorQuad(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawTexGouraudTriColorQuad(OGLVertex* vertex1, OGLVertex* vertex2,\r
                                              OGLVertex* vertex3, OGLVertex* vertex4) \r
 {\r
 Vertex2 v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -337,25 +351,24 @@ v[3].rgba.g = vertex3->c.col[1];
 v[3].rgba.b = vertex3->c.col[2];\r
 v[3].rgba.a = vertex3->c.col[3];\r
 \r
-glEnableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
 \r
-glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError();\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_TEXTURE_COORD_ARRAY);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSTEXTURE=CSVERTEX=CSCOLOR=1;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawTri(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3) \r
+void PRIMdrawTri(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3)\r
 {\r
 Vec3f v[3];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return;\r
 \r
 v[0].x = fpoint(vertex1->x);\r
 v[0].y = fpoint(vertex1->y);\r
@@ -369,18 +382,24 @@ v[2].x = fpoint(vertex3->x);
 v[2].y = fpoint(vertex3->y);\r
 v[2].z = fpoint(vertex3->z);\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);\r
-glDrawArrays(GL_TRIANGLES, 0, 3);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError();\r
+\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);glError();\r
+glDrawArrays(GL_TRIANGLES, 0, 3);glError();\r
+CSVERTEX=1;\r
+CSTEXTURE=CSCOLOR=0;\r
+\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawTri2(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawTri2(OGLVertex* vertex1, OGLVertex* vertex2,\r
                            OGLVertex* vertex3, OGLVertex* vertex4) \r
 {\r
 Vec3f v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].x = fpoint(vertex1->x);\r
 v[0].y = fpoint(vertex1->y);\r
@@ -398,18 +417,23 @@ v[3].x = fpoint(vertex4->x);
 v[3].y = fpoint(vertex4->y);\r
 v[3].z = fpoint(vertex4->z);\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);\r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError();\r
+\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);glError();\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSVERTEX=1;\r
+CSTEXTURE=CSCOLOR=0;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2,\r
                                       OGLVertex* vertex3) \r
 {\r
 Vertex2 v[3];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -435,23 +459,25 @@ v[2].rgba.g = vertex3->c.col[1];
 v[2].rgba.b = vertex3->c.col[2];\r
 v[2].rgba.a = vertex3->c.col[3];\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
 \r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLES, 0, 3);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLES, 0, 3);glError();\r
+CSVERTEX=CSCOLOR=1;\r
+CSTEXTURE=0;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawGouraudTri2Color(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawGouraudTri2Color(OGLVertex* vertex1, OGLVertex* vertex2,\r
                                        OGLVertex* vertex3, OGLVertex* vertex4) \r
 {\r
 Vertex2 v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -485,22 +511,24 @@ v[3].rgba.g = vertex4->c.col[1];
 v[3].rgba.b = vertex4->c.col[2];\r
 v[3].rgba.a = vertex4->c.col[3];\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
 \r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSTEXTURE=0;\r
+CSVERTEX=CSCOLOR=1;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-__inline void PRIMdrawFlatLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4)\r
+void PRIMdrawFlatLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4)\r
 {\r
 Vertex2 v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -534,24 +562,27 @@ v[3].rgba.g = vertex1->c.col[1];
 v[3].rgba.b = vertex1->c.col[2];\r
 v[3].rgba.a = vertex1->c.col[3];\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
 \r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+\r
+CSTEXTURE=0;\r
+CSVERTEX=CSCOLOR=1;\r
 \r
 \r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
      \r
-__inline void PRIMdrawGouraudLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4)\r
+void PRIMdrawGouraudLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4)\r
 {\r
        Vertex2 v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].xyz.x = fpoint(vertex1->x);\r
 v[0].xyz.y = fpoint(vertex1->y);\r
@@ -585,23 +616,25 @@ v[2].rgba.g = vertex4->c.col[1];
 v[2].rgba.b = vertex4->c.col[2];\r
 v[2].rgba.a = vertex4->c.col[3];\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glEnableClientState(GL_COLOR_ARRAY);\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError();\r
 \r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);\r
-glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError();\r
+glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError();\r
 \r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
-glDisableClientState(GL_COLOR_ARRAY);\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSTEXTURE=0;\r
+CSVERTEX=CSCOLOR=1;\r
 }\r
 \r
 ///////////////////////////////////////////////////////// \r
              \r
-__inline void PRIMdrawQuad(OGLVertex* vertex1, OGLVertex* vertex2, \r
+void PRIMdrawQuad(OGLVertex* vertex1, OGLVertex* vertex2,\r
                            OGLVertex* vertex3, OGLVertex* vertex4) \r
 {\r
 Vec3f v[4];\r
+if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0&&vertex4->x==0&&vertex4->y==0) return;\r
 \r
 v[0].x = fpoint(vertex1->x);\r
 v[0].y = fpoint(vertex1->y);\r
@@ -619,10 +652,15 @@ v[3].x = fpoint(vertex3->x);
 v[3].y = fpoint(vertex3->y);\r
 v[3].z = fpoint(vertex3->z);\r
 \r
-glEnableClientState(GL_VERTEX_ARRAY);\r
-glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);\r
-glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);\r
-glDisableClientState(GL_VERTEX_ARRAY);\r
+if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError();\r
+if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError();\r
+if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError();\r
+\r
+glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);glError();\r
+glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError();\r
+CSTEXTURE=0;\r
+CSVERTEX=1;\r
+CSCOLOR=0;\r
 }\r
 \r
 ////////////////////////////////////////////////////////////////////////                                          \r
@@ -815,7 +853,7 @@ void SetSemiTransMulti(int Pass)
 // Set several rendering stuff including blending \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-__inline void SetZMask3O(void)\r
+void SetZMask3O(void)\r
 {\r
  if(iUseMask && DrawSemiTrans && !iSetMask)\r
   {\r
@@ -824,7 +862,7 @@ __inline void SetZMask3O(void)
   }\r
 }\r
 \r
-__inline void SetZMask3(void)\r
+void SetZMask3(void)\r
 {\r
  if(iUseMask)\r
   {\r
@@ -838,7 +876,7 @@ __inline void SetZMask3(void)
   }\r
 }\r
 \r
-__inline void SetZMask3NT(void)\r
+void SetZMask3NT(void)\r
 {\r
  if(iUseMask)\r
   {\r
@@ -854,7 +892,7 @@ __inline void SetZMask3NT(void)
 \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-__inline void SetZMask4O(void)\r
+ void SetZMask4O(void)\r
 {\r
  if(iUseMask && DrawSemiTrans && !iSetMask)\r
   {\r
@@ -863,7 +901,7 @@ __inline void SetZMask4O(void)
   }\r
 }\r
 \r
-__inline void SetZMask4(void)\r
+ void SetZMask4(void)\r
 {\r
  if(iUseMask)\r
   {\r
@@ -877,7 +915,7 @@ __inline void SetZMask4(void)
   }\r
 }\r
 \r
-__inline void SetZMask4NT(void)\r
+ void SetZMask4NT(void)\r
 {\r
  if(iUseMask)\r
   {\r
@@ -891,7 +929,7 @@ __inline void SetZMask4NT(void)
   }\r
 }\r
 \r
-__inline void SetZMask4SP(void)\r
+ void SetZMask4SP(void)\r
 {\r
  if(iUseMask)\r
   {\r
@@ -912,7 +950,7 @@ __inline void SetZMask4SP(void)
 \r
 ////////////////////////////////////////////////////////////////////////\r
 \r
-__inline void SetRenderState(unsigned long DrawAttributes)\r
+ void SetRenderState(unsigned long DrawAttributes)\r
 {\r
  bDrawNonShaded = (SHADETEXBIT(DrawAttributes)) ? TRUE : FALSE;\r
  DrawSemiTrans = (SEMITRANSBIT(DrawAttributes)) ? TRUE : FALSE;\r
@@ -920,7 +958,7 @@ __inline void SetRenderState(unsigned long DrawAttributes)
 \r
 ////////////////////////////////////////////////////////////////////////                                          \r
 \r
-__inline void SetRenderColor(unsigned long DrawAttributes)\r
+ void SetRenderColor(unsigned long DrawAttributes)\r
 {\r
  if(bDrawNonShaded) {g_m1=g_m2=g_m3=128;}\r
  else\r
@@ -2246,7 +2284,7 @@ void primBlkFill(unsigned char * baseAddr)
      b=((GLclampf)BLUE(gpuData[0]))/255.0f;\r
      r=((GLclampf)RED(gpuData[0]))/255.0f;\r
      \r
-     glDisable(GL_SCISSOR_TEST); glError();\r
+     //glDisable(GL_SCISSOR_TEST); glError();\r
      glClearColor(r,g,b,1.0f); glError();\r
      glClear(uiBufferBits); glError();\r
      gl_z=0.0f;\r
@@ -2279,7 +2317,7 @@ void primBlkFill(unsigned char * baseAddr)
         }\r
       }\r
 \r
-     glEnable(GL_SCISSOR_TEST); glError();\r
+     //glEnable(GL_SCISSOR_TEST); glError();\r
     }\r
    else\r
     {\r
@@ -2289,9 +2327,9 @@ void primBlkFill(unsigned char * baseAddr)
      SetRenderMode((unsigned long)0x01000000, FALSE);\r
      vertex[0].c.lcol=gpuData[0]|0xff000000;\r
      SETCOL(vertex[0]); \r
-     glDisable(GL_SCISSOR_TEST); glError();\r
+     //glDisable(GL_SCISSOR_TEST); glError();\r
      PRIMdrawQuad(&vertex[0], &vertex[1], &vertex[2], &vertex[3]);\r
-     glEnable(GL_SCISSOR_TEST); glError();\r
+     //glEnable(GL_SCISSOR_TEST); glError();\r
     }\r
   }\r
 \r