X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=plugins%2Fgpu-gles%2FgpuPrim.c;h=ed16e4a9c53498071e17aa27112e2b4795ec03bb;hb=6fb444d65d471c40872f7b559c7fe2520bf5ef47;hp=5d17f2de33106f4ac0da0c258c927935a86556e9;hpb=9f58cabba9806e2c365c64f7a3701efa6282aa72;p=pcsx_rearmed.git diff --git a/plugins/gpu-gles/gpuPrim.c b/plugins/gpu-gles/gpuPrim.c index 5d17f2de..ed16e4a9 100644 --- a/plugins/gpu-gles/gpuPrim.c +++ b/plugins/gpu-gles/gpuPrim.c @@ -44,9 +44,6 @@ // globals //////////////////////////////////////////////////////////////////////// -EGLSurface surface; -EGLDisplay display; - BOOL bDrawTextured; // current active drawing states BOOL bDrawSmoothShaded; @@ -80,16 +77,29 @@ BOOL bUsingMovie=FALSE; // movie active flag PSXRect_t xrMovieArea; // rect for movie upload short sSprite_ux2; // needed for sprire adjust short sSprite_vy2; // -unsigned long ulOLDCOL=0; // active color -unsigned long ulClutID; // clut +unsigned int ulOLDCOL=0; // active color +unsigned int ulClutID; // clut -unsigned long dwCfgFixes; // game fixes -unsigned long dwActFixes=0; -unsigned long dwEmuFixes=0; +unsigned int dwCfgFixes; // game fixes +unsigned int dwActFixes=0; +unsigned int dwEmuFixes=0; BOOL bUseFixes; -long drawX,drawY,drawW,drawH; // offscreen drawing checkers +int drawX,drawY,drawW,drawH; // offscreen drawing checkers short sxmin,sxmax,symin,symax; +unsigned int CSVERTEX=0,CSCOLOR=0,CSTEXTURE=0; + +void offsetPSX4(void) +{ + lx0 += PSXDisplay.DrawOffset.x; + ly0 += PSXDisplay.DrawOffset.y; + lx1 += PSXDisplay.DrawOffset.x; + ly1 += PSXDisplay.DrawOffset.y; + lx2 += PSXDisplay.DrawOffset.x; + ly2 += PSXDisplay.DrawOffset.y; + lx3 += PSXDisplay.DrawOffset.x; + ly3 += PSXDisplay.DrawOffset.y; +} //////////////////////////////////////////////////////////////////////// // Update global TP infos @@ -137,9 +147,9 @@ void UpdateGlobalTP(unsigned short gdata) //////////////////////////////////////////////////////////////////////// -unsigned long DoubleBGR2RGB (unsigned long BGR) +unsigned int DoubleBGR2RGB (unsigned int BGR) { - unsigned long ebx,eax,edx; + unsigned int ebx,eax,edx; ebx=(BGR&0x000000ff)<<1; if(ebx&0x00000100) ebx=0x000000ff; @@ -153,7 +163,7 @@ unsigned long DoubleBGR2RGB (unsigned long BGR) return (ebx|eax|edx); } -unsigned short BGR24to16 (unsigned long BGR) +unsigned short BGR24to16 (unsigned int BGR) { return ((BGR>>3)&0x1f)|((BGR&0xf80000)>>9)|((BGR&0xf800)>>6); } @@ -193,22 +203,23 @@ v[3].xyz.y = fpoint(vertex3->y); v[3].xyz.z = fpoint(vertex3->z); v[3].st.x = fpoint(vertex3->sow); v[3].st.y = fpoint(vertex3->tow); - -glEnableClientState(GL_TEXTURE_COORD_ARRAY); -glEnableClientState(GL_VERTEX_ARRAY); -glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz); -glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); -glDisableClientState(GL_TEXTURE_COORD_ARRAY); -glDisableClientState(GL_VERTEX_ARRAY); +if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError(); +if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError(); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError(); +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError(); +glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError(); +CSTEXTURE=CSVERTEX=1; +CSCOLOR=0; } ///////////////////////////////////////////////////////// -__inline void PRIMdrawTexturedTri(OGLVertex* vertex1, OGLVertex* vertex2, +void PRIMdrawTexturedTri(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3) { Vertex v[3]; +if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return; v[0].xyz.x = fpoint(vertex1->x); v[0].xyz.y = fpoint(vertex1->y); @@ -227,24 +238,25 @@ v[2].xyz.y = fpoint(vertex3->y); v[2].xyz.z = fpoint(vertex3->z); v[2].st.x = fpoint(vertex3->sow); v[2].st.y = fpoint(vertex3->tow); - -glEnableClientState(GL_TEXTURE_COORD_ARRAY); -glEnableClientState(GL_VERTEX_ARRAY); -glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz); -glDrawArrays(GL_TRIANGLES, 0, 3); -glDisableClientState(GL_TEXTURE_COORD_ARRAY); -glDisableClientState(GL_VERTEX_ARRAY); +if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError(); +if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError(); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError(); +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError(); +glDrawArrays(GL_TRIANGLES, 0, 3);glError(); +CSTEXTURE=CSVERTEX=1; +CSCOLOR=0; } ///////////////////////////////////////////////////////// -__inline void PRIMdrawTexGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2, +void PRIMdrawTexGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3) { Vertex2 v[3]; +if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return; v[0].xyz.x = fpoint(vertex1->x); v[0].xyz.y = fpoint(vertex1->y); @@ -276,26 +288,25 @@ v[2].rgba.g = vertex3->c.col[1]; v[2].rgba.b = vertex3->c.col[2]; v[2].rgba.a = vertex3->c.col[3]; -glEnableClientState(GL_TEXTURE_COORD_ARRAY); -glEnableClientState(GL_VERTEX_ARRAY); -glEnableClientState(GL_COLOR_ARRAY); +if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError(); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError(); -glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz); -glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba); +glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError(); +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError(); +glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError(); -glDrawArrays(GL_TRIANGLES, 0, 3); -glDisableClientState(GL_TEXTURE_COORD_ARRAY); -glDisableClientState(GL_VERTEX_ARRAY); -glDisableClientState(GL_COLOR_ARRAY); +glDrawArrays(GL_TRIANGLES, 0, 3);glError(); +CSTEXTURE=CSVERTEX=CSCOLOR=1; } ///////////////////////////////////////////////////////// -__inline void PRIMdrawTexGouraudTriColorQuad(OGLVertex* vertex1, OGLVertex* vertex2, +void PRIMdrawTexGouraudTriColorQuad(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3, OGLVertex* vertex4) { Vertex2 v[4]; +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; v[0].xyz.x = fpoint(vertex1->x); v[0].xyz.y = fpoint(vertex1->y); @@ -337,25 +348,24 @@ v[3].rgba.g = vertex3->c.col[1]; v[3].rgba.b = vertex3->c.col[2]; v[3].rgba.a = vertex3->c.col[3]; -glEnableClientState(GL_TEXTURE_COORD_ARRAY); -glEnableClientState(GL_VERTEX_ARRAY); -glEnableClientState(GL_COLOR_ARRAY); +if (CSTEXTURE==0) glEnableClientState(GL_TEXTURE_COORD_ARRAY);glError(); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError(); -glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz); -glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba); +glTexCoordPointer(2, GL_FLOAT, sizeof(v[0]), &v[0].st);glError(); +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError(); +glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError(); -glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); -glDisableClientState(GL_TEXTURE_COORD_ARRAY); -glDisableClientState(GL_VERTEX_ARRAY); -glDisableClientState(GL_COLOR_ARRAY); +glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError(); +CSTEXTURE=CSVERTEX=CSCOLOR=1; } ///////////////////////////////////////////////////////// -__inline void PRIMdrawTri(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3) +void PRIMdrawTri(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3) { Vec3f v[3]; +if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return; v[0].x = fpoint(vertex1->x); v[0].y = fpoint(vertex1->y); @@ -369,18 +379,24 @@ v[2].x = fpoint(vertex3->x); v[2].y = fpoint(vertex3->y); v[2].z = fpoint(vertex3->z); -glEnableClientState(GL_VERTEX_ARRAY); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]); -glDrawArrays(GL_TRIANGLES, 0, 3); -glDisableClientState(GL_VERTEX_ARRAY); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError(); +if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError(); + +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);glError(); +glDrawArrays(GL_TRIANGLES, 0, 3);glError(); +CSVERTEX=1; +CSTEXTURE=CSCOLOR=0; + } ///////////////////////////////////////////////////////// -__inline void PRIMdrawTri2(OGLVertex* vertex1, OGLVertex* vertex2, +void PRIMdrawTri2(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3, OGLVertex* vertex4) { Vec3f v[4]; +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; v[0].x = fpoint(vertex1->x); v[0].y = fpoint(vertex1->y); @@ -398,18 +414,23 @@ v[3].x = fpoint(vertex4->x); v[3].y = fpoint(vertex4->y); v[3].z = fpoint(vertex4->z); -glEnableClientState(GL_VERTEX_ARRAY); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]); -glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); -glDisableClientState(GL_VERTEX_ARRAY); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError(); +if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError(); + +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);glError(); +glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError(); +CSVERTEX=1; +CSTEXTURE=CSCOLOR=0; } ///////////////////////////////////////////////////////// -__inline void PRIMdrawGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2, +void PRIMdrawGouraudTriColor(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3) { Vertex2 v[3]; +if (vertex1->x==0&&vertex1->y==0&&vertex2->x==0&&vertex2->y==0&&vertex3->x==0&&vertex3->y==0) return; v[0].xyz.x = fpoint(vertex1->x); v[0].xyz.y = fpoint(vertex1->y); @@ -435,23 +456,25 @@ v[2].rgba.g = vertex3->c.col[1]; v[2].rgba.b = vertex3->c.col[2]; v[2].rgba.a = vertex3->c.col[3]; -glEnableClientState(GL_VERTEX_ARRAY); -glEnableClientState(GL_COLOR_ARRAY); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError(); +if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError(); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz); -glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba); +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError(); +glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError(); -glDrawArrays(GL_TRIANGLES, 0, 3); -glDisableClientState(GL_VERTEX_ARRAY); -glDisableClientState(GL_COLOR_ARRAY); +glDrawArrays(GL_TRIANGLES, 0, 3);glError(); +CSVERTEX=CSCOLOR=1; +CSTEXTURE=0; } ///////////////////////////////////////////////////////// -__inline void PRIMdrawGouraudTri2Color(OGLVertex* vertex1, OGLVertex* vertex2, +void PRIMdrawGouraudTri2Color(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3, OGLVertex* vertex4) { Vertex2 v[4]; +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; v[0].xyz.x = fpoint(vertex1->x); v[0].xyz.y = fpoint(vertex1->y); @@ -485,22 +508,24 @@ v[3].rgba.g = vertex4->c.col[1]; v[3].rgba.b = vertex4->c.col[2]; v[3].rgba.a = vertex4->c.col[3]; -glEnableClientState(GL_VERTEX_ARRAY); -glEnableClientState(GL_COLOR_ARRAY); +if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError(); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError(); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz); -glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba); +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError(); +glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError(); -glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); -glDisableClientState(GL_VERTEX_ARRAY); -glDisableClientState(GL_COLOR_ARRAY); +glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError(); +CSTEXTURE=0; +CSVERTEX=CSCOLOR=1; } ///////////////////////////////////////////////////////// -__inline void PRIMdrawFlatLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4) +void PRIMdrawFlatLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4) { Vertex2 v[4]; +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; v[0].xyz.x = fpoint(vertex1->x); v[0].xyz.y = fpoint(vertex1->y); @@ -534,24 +559,27 @@ v[3].rgba.g = vertex1->c.col[1]; v[3].rgba.b = vertex1->c.col[2]; v[3].rgba.a = vertex1->c.col[3]; -glEnableClientState(GL_VERTEX_ARRAY); -glEnableClientState(GL_COLOR_ARRAY); +if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError(); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError(); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz); -glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba); +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError(); +glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError(); -glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); -glDisableClientState(GL_VERTEX_ARRAY); -glDisableClientState(GL_COLOR_ARRAY); +glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError(); + +CSTEXTURE=0; +CSVERTEX=CSCOLOR=1; } ///////////////////////////////////////////////////////// -__inline void PRIMdrawGouraudLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4) +void PRIMdrawGouraudLine(OGLVertex* vertex1, OGLVertex* vertex2,OGLVertex* vertex3, OGLVertex* vertex4) { Vertex2 v[4]; +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; v[0].xyz.x = fpoint(vertex1->x); v[0].xyz.y = fpoint(vertex1->y); @@ -585,23 +613,25 @@ v[2].rgba.g = vertex4->c.col[1]; v[2].rgba.b = vertex4->c.col[2]; v[2].rgba.a = vertex4->c.col[3]; -glEnableClientState(GL_VERTEX_ARRAY); -glEnableClientState(GL_COLOR_ARRAY); +if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError(); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +if (CSCOLOR==0) glEnableClientState(GL_COLOR_ARRAY);glError(); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz); -glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba); +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0].xyz);glError(); +glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(v[0]), &v[0].rgba);glError(); -glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); -glDisableClientState(GL_VERTEX_ARRAY); -glDisableClientState(GL_COLOR_ARRAY); +glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError(); +CSTEXTURE=0; +CSVERTEX=CSCOLOR=1; } ///////////////////////////////////////////////////////// -__inline void PRIMdrawQuad(OGLVertex* vertex1, OGLVertex* vertex2, +void PRIMdrawQuad(OGLVertex* vertex1, OGLVertex* vertex2, OGLVertex* vertex3, OGLVertex* vertex4) { Vec3f v[4]; +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; v[0].x = fpoint(vertex1->x); v[0].y = fpoint(vertex1->y); @@ -619,10 +649,15 @@ v[3].x = fpoint(vertex3->x); v[3].y = fpoint(vertex3->y); v[3].z = fpoint(vertex3->z); -glEnableClientState(GL_VERTEX_ARRAY); -glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]); -glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); -glDisableClientState(GL_VERTEX_ARRAY); +if (CSTEXTURE==1) glDisableClientState(GL_TEXTURE_COORD_ARRAY);glError(); +if (CSVERTEX==0) glEnableClientState(GL_VERTEX_ARRAY);glError(); +if (CSCOLOR==1) glDisableClientState(GL_COLOR_ARRAY);glError(); + +glVertexPointer(3, GL_FLOAT, sizeof(v[0]), &v[0]);glError(); +glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);glError(); +CSTEXTURE=0; +CSVERTEX=1; +CSCOLOR=0; } //////////////////////////////////////////////////////////////////////// @@ -815,7 +850,7 @@ void SetSemiTransMulti(int Pass) // Set several rendering stuff including blending //////////////////////////////////////////////////////////////////////// -__inline void SetZMask3O(void) +void SetZMask3O(void) { if(iUseMask && DrawSemiTrans && !iSetMask) { @@ -824,7 +859,7 @@ __inline void SetZMask3O(void) } } -__inline void SetZMask3(void) +void SetZMask3(void) { if(iUseMask) { @@ -838,7 +873,7 @@ __inline void SetZMask3(void) } } -__inline void SetZMask3NT(void) +void SetZMask3NT(void) { if(iUseMask) { @@ -854,7 +889,7 @@ __inline void SetZMask3NT(void) //////////////////////////////////////////////////////////////////////// -__inline void SetZMask4O(void) + void SetZMask4O(void) { if(iUseMask && DrawSemiTrans && !iSetMask) { @@ -863,7 +898,7 @@ __inline void SetZMask4O(void) } } -__inline void SetZMask4(void) + void SetZMask4(void) { if(iUseMask) { @@ -877,7 +912,7 @@ __inline void SetZMask4(void) } } -__inline void SetZMask4NT(void) + void SetZMask4NT(void) { if(iUseMask) { @@ -891,7 +926,7 @@ __inline void SetZMask4NT(void) } } -__inline void SetZMask4SP(void) + void SetZMask4SP(void) { if(iUseMask) { @@ -912,7 +947,7 @@ __inline void SetZMask4SP(void) //////////////////////////////////////////////////////////////////////// -__inline void SetRenderState(unsigned long DrawAttributes) + void SetRenderState(unsigned int DrawAttributes) { bDrawNonShaded = (SHADETEXBIT(DrawAttributes)) ? TRUE : FALSE; DrawSemiTrans = (SEMITRANSBIT(DrawAttributes)) ? TRUE : FALSE; @@ -920,7 +955,7 @@ __inline void SetRenderState(unsigned long DrawAttributes) //////////////////////////////////////////////////////////////////////// -__inline void SetRenderColor(unsigned long DrawAttributes) + void SetRenderColor(unsigned int DrawAttributes) { if(bDrawNonShaded) {g_m1=g_m2=g_m3=128;} else @@ -933,7 +968,7 @@ __inline void SetRenderColor(unsigned long DrawAttributes) //////////////////////////////////////////////////////////////////////// -void SetRenderMode(unsigned long DrawAttributes,BOOL bSCol) +void SetRenderMode(unsigned int DrawAttributes,BOOL bSCol) { if((bUseMultiPass) && (bDrawTextured) && !(bDrawNonShaded)) {bDrawMultiPass = TRUE; SetSemiTransMulti(0);} @@ -989,7 +1024,7 @@ void SetRenderMode(unsigned long DrawAttributes,BOOL bSCol) // Set Opaque multipass color //////////////////////////////////////////////////////////////////////// -void SetOpaqueColor(unsigned long DrawAttributes) +void SetOpaqueColor(unsigned int DrawAttributes) { if(bDrawNonShaded) return; // no shading? bye @@ -1364,7 +1399,7 @@ BOOL CheckAgainstFrontScreen(short imageX0,short imageY0,short imageX1,short ima //////////////////////////////////////////////////////////////////////// -void PrepareFullScreenUpload (long Position) +void PrepareFullScreenUpload (int Position) { if (Position==-1) // rgb24 { @@ -1446,7 +1481,7 @@ void PrepareFullScreenUpload (long Position) unsigned char * LoadDirectMovieFast(void); -void UploadScreenEx(long Position) +void UploadScreenEx(int Position) { short ya,yb,xa,xb,x, y, YStep, XStep, U, UStep,ux[4],vy[4]; @@ -1530,7 +1565,7 @@ void UploadScreenEx(long Position) //////////////////////////////////////////////////////////////////////// -void UploadScreen(long Position) +void UploadScreen(int Position) { short x, y, YStep, XStep, U, s, UStep,ux[4],vy[4]; short xa,xb,ya,yb; @@ -1611,8 +1646,8 @@ void UploadScreen(long Position) gl_vy[2] = gl_vy[3] = s; gl_ux[0] = gl_ux[3] = gl_vy[0] = gl_vy[1] = 0; - SetRenderState((unsigned long)0x01000000); - SetRenderMode((unsigned long)0x01000000, FALSE); // upload texture data + SetRenderState((unsigned int)0x01000000); + SetRenderMode((unsigned int)0x01000000, FALSE); // upload texture data offsetScreenUpload(Position); assignTextureVRAMWrite(); @@ -1677,7 +1712,7 @@ BOOL IsInsideNextScreen(short x, short y, short xoff, short yoff) void cmdSTP(unsigned char * baseAddr) { - unsigned long gdata = ((unsigned long*)baseAddr)[0]; + unsigned int gdata = ((unsigned int*)baseAddr)[0]; STATUSREG&=~0x1800; // clear the necessary bits STATUSREG|=((gdata & 0x03) << 11); // set the current bits @@ -1710,7 +1745,7 @@ void cmdSTP(unsigned char * baseAddr) void cmdTexturePage(unsigned char * baseAddr) { - unsigned long gdata = ((unsigned long*)baseAddr)[0]; + unsigned int gdata = ((unsigned int*)baseAddr)[0]; UpdateGlobalTP((unsigned short)gdata); GlobalTextREST = (gdata&0x00ffffff)>>9; } @@ -1721,9 +1756,9 @@ void cmdTexturePage(unsigned char * baseAddr) void cmdTextureWindow(unsigned char *baseAddr) { - unsigned long gdata = ((unsigned long*)baseAddr)[0]; + unsigned int gdata = ((unsigned int*)baseAddr)[0]; - unsigned long YAlign,XAlign; + unsigned int YAlign,XAlign; ulGPUInfoVals[INFO_TW]=gdata&0xFFFFF; @@ -1757,8 +1792,8 @@ void cmdTextureWindow(unsigned char *baseAddr) // Re-calculate the bit field, because we can't trust what is passed in the data - YAlign = (unsigned long)(32 - (TWin.Position.y1 >> 3)); - XAlign = (unsigned long)(32 - (TWin.Position.x1 >> 3)); + YAlign = (unsigned int)(32 - (TWin.Position.y1 >> 3)); + XAlign = (unsigned int)(32 - (TWin.Position.x1 >> 3)); // Absolute position of the start of the texture window @@ -1930,7 +1965,7 @@ void ClampToPSXScreenOffset(short *x0, short *y0, short *x1, short *y1) void cmdDrawAreaStart(unsigned char * baseAddr) { - unsigned long gdata = ((unsigned long*)baseAddr)[0]; + unsigned int gdata = ((unsigned int*)baseAddr)[0]; drawX = gdata & 0x3ff; // for soft drawing if(drawX>=1024) drawX=1023; @@ -1961,7 +1996,7 @@ void cmdDrawAreaStart(unsigned char * baseAddr) void cmdDrawAreaEnd(unsigned char * baseAddr) { - unsigned long gdata = ((unsigned long*)baseAddr)[0]; + unsigned int gdata = ((unsigned int*)baseAddr)[0]; drawW = gdata & 0x3ff; // for soft drawing if(drawW>=1024) drawW=1023; @@ -1996,7 +2031,7 @@ void cmdDrawAreaEnd(unsigned char * baseAddr) void cmdDrawOffset(unsigned char * baseAddr) { - unsigned long gdata = ((unsigned long*)baseAddr)[0]; + unsigned int gdata = ((unsigned int*)baseAddr)[0]; PreviousPSXDisplay.DrawOffset.x = PSXDisplay.DrawOffset.x = (short)(gdata & 0x7ff); @@ -2206,7 +2241,7 @@ void primStoreImage(unsigned char * baseAddr) void primBlkFill(unsigned char * baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); iDrawnSomething=1; @@ -2246,7 +2281,7 @@ void primBlkFill(unsigned char * baseAddr) b=((GLclampf)BLUE(gpuData[0]))/255.0f; r=((GLclampf)RED(gpuData[0]))/255.0f; - glDisable(GL_SCISSOR_TEST); glError(); + //glDisable(GL_SCISSOR_TEST); glError(); glClearColor(r,g,b,1.0f); glError(); glClear(uiBufferBits); glError(); gl_z=0.0f; @@ -2257,8 +2292,8 @@ void primBlkFill(unsigned char * baseAddr) { bDrawTextured = FALSE; bDrawSmoothShaded = FALSE; - SetRenderState((unsigned long)0x01000000); - SetRenderMode((unsigned long)0x01000000, FALSE); + SetRenderState((unsigned int)0x01000000); + SetRenderMode((unsigned int)0x01000000, FALSE); vertex[0].c.lcol=0xff000000; SETCOL(vertex[0]); if(ly0>pd->DisplayPosition.y) @@ -2279,19 +2314,19 @@ void primBlkFill(unsigned char * baseAddr) } } - glEnable(GL_SCISSOR_TEST); glError(); + //glEnable(GL_SCISSOR_TEST); glError(); } else { bDrawTextured = FALSE; bDrawSmoothShaded = FALSE; - SetRenderState((unsigned long)0x01000000); - SetRenderMode((unsigned long)0x01000000, FALSE); + SetRenderState((unsigned int)0x01000000); + SetRenderMode((unsigned int)0x01000000, FALSE); vertex[0].c.lcol=gpuData[0]|0xff000000; SETCOL(vertex[0]); - glDisable(GL_SCISSOR_TEST); glError(); + //glDisable(GL_SCISSOR_TEST); glError(); PRIMdrawQuad(&vertex[0], &vertex[1], &vertex[2], &vertex[3]); - glEnable(GL_SCISSOR_TEST); glError(); + //glEnable(GL_SCISSOR_TEST); glError(); } } @@ -2456,12 +2491,12 @@ void primMoveImage(unsigned char * baseAddr) } else { - unsigned long *SRCPtr, *DSTPtr; + unsigned int *SRCPtr, *DSTPtr; unsigned short LineOffset; int dx=imageSX>>1; - SRCPtr = (unsigned long *)(psxVuw + (1024*imageY0) + imageX0); - DSTPtr = (unsigned long *)(psxVuw + (1024*imageY1) + imageX1); + SRCPtr = (unsigned int *)(psxVuw + (1024*imageY0) + imageX0); + DSTPtr = (unsigned int *)(psxVuw + (1024*imageY1) + imageX1); LineOffset = 512 - dx; @@ -2562,7 +2597,7 @@ void primMoveImage(unsigned char * baseAddr) void primTileS(unsigned char * baseAddr) { - unsigned long *gpuData = ((unsigned long*)baseAddr); + unsigned int *gpuData = ((unsigned int*)baseAddr); short *sgpuData = ((short *) baseAddr); sprtX = sgpuData[2]; @@ -2627,7 +2662,7 @@ void primTileS(unsigned char * baseAddr) void primTile1(unsigned char * baseAddr) { - unsigned long *gpuData = ((unsigned long*)baseAddr); + unsigned int *gpuData = ((unsigned int*)baseAddr); short *sgpuData = ((short *) baseAddr); sprtX = sgpuData[2]; @@ -2674,7 +2709,7 @@ void primTile1(unsigned char * baseAddr) void primTile8(unsigned char * baseAddr) { - unsigned long *gpuData = ((unsigned long*)baseAddr); + unsigned int *gpuData = ((unsigned int*)baseAddr); short *sgpuData = ((short *) baseAddr); sprtX = sgpuData[2]; @@ -2721,7 +2756,7 @@ void primTile8(unsigned char * baseAddr) void primTile16(unsigned char * baseAddr) { - unsigned long *gpuData = ((unsigned long*)baseAddr); + unsigned int *gpuData = ((unsigned int*)baseAddr); short *sgpuData = ((short *) baseAddr); sprtX = sgpuData[2]; @@ -2768,7 +2803,7 @@ void primTile16(unsigned char * baseAddr) /*void DrawMultiBlur(void) { - long lABR,lDST;float fx,fy; + int lABR,lDST;float fx,fy; lABR=GlobalTextABR; lDST=DrawSemiTrans; @@ -2801,7 +2836,7 @@ void primTile16(unsigned char * baseAddr) void DrawMultiFilterSprite(void) { - long lABR,lDST; + int lABR,lDST; if(bUseMultiPass || DrawSemiTrans || ubOpaqueDraw) { @@ -2832,7 +2867,7 @@ void DrawMultiFilterSprite(void) void primSprt8(unsigned char * baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); short s; @@ -2953,7 +2988,7 @@ void primSprt8(unsigned char * baseAddr) void primSprt16(unsigned char * baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); short s; @@ -3073,7 +3108,7 @@ void primSprt16(unsigned char * baseAddr) void primSprtSRest(unsigned char * baseAddr,unsigned short type) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); short s;unsigned short sTypeRest=0; @@ -3244,7 +3279,7 @@ void primSprtSRest(unsigned char * baseAddr,unsigned short type) void primSprtS(unsigned char * baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); short s;unsigned short sTypeRest=0; @@ -3383,7 +3418,7 @@ void primSprtS(unsigned char * baseAddr) void primPolyF4(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); lx0 = sgpuData[2]; @@ -3478,7 +3513,7 @@ BOOL bCheckFF9G4(unsigned char * baseAddr) if(iFF9Fix==2) { - long labr=GlobalTextABR; + int labr=GlobalTextABR; GlobalTextABR=1; primPolyG4(pFF9G4Cache); GlobalTextABR=labr; @@ -3492,7 +3527,7 @@ BOOL bCheckFF9G4(unsigned char * baseAddr) void primPolyG4(unsigned char * baseAddr) { - unsigned long *gpuData = (unsigned long *)baseAddr; + unsigned int *gpuData = (unsigned int *)baseAddr; short *sgpuData = ((short *) baseAddr); lx0 = sgpuData[2]; @@ -3543,7 +3578,7 @@ void primPolyG4(unsigned char * baseAddr) // cmd: flat shaded Texture3 //////////////////////////////////////////////////////////////////////// -BOOL DoLineCheck(unsigned long * gpuData) +BOOL DoLineCheck(unsigned int * gpuData) { BOOL bQuad=FALSE;short dx,dy; @@ -3710,7 +3745,7 @@ BOOL DoLineCheck(unsigned long * gpuData) void primPolyFT3(unsigned char * baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); lx0 = sgpuData[2]; @@ -4146,7 +4181,7 @@ void RectTexAlign(void) void primPolyFT4(unsigned char * baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); lx0 = sgpuData[2]; @@ -4234,7 +4269,7 @@ void primPolyFT4(unsigned char * baseAddr) void primPolyGT3(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); lx0 = sgpuData[2]; @@ -4343,7 +4378,7 @@ void primPolyGT3(unsigned char *baseAddr) void primPolyG3(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); lx0 = sgpuData[2]; @@ -4388,7 +4423,7 @@ void primPolyG3(unsigned char *baseAddr) void primPolyGT4(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); lx0 = sgpuData[2]; @@ -4508,7 +4543,7 @@ void primPolyGT4(unsigned char *baseAddr) void primPolyF3(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); lx0 = sgpuData[2]; @@ -4552,7 +4587,7 @@ void primPolyF3(unsigned char *baseAddr) void primLineGSkip(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); int iMax=255; int i=2; @@ -4577,7 +4612,7 @@ void primLineGSkip(unsigned char *baseAddr) void primLineGEx(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); int iMax=255; short cx0,cx1,cy0,cy1;int i;BOOL bDraw=TRUE; @@ -4641,7 +4676,7 @@ void primLineGEx(unsigned char *baseAddr) void primLineG2(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); lx0 = sgpuData[2]; @@ -4686,7 +4721,7 @@ void primLineG2(unsigned char *baseAddr) void primLineFSkip(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); int i=2,iMax=255; ly1 = (short)((gpuData[1]>>16) & 0xffff); @@ -4706,7 +4741,7 @@ void primLineFSkip(unsigned char *baseAddr) void primLineFEx(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); int iMax; short cx0,cx1,cy0,cy1;int i; @@ -4764,7 +4799,7 @@ void primLineFEx(unsigned char *baseAddr) void primLineF2(unsigned char *baseAddr) { - unsigned long *gpuData = ((unsigned long *) baseAddr); + unsigned int *gpuData = ((unsigned int *) baseAddr); short *sgpuData = ((short *) baseAddr); lx0 = sgpuData[2];