X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fgpu-gles%2FgpuTexture.c;h=2f96482ae8435e87073f7d48ee3cb3b6c7b772e2;hp=d047a62f22a3093ef050bb87302443d7800f7ed5;hb=edee4a7fc46dd881c2a45d14ce569fbfd8336516;hpb=ce879073e4f228deec8bec5db8a2ff640636c88f diff --git a/plugins/gpu-gles/gpuTexture.c b/plugins/gpu-gles/gpuTexture.c index d047a62f..2f96482a 100644 --- a/plugins/gpu-gles/gpuTexture.c +++ b/plugins/gpu-gles/gpuTexture.c @@ -67,42 +67,15 @@ #define _IN_TEXTURE -#ifdef _WINDOWS -#include "stdafx.h" - -#include "externals.h" -#include "texture.h" -#include "gpu.h" -#include "prim.h" -#else #include "gpuStdafx.h" -#ifdef __NANOGL__ -#include -#include -#else -#ifdef SOFT_LINKAGE -#pragma softfp_linkage -#endif -#ifdef MAEMO_CHANGES - #include - #include - #include - #include -#else - #include // for opengl es types - #include -#endif -#ifdef SOFT_LINKAGE -#pragma no_softfp_linkage -#endif -#endif + #include "gpuDraw.h" //#include "plugins.h" #include "gpuExternals.h" #include "gpuTexture.h" #include "gpuPlugin.h" #include "gpuPrim.h" -#endif + #define CLUTCHK 0x00060000 #define CLUTSHIFT 17 @@ -117,11 +90,7 @@ GLuint gTexFrameName=0; int iTexGarbageCollection=1; unsigned long dwTexPageComp=0; int iVRamSize=0; -#ifdef _WINDOWS -int iClampType=GL_CLAMP; -#else int iClampType=GL_CLAMP_TO_EDGE; -#endif int iFilter = GL_LINEAR; void (*LoadSubTexFn) (int,int,short,short); unsigned long (*PalTexturedColourFn) (unsigned long); @@ -158,7 +127,7 @@ unsigned long (*PalTexturedColourFn) (unsigned long); //////////////////////////////////////////////////////////////////////// -u8 * CheckTextureInSubSCache(long TextureMode,unsigned long GivenClutId,unsigned short * pCache); +unsigned char * CheckTextureInSubSCache(long TextureMode,unsigned long GivenClutId,unsigned short * pCache); void LoadSubTexturePageSort(int pageid, int mode, short cx, short cy); void LoadPackedSubTexturePageSort(int pageid, int mode, short cx, short cy); void DefineSubTextureSort(void); @@ -185,10 +154,6 @@ unsigned short (*PTCF[2]) (unsigned short); // texture cache implementation //////////////////////////////////////////////////////////////////////// -#ifdef _WINDOWS -#pragma pack(1) -#endif - // "texture window" cache entry typedef struct textureWndCacheEntryTag @@ -208,15 +173,12 @@ typedef struct textureSubCacheEntryTagS { unsigned long ClutID; EXLong pos; - u8 posTX; - u8 posTY; - u8 cTexID; - u8 Opaque; + unsigned char posTX; + unsigned char posTY; + unsigned char cTexID; + unsigned char Opaque; } textureSubCacheEntryS; -#ifdef _WINDOWS -#pragma pack() -#endif //--------------------------------------------- @@ -239,7 +201,7 @@ int iTexWndLimit=MAXWNDTEXCACHE/2; GLubyte * texturepart=NULL; GLubyte * texturebuffer=NULL; unsigned long g_x1,g_y1,g_x2,g_y2; -u8 ubOpaqueDraw=0; +unsigned char ubOpaqueDraw=0; unsigned short MAXTPAGES = 32; unsigned short CLUTMASK = 0x7fff; @@ -481,7 +443,7 @@ void CheckTextureMemory(void) { GLboolean b;GLboolean * bDetail; int i,iCnt,iRam=iVRamSize*1024*1024; - int iTSize;s8 * p; + int iTSize;char * p; if(iVRamSize) @@ -510,9 +472,12 @@ void CheckTextureMemory(void) return; } +#if 1 + iSortTexCnt=MAXSORTTEX; +#else // below vram detector supposedly crashes some drivers iTSize=256; - p=(s8 *)malloc(iTSize*iTSize*4); + p=(char *)malloc(iTSize*iTSize*4); iCnt=0; glGenTextures(MAXSORTTEX,uiStexturePage); @@ -546,6 +511,7 @@ void CheckTextureMemory(void) else iSortTexCnt=iCnt-3+min(1,0); // place for menu&texwnd if(iSortTexCnt<8) iSortTexCnt=8; +#endif } //////////////////////////////////////////////////////////////////////// @@ -608,6 +574,7 @@ void CleanupTextureStore() int i,j;textureWndCacheEntry * tsx; //----------------------------------------------------// glBindTexture(GL_TEXTURE_2D,0); + glError(); //----------------------------------------------------// free(texturepart); // free tex part texturepart=0; @@ -622,34 +589,41 @@ void CleanupTextureStore() { if(tsx->texname) // -> some tex? glDeleteTextures(1,&tsx->texname); // --> delete it + glError(); } iMaxTexWnds=0; // no more tex wnds //----------------------------------------------------// if(gTexMovieName!=0) // some movie tex? glDeleteTextures(1, &gTexMovieName); // -> delete it + glError(); gTexMovieName=0; // no more movie tex //----------------------------------------------------// if(gTexFrameName!=0) // some 15bit framebuffer tex? glDeleteTextures(1, &gTexFrameName); // -> delete it + glError(); gTexFrameName=0; // no more movie tex //----------------------------------------------------// if(gTexBlurName!=0) // some 15bit framebuffer tex? glDeleteTextures(1, &gTexBlurName); // -> delete it + glError(); gTexBlurName=0; // no more movie tex //----------------------------------------------------// for(i=0;i<3;i++) // -> loop for(j=0;j clean mem + pscSubtexStore[i][j]=0; } for(i=0;i tex used ? { glDeleteTextures(1,&uiStexturePage[i]); + glError(); uiStexturePage[i]=0; // --> delete it } free(pxSsubtexLeft[i]); // -> clean mem + pxSsubtexLeft[i]=0; } //----------------------------------------------------// } @@ -667,7 +641,7 @@ void ResetTextureArea(BOOL bDelTex) dwTexPageComp=0; //----------------------------------------------------// - if(bDelTex) {glBindTexture(GL_TEXTURE_2D,0);gTexName=0;} + if(bDelTex) {glBindTexture(GL_TEXTURE_2D,0); glError();gTexName=0;} //----------------------------------------------------// tsx=wcWndtexStore; for(i=0;iused=0; if(bDelTex && tsx->texname) { - glDeleteTextures(1,&tsx->texname); + glDeleteTextures(1,&tsx->texname); glError(); tsx->texname=0; } } @@ -697,7 +671,7 @@ void ResetTextureArea(BOOL bDelTex) lu=pxSsubtexLeft[i]; lu->l=0; if(bDelTex && uiStexturePage[i]) - {glDeleteTextures(1,&uiStexturePage[i]);uiStexturePage[i]=0;} + {glDeleteTextures(1,&uiStexturePage[i]); glError();uiStexturePage[i]=0;} } } @@ -771,7 +745,7 @@ void InvalidateWndTextureArea(long X,long Y,long W, long H) void MarkFree(textureSubCacheEntryS * tsx) { EXLong * ul, * uls; - int j,iMax;u8 x1,y1,dx,dy; + int j,iMax;unsigned char x1,y1,dx,dy; uls=pxSsubtexLeft[tsx->cTexID]; iMax=uls->l;ul=uls+1; @@ -919,21 +893,25 @@ void DefineTextureWnd(void) { if(gTexName==0) glGenTextures(1, &gTexName); - + glError(); glBindTexture(GL_TEXTURE_2D, gTexName); - + glError(); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - + glError(); { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); + glError(); } glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA, TWin.Position.x1, TWin.Position.y1, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart); + glError(); + //LOGE("DefineTextureWnd x:%d y:%d",TWin.Position.x1,TWin.Position.y1); + } //////////////////////////////////////////////////////////////////////// @@ -945,7 +923,7 @@ void LoadStretchPackedWndTexturePage(int pageid, int mode, short cx, short cy) unsigned long start,row,column,j,sxh,sxm,ldx,ldy,ldxo; unsigned int palstart; unsigned short *px,*pa,*ta; - u8 *cSRCPtr,*cOSRCPtr; + unsigned char *cSRCPtr,*cOSRCPtr; unsigned short *wSRCPtr,*wOSRCPtr; unsigned long LineOffset;unsigned short s; int pmult=pageid/16; @@ -1137,7 +1115,7 @@ void LoadStretchWndTexturePage(int pageid, int mode, short cx, short cy) unsigned long start,row,column,j,sxh,sxm,ldx,ldy,ldxo,s; unsigned int palstart; unsigned long *px,*pa,*ta; - u8 *cSRCPtr,*cOSRCPtr; + unsigned char *cSRCPtr,*cOSRCPtr; unsigned short *wSRCPtr,*wOSRCPtr; unsigned long LineOffset; int pmult=pageid/16; @@ -1348,7 +1326,7 @@ void LoadPackedWndTexturePage(int pageid, int mode, short cx, short cy) unsigned long start,row,column,j,sxh,sxm; unsigned int palstart; unsigned short *px,*pa,*ta; - u8 *cSRCPtr; + unsigned char *cSRCPtr; unsigned short *wSRCPtr; unsigned long LineOffset; int pmult=pageid/16; @@ -1490,7 +1468,7 @@ void LoadWndTexturePage(int pageid, int mode, short cx, short cy) unsigned long start,row,column,j,sxh,sxm; unsigned int palstart; unsigned long *px,*pa,*ta; - u8 *cSRCPtr; + unsigned char *cSRCPtr; unsigned short *wSRCPtr; unsigned long LineOffset; int pmult=pageid/16; @@ -1676,21 +1654,23 @@ void DefinePalTextureWnd(void) { if(gTexName==0) glGenTextures(1, &gTexName); - + glError(); glBindTexture(GL_TEXTURE_2D, gTexName); - + glError(); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - + glError(); { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); } - + glError(); glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA, TWin.Position.x1, TWin.Position.y1, 0, GL_RGBA, GL_UNSIGNED_BYTE,texturepart); + glError(); + //LOGE("DefinePalTextureWnd x:%d y:%d",TWin.Position.x1,TWin.Position.y1); } /////////////////////////////////////////////////////// @@ -1698,12 +1678,12 @@ void DefinePalTextureWnd(void) void LoadPalWndTexturePage(int pageid, int mode, short cx, short cy) { unsigned long start,row,column,j,sxh,sxm; - u8 *ta; - u8 *cSRCPtr; + unsigned char *ta; + unsigned char *cSRCPtr; unsigned long LineOffset; int pmult=pageid/16; - ta=(u8 *)texturepart; + ta=(unsigned char *)texturepart; switch(mode) { @@ -1758,15 +1738,15 @@ void LoadPalWndTexturePage(int pageid, int mode, short cx, short cy) void LoadStretchPalWndTexturePage(int pageid, int mode, short cx, short cy) { unsigned long start,row,column,j,sxh,sxm,ldx,ldy,ldxo; - u8 *ta,s; - u8 *cSRCPtr,*cOSRCPtr; + unsigned char *ta,s; + unsigned char *cSRCPtr,*cOSRCPtr; unsigned long LineOffset; int pmult=pageid/16; ldxo=TWin.Position.x1-TWin.OPosition.x1; ldy =TWin.Position.y1-TWin.OPosition.y1; - ta=(u8 *)texturepart; + ta=(unsigned char *)texturepart; switch(mode) { @@ -1937,31 +1917,32 @@ void DefinePackedTextureMovie(void) { if(gTexMovieName==0) { - glGenTextures(1, &gTexMovieName); + glEnable(GL_TEXTURE_2D); + glGenTextures(1, &gTexMovieName); glError(); gTexName=gTexMovieName; - glBindTexture(GL_TEXTURE_2D, gTexName); + glBindTexture(GL_TEXTURE_2D, gTexName); glError(); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError(); if(!bUseFastMdec) { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glError(); } else { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError(); } glTexImage2D(GL_TEXTURE_2D, 0, //giWantedRGBA, GL_RGBA, - 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart); + 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError(); } else { - gTexName=gTexMovieName;glBindTexture(GL_TEXTURE_2D, gTexName); + gTexName=gTexMovieName;glBindTexture(GL_TEXTURE_2D, gTexName); glError(); } glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, @@ -1969,7 +1950,9 @@ void DefinePackedTextureMovie(void) (xrMovieArea.y1-xrMovieArea.y0), GL_RGBA, GL_UNSIGNED_SHORT, - texturepart); + texturepart); glError(); + //LOGE("DefinePackedTextureMovie x:%d y:%d",(xrMovieArea.x1-xrMovieArea.x0),(xrMovieArea.y1-xrMovieArea.y0)); + } //////////////////////////////////////////////////////////////////////// @@ -1978,35 +1961,36 @@ void DefineTextureMovie(void) { if(gTexMovieName==0) { - glGenTextures(1, &gTexMovieName); + glGenTextures(1, &gTexMovieName); glError(); gTexName=gTexMovieName; - glBindTexture(GL_TEXTURE_2D, gTexName); + glBindTexture(GL_TEXTURE_2D, gTexName); glError(); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError(); if(!bUseFastMdec) { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glError(); } else { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError(); } - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError(); } else { - gTexName=gTexMovieName;glBindTexture(GL_TEXTURE_2D, gTexName); + gTexName=gTexMovieName;glBindTexture(GL_TEXTURE_2D, gTexName); glError(); } glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, (xrMovieArea.x1-xrMovieArea.x0), (xrMovieArea.y1-xrMovieArea.y0), - GL_RGBA, GL_UNSIGNED_BYTE, texturepart); + GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError(); + //LOGE("DefineTextureMovie x:%d y:%d",(xrMovieArea.x1-xrMovieArea.x0),(xrMovieArea.y1-xrMovieArea.y0)); } //////////////////////////////////////////////////////////////////////// @@ -2025,7 +2009,7 @@ void DefineTextureMovie(void) // movie texture: load //////////////////////////////////////////////////////////////////////// -u8 * LoadDirectMovieFast(void) +unsigned char * LoadDirectMovieFast(void) { long row,column; unsigned int startxy; @@ -2034,13 +2018,13 @@ u8 * LoadDirectMovieFast(void) if(PSXDisplay.RGB24) { - u8 * pD; + unsigned char * pD; startxy=((1024)*xrMovieArea.y0)+xrMovieArea.x0; for(column=xrMovieArea.y0;column1280 || iResY>1024) iFTex=2048; else if(iResX>640 || iResY>480) iFTex=1024; else iFTex=512; - glGenTextures(1, &gTexFrameName); + glGenTextures(1, &gTexFrameName); glError(); gTexName=gTexFrameName; - glBindTexture(GL_TEXTURE_2D, gTexName); + glBindTexture(GL_TEXTURE_2D, gTexName); glError(); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError(); - p=(s8 *)malloc(iFTex*iFTex*4); + p=(char *)malloc(iFTex*iFTex*4); memset(p,0,iFTex*iFTex*4); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, iFTex, iFTex, 0, GL_RGBA, GL_UNSIGNED_BYTE, p); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, iFTex, iFTex, 0, GL_RGBA, GL_UNSIGNED_BYTE, p); glError(); free(p); glGetError(); @@ -2372,9 +2357,9 @@ GLuint Fake15BitTexture(void) else { gTexName=gTexFrameName; - glBindTexture(GL_TEXTURE_2D, gTexName); + glBindTexture(GL_TEXTURE_2D, gTexName); glError(); } - + //LOGE("Fake15BitTexture x:%d y:%d",iFTex,iFTex); x1+=PreviousPSXDisplay.Range.x0; y1+=PreviousPSXDisplay.Range.y0; @@ -2446,14 +2431,14 @@ GLuint Fake15BitTexture(void) iYAdjust, rSrc.left+rRatioRect.left, iResY-rSrc.bottom-rRatioRect.top, - x1,y1); + x1,y1); glError(); if(glGetError()) { - s8 * p=(s8 *)malloc(iFTex*iFTex*4); + char * p=(char *)malloc(iFTex*iFTex*4); memset(p,0,iFTex*iFTex*4); glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, iFTex, iFTex, - GL_RGBA, GL_UNSIGNED_BYTE, p); + GL_RGBA, GL_UNSIGNED_BYTE, p); glError(); free(p); } @@ -2484,7 +2469,7 @@ void LoadSubTexturePageSort(int pageid, int mode, short cx, short cy) unsigned long start,row,column,j,sxh,sxm; unsigned int palstart; unsigned long *px,*pa,*ta; - u8 *cSRCPtr; + unsigned char *cSRCPtr; unsigned short *wSRCPtr; unsigned long LineOffset; unsigned long x2a,xalign=0; @@ -2812,7 +2797,7 @@ void LoadPackedSubTexturePageSort(int pageid, int mode, short cx, short cy) unsigned long start,row,column,j,sxh,sxm; unsigned int palstart; unsigned short *px,*pa,*ta; - u8 *cSRCPtr; + unsigned char *cSRCPtr; unsigned short *wSRCPtr; unsigned long LineOffset; unsigned long x2a,xalign=0; @@ -3128,8 +3113,8 @@ void LoadPackedSubTexturePageSort(int pageid, int mode, short cx, short cy) #define Q_INTERPOLATE8(A, B, C, D) (((((A & qcolorMask8) >> 2) + ((B & qcolorMask8) >> 2) + ((C & qcolorMask8) >> 2) + ((D & qcolorMask8) >> 2) + ((((A & qlowpixelMask8) + (B & qlowpixelMask8) + (C & qlowpixelMask8) + (D & qlowpixelMask8)) >> 2) & qlowpixelMask8))|((((A&0xFF000000)==0x50000000)?0x50000000:(((B&0xFF000000)==0x50000000)?0x50000000:(((C&0xFF000000)==0x50000000)?0x50000000:(((D&0xFF000000)==0x50000000)?0x50000000:(((A&0xFF000000)==0x00000000)?0x00000000:(((B&0xFF000000)==0x00000000)?0x00000000:(((C&0xFF000000)==0x00000000)?0x00000000:(((D&0xFF000000)==0x00000000)?0x00000000:0xFF000000))))))))))) -void Super2xSaI_ex8_Ex(u8 *srcPtr, DWORD srcPitch, - u8 *dstBitmap, int width, int height) +void Super2xSaI_ex8_Ex(unsigned char *srcPtr, DWORD srcPitch, + unsigned char *dstBitmap, int width, int height) { DWORD dstPitch = srcPitch * 2; DWORD line; @@ -3273,8 +3258,8 @@ void Super2xSaI_ex8_Ex(u8 *srcPtr, DWORD srcPitch, } -void Super2xSaI_ex8(u8 *srcPtr, DWORD srcPitch, - u8 *dstBitmap, int width, int height) +void Super2xSaI_ex8(unsigned char *srcPtr, DWORD srcPitch, + unsigned char *dstBitmap, int width, int height) { DWORD dstPitch = srcPitch * 2; DWORD line; @@ -3452,29 +3437,30 @@ void DefineSubTextureSortHiRes(void) if(!gTexName) { - glGenTextures(1, &gTexName); - glBindTexture(GL_TEXTURE_2D, gTexName); + glGenTextures(1, &gTexName); glError(); + glBindTexture(GL_TEXTURE_2D, gTexName); glError(); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError(); if(iFilterType) { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glError(); } else { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError(); } - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 512, 512, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturebuffer); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 512, 512, 0, GL_RGBA, GL_UNSIGNED_BYTE, texturebuffer); glError(); } - else glBindTexture(GL_TEXTURE_2D, gTexName); + else glBindTexture(GL_TEXTURE_2D, gTexName); glError(); glTexSubImage2D(GL_TEXTURE_2D, 0, XTexS<<1, YTexS<<1, DXTexS<<1, DYTexS<<1, - GL_RGBA, GL_UNSIGNED_BYTE, texturebuffer); + GL_RGBA, GL_UNSIGNED_BYTE, texturebuffer); glError(); + //LOGE("DefineSubTextureSortHiRes x:%d y:%d",XTexS<<1,YTexS<<1); } ///////////////////////////////////////////////////////////////////////////// @@ -3484,29 +3470,30 @@ void DefineSubTextureSort(void) if(!gTexName) { - glGenTextures(1, &gTexName); - glBindTexture(GL_TEXTURE_2D, gTexName); + glGenTextures(1, &gTexName); glError(); + glBindTexture(GL_TEXTURE_2D, gTexName); glError(); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, iClampType); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, iClampType); glError(); if(iFilterType) { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glError(); } else { - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, iFilter); glError(); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, iFilter); glError(); } - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0,GL_RGBA, GL_UNSIGNED_BYTE, texturepart); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0,GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError(); } - else glBindTexture(GL_TEXTURE_2D, gTexName); + else glBindTexture(GL_TEXTURE_2D, gTexName); glError(); glTexSubImage2D(GL_TEXTURE_2D, 0, XTexS, YTexS, DXTexS, DYTexS, - GL_RGBA, GL_UNSIGNED_BYTE, texturepart); + GL_RGBA, GL_UNSIGNED_BYTE, texturepart); glError(); + //LOGE("DefineSubTextureSort x:%d y:%d w:%d h:%d",XTexS,YTexS,DXTexS,DYTexS); } ///////////////////////////////////////////////////////////////////////////// @@ -3567,15 +3554,15 @@ void DoTexGarbageCollection(void) ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// -u8 * CheckTextureInSubSCache(long TextureMode,unsigned long GivenClutId,unsigned short * pCache) +unsigned char * CheckTextureInSubSCache(long TextureMode,unsigned long GivenClutId,unsigned short * pCache) { textureSubCacheEntryS * tsx, * tsb, *tsg;//, *tse=NULL; int i,iMax;EXLong npos; - u8 cx,cy; + unsigned char cx,cy; int iC,j,k;unsigned long rx,ry,mx,my; EXLong * ul=0, * uls; EXLong rfree; - u8 cXAdj,cYAdj; + unsigned char cXAdj,cYAdj; npos.l=*((unsigned long *)&gl_ux[4]); @@ -3879,7 +3866,7 @@ BOOL GetCompressTexturePlace(textureSubCacheEntryS * tsx) { int i,j,k,iMax,iC;unsigned long rx,ry,mx,my; EXLong * ul=0, * uls, rfree; - u8 cXAdj=1,cYAdj=1; + unsigned char cXAdj=1,cYAdj=1; rx=(int)tsx->pos.c[2]-(int)tsx->pos.c[3]; ry=(int)tsx->pos.c[0]-(int)tsx->pos.c[1]; @@ -4147,11 +4134,11 @@ void CompressTextureSpace(void) GLuint SelectSubTextureS(long TextureMode, unsigned long GivenClutId) { - u8 * OPtr;unsigned short iCache;short cx,cy; + unsigned char * OPtr;unsigned short iCache;short cx,cy; // sort sow/tow infos for fast access - u8 ma1,ma2,mi1,mi2; + unsigned char ma1,ma2,mi1,mi2; if(gl_ux[0]>gl_ux[1]) {mi1=gl_ux[1];ma1=gl_ux[0];} else {mi1=gl_ux[0];ma1=gl_ux[1];} if(gl_ux[2]>gl_ux[3]) {mi2=gl_ux[3];ma2=gl_ux[2];}