X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fdfxvideo%2Fgpu.h;h=9ee5f3e6f7a4769e8cbdf70c0f49e9ad2db98dca;hp=740add594d29acff7bdf75bda15f00346efb5ace;hb=0507e4f1e5c28ea0e5214b32ed1f6f571f7b8066;hpb=a96a5eb2d6a6720cc7bba6a30d1c25473f345a89 diff --git a/plugins/dfxvideo/gpu.h b/plugins/dfxvideo/gpu.h index 740add59..9ee5f3e6 100644 --- a/plugins/dfxvideo/gpu.h +++ b/plugins/dfxvideo/gpu.h @@ -104,10 +104,17 @@ #define GETLEs32(X) ((int16_t)GETLE32((uint16_t *)X)) #define GETLE16(X) LE2HOST16(*(uint16_t *)X) -#define GETLE32(X) LE2HOST32(*(uint32_t *)X) +#define GETLE32_(X) LE2HOST32(*(uint32_t *)X) #define GETLE16D(X) ({uint32_t val = GETLE32(X); (val<<16 | val >> 16);}) #define PUTLE16(X, Y) do{*((uint16_t *)X)=HOST2LE16((uint16_t)Y);}while(0) -#define PUTLE32(X, Y) do{*((uint32_t *)X)=HOST2LE16((uint32_t)Y);}while(0) +#define PUTLE32_(X, Y) do{*((uint32_t *)X)=HOST2LE16((uint32_t)Y);}while(0) +#ifdef __arm__ +#define GETLE32(X) (*(uint16_t *)(X)|(((uint16_t *)(X))[1]<<16)) +#define PUTLE32(X, Y) do{uint16_t *p_=(uint16_t *)(X);uint32_t y_=Y;p_[0]=y_;p_[1]=y_>>16;}while(0) +#else +#define GETLE32 GETLE32_ +#define PUTLE32 PUTLE32_ +#endif ///////////////////////////////////////////////////////////////////////////// @@ -171,6 +178,7 @@ typedef struct RECTTAG typedef struct TWINTAG { PSXRect_t Position; + int xmask, ymask; } TWin_t; ///////////////////////////////////////////////////////////////////////////// @@ -200,7 +208,7 @@ typedef struct PSXDISPLAYTAG // draw.c extern int32_t GlobalTextAddrX,GlobalTextAddrY,GlobalTextTP; -extern int32_t GlobalTextREST,GlobalTextABR,GlobalTextPAGE; +extern int32_t GlobalTextABR,GlobalTextPAGE; extern short ly0,lx0,ly1,lx1,ly2,lx2,ly3,lx3; extern long lLowerpart; extern BOOL bCheckMask; @@ -306,4 +314,7 @@ void DoClearFrontBuffer(void); unsigned long ulInitDisplay(void); void CloseDisplay(void); +struct rearmed_cbs; +extern const struct rearmed_cbs *rcbs; + #endif