minimal working gtk-less build
[pcsx_rearmed.git] / plugins / peopsxgl / externals.h
CommitLineData
ef79bbde
P
1/***************************************************************************\r
2 external.h - description\r
3 -------------------\r
4 begin : Sun Mar 08 2009\r
5 copyright : (C) 1999-2009 by Pete Bernert\r
6 web : www.pbernert.com \r
7 ***************************************************************************/\r
8\r
9/***************************************************************************\r
10 * *\r
11 * This program is free software; you can redistribute it and/or modify *\r
12 * it under the terms of the GNU General Public License as published by *\r
13 * the Free Software Foundation; either version 2 of the License, or *\r
14 * (at your option) any later version. See also the license.txt file for *\r
15 * additional informations. *\r
16 * *\r
17 ***************************************************************************/\r
18\r
19#define MIRROR_TEST 1\r
20#define SCISSOR_TEST 1\r
21\r
22// for own sow/tow scaling\r
23#define OWNSCALE 1\r
24\r
25#define CLUTUSED 0x80000000\r
26\r
27#define SETCOL(x) if(x.c.lcol!=ulOLDCOL) {ulOLDCOL=x.c.lcol;glColor4ubv(x.c.col);} \r
28#define SETPCOL(x) if(x->c.lcol!=ulOLDCOL) {ulOLDCOL=x->c.lcol;glColor4ubv(x->c.col);}\r
29\r
30#define GL_TO_EDGE_CLAMP 0x812F\r
31\r
32#define INFO_TW 0\r
33#define INFO_DRAWSTART 1\r
34#define INFO_DRAWEND 2\r
35#define INFO_DRAWOFF 3\r
36\r
37#define SIGNSHIFT 21\r
38#define CHKMAX_X 1024\r
39#define CHKMAX_Y 512\r
40\r
41// GPU STATUS REGISTER bit values (c) Lewpy\r
42\r
43#define DR_NORMAL 0\r
44#define DR_VRAMTRANSFER 1\r
45\r
46#define GPUSTATUS_ODDLINES 0x80000000\r
47#define GPUSTATUS_DMABITS 0x60000000 // Two bits\r
48#define GPUSTATUS_READYFORCOMMANDS 0x10000000\r
49#define GPUSTATUS_READYFORVRAM 0x08000000\r
50#define GPUSTATUS_IDLE 0x04000000\r
51#define GPUSTATUS_DISPLAYDISABLED 0x00800000\r
52#define GPUSTATUS_INTERLACED 0x00400000\r
53#define GPUSTATUS_RGB24 0x00200000\r
54#define GPUSTATUS_PAL 0x00100000\r
55#define GPUSTATUS_DOUBLEHEIGHT 0x00080000\r
56#define GPUSTATUS_WIDTHBITS 0x00070000 // Three bits\r
57#define GPUSTATUS_MASKENABLED 0x00001000\r
58#define GPUSTATUS_MASKDRAWN 0x00000800\r
59#define GPUSTATUS_DRAWINGALLOWED 0x00000400\r
60#define GPUSTATUS_DITHER 0x00000200\r
61\r
62#define STATUSREG lGPUstatusRet\r
63\r
64#define GPUIsBusy (STATUSREG &= ~GPUSTATUS_IDLE)\r
65#define GPUIsIdle (STATUSREG |= GPUSTATUS_IDLE)\r
66\r
67#define GPUIsNotReadyForCommands (STATUSREG &= ~GPUSTATUS_READYFORCOMMANDS)\r
68#define GPUIsReadyForCommands (STATUSREG |= GPUSTATUS_READYFORCOMMANDS)\r
69\r
70#define KEY_RESETTEXSTORE 1\r
71#define KEY_SHOWFPS 2\r
72#define KEY_RESETOPAQUE 4\r
73#define KEY_RESETDITHER 8\r
74#define KEY_RESETFILTER 16\r
75#define KEY_RESETADVBLEND 32\r
76#define KEY_BLACKWHITE 64\r
77#define KEY_TOGGLEFBTEXTURE 128\r
78#define KEY_STEPDOWN 256\r
79#define KEY_TOGGLEFBREAD 512\r
80\r
81#define FALSE 0\r
82#define TRUE 1\r
83#define BOOL unsigned short\r
84#define bool unsigned short\r
85#define LOWORD(l) ((unsigned short)(l))\r
86#define HIWORD(l) ((unsigned short)(((uint32_t)(l) >> 16) & 0xFFFF))\r
87#define max(a,b) (((a) > (b)) ? (a) : (b))\r
88#define min(a,b) (((a) < (b)) ? (a) : (b))\r
89#define DWORD uint32_t\r
90\r
91typedef struct RECTTAG\r
92{\r
93 int left;\r
94 int top;\r
95 int right;\r
96 int bottom;\r
97}RECT;\r
98\r
99typedef struct VRAMLOADTAG\r
100{\r
101 short x;\r
102 short y;\r
103 short Width;\r
104 short Height;\r
105 short RowsRemaining;\r
106 short ColsRemaining;\r
107 unsigned short *ImagePtr;\r
108} VRAMLoad_t;\r
109\r
110typedef struct PSXPOINTTAG\r
111{\r
112 int x;\r
113 int y;\r
114} PSXPoint_t;\r
115\r
116typedef struct PSXSPOINTTAG\r
117{\r
118 short x;\r
119 short y;\r
120} PSXSPoint_t;\r
121\r
122typedef struct PSXRECTTAG\r
123{\r
124 short x0;\r
125 short x1;\r
126 short y0;\r
127 short y1;\r
128} PSXRect_t;\r
129\r
130typedef struct TWINTAG\r
131{\r
132 PSXRect_t Position;\r
133 PSXRect_t OPosition;\r
134 PSXPoint_t TextureSize;\r
135 float UScaleFactor;\r
136 float VScaleFactor;\r
137} TWin_t;\r
138\r
139typedef struct PSXDISPLAYTAG\r
140{\r
141 PSXPoint_t DisplayModeNew;\r
142 PSXPoint_t DisplayMode;\r
143 PSXPoint_t DisplayPosition;\r
144 PSXPoint_t DisplayEnd;\r
145 \r
146 int Double;\r
147 int Height;\r
148 int PAL;\r
149 int InterlacedNew;\r
150 int Interlaced;\r
151 int InterlacedTest;\r
152 int RGB24New;\r
153 int RGB24;\r
154 PSXSPoint_t DrawOffset;\r
155 PSXRect_t DrawArea;\r
156 PSXPoint_t GDrawOffset;\r
157 PSXPoint_t CumulOffset;\r
158 int Disabled;\r
159 PSXRect_t Range;\r
160} PSXDisplay_t;\r
161\r
162typedef struct OGLVertexTag \r
163{\r
164 GLfloat x;\r
165 GLfloat y;\r
166 GLfloat z;\r
167\r
168 GLfloat sow;\r
169 GLfloat tow;\r
170\r
171 union COLTAG\r
172 {\r
173 unsigned char col[4];\r
174 unsigned int lcol;\r
175 } c;\r
176} OGLVertex;\r
177\r
178typedef union EXShortTag\r
179{\r
180 unsigned char c[2];\r
181 unsigned short s;\r
182} EXShort;\r
183\r
184typedef union EXLongTag\r
185{\r
186 unsigned char c[4];\r
187 unsigned int l;\r
188 EXShort s[2];\r
189} EXLong;\r
190\r
191#ifndef _IN_CFG\r
192\r
193extern char *pConfigFile;\r
194\r
195#endif\r
196\r
197#ifndef _IN_DRAW\r
198\r
199extern int iResX;\r
200extern int iResY;\r
201extern BOOL bKeepRatio;\r
202extern RECT rRatioRect;\r
203extern BOOL bSnapShot;\r
204extern BOOL bSmallAlpha;\r
205extern BOOL bOpaquePass;\r
206extern BOOL bAdvancedBlend;\r
207extern BOOL bUseLines;\r
208extern int iTexQuality;\r
209extern BOOL bUseAntiAlias;\r
210extern BOOL bGLExt;\r
211extern BOOL bGLFastMovie;\r
212extern BOOL bGLSoft;\r
213extern BOOL bGLBlend;\r
214\r
215extern PFNGLBLENDEQU glBlendEquationEXTEx;\r
216extern PFNGLCOLORTABLEEXT glColorTableEXTEx;\r
217\r
218extern unsigned char gl_ux[8];\r
219extern unsigned char gl_vy[8];\r
220extern OGLVertex vertex[4];\r
221extern short sprtY,sprtX,sprtH,sprtW;\r
222extern BOOL bIsFirstFrame;\r
223extern int iWinSize;\r
224extern int iZBufferDepth;\r
225extern GLbitfield uiBufferBits;\r
226extern int iUseMask;\r
227extern int iSetMask;\r
228extern int iDepthFunc;\r
229extern BOOL bCheckMask;\r
230extern unsigned short sSetMask;\r
231extern uint32_t lSetMask;\r
232extern int iShowFPS;\r
233extern BOOL bSetClip;\r
234extern int iForceVSync;\r
235extern int iUseExts;\r
236extern int iUsePalTextures;\r
237extern GLuint gTexScanName;\r
238\r
239#endif\r
240\r
241#ifndef _IN_SOFT\r
242\r
243extern int GlobalTextAddrX,GlobalTextAddrY,GlobalTextTP;\r
244extern int GlobalTextREST,GlobalTextABR,GlobalTextPAGE;\r
245extern short ly0,lx0,ly1,lx1,ly2,lx2,ly3,lx3;\r
246extern short g_m1;\r
247extern short g_m2;\r
248extern short g_m3;\r
249extern short DrawSemiTrans;\r
250\r
251#endif\r
252\r
253#ifndef _IN_PRIMDRAW\r
254\r
255extern BOOL bNeedUploadTest;\r
256extern BOOL bNeedUploadAfter;\r
257extern BOOL bTexEnabled;\r
258extern BOOL bBlendEnable;\r
259extern BOOL bDrawDither;\r
260extern int iFilterType; \r
261extern BOOL bFullVRam;\r
262extern BOOL bUseMultiPass;\r
263extern int iOffscreenDrawing;\r
264extern BOOL bOldSmoothShaded;\r
265extern BOOL bUsingTWin;\r
266extern BOOL bUsingMovie;\r
267extern PSXRect_t xrMovieArea;\r
268extern PSXRect_t xrUploadArea;\r
269extern PSXRect_t xrUploadAreaIL;\r
270extern PSXRect_t xrUploadAreaRGB24;\r
271extern GLuint gTexName;\r
272extern BOOL bDrawNonShaded;\r
273extern BOOL bDrawMultiPass;\r
274extern GLubyte ubGloColAlpha;\r
275extern GLubyte ubGloAlpha;\r
276extern short sSprite_ux2;\r
277extern short sSprite_vy2;\r
278extern BOOL bRenderFrontBuffer;\r
279extern uint32_t ulOLDCOL;\r
280extern uint32_t ulClutID;\r
281extern void (*primTableJ[256])(unsigned char *);\r
282extern void (*primTableSkip[256])(unsigned char *);\r
283extern unsigned short usMirror;\r
284extern uint32_t dwCfgFixes;\r
285extern uint32_t dwActFixes;\r
286extern uint32_t dwEmuFixes;\r
287extern BOOL bUseFixes;\r
288extern int iSpriteTex;\r
289extern int iDrawnSomething;\r
290\r
291extern int drawX;\r
292extern int drawY;\r
293extern int drawW;\r
294extern int drawH;\r
295extern short sxmin;\r
296extern short sxmax;\r
297extern short symin;\r
298extern short symax;\r
299\r
300#endif\r
301\r
302#ifndef _IN_TEXTURE\r
303\r
304extern unsigned char ubOpaqueDraw;\r
305extern GLint giWantedRGBA;\r
306extern GLint giWantedFMT;\r
307extern GLint giWantedTYPE;\r
308extern void (*LoadSubTexFn) (int,int,short,short);\r
309extern int GlobalTexturePage;\r
310extern uint32_t (*TCF[]) (uint32_t);\r
311extern unsigned short (*PTCF[]) (unsigned short);\r
312extern uint32_t (*PalTexturedColourFn) (uint32_t);\r
313extern BOOL bUseFastMdec;\r
314extern BOOL bUse15bitMdec;\r
315extern int iFrameTexType;\r
316extern int iFrameReadType;\r
317extern int iClampType;\r
318extern int iSortTexCnt;\r
319extern BOOL bFakeFrontBuffer; \r
320extern GLuint gTexFrameName;\r
321extern GLuint gTexBlurName;\r
322extern int iVRamSize;\r
323extern int iTexGarbageCollection;\r
324extern int iFTexA;\r
325extern int iFTexB;\r
326extern int iHiResTextures;\r
327extern BOOL bIgnoreNextTile;\r
328\r
329#endif\r
330\r
331#ifndef _IN_GPU\r
332\r
333extern VRAMLoad_t VRAMWrite;\r
334extern VRAMLoad_t VRAMRead;\r
335extern int iDataWriteMode;\r
336extern int iDataReadMode;\r
337extern int iColDepth;\r
338extern BOOL bChangeRes;\r
339extern BOOL bWindowMode;\r
340extern char szDispBuf[];\r
341extern char szGPUKeys[];\r
342extern PSXDisplay_t PSXDisplay;\r
343extern PSXDisplay_t PreviousPSXDisplay;\r
344extern uint32_t ulKeybits;\r
345extern TWin_t TWin;\r
346extern BOOL bDisplayNotSet;\r
347extern int lGPUstatusRet;\r
348extern short imageX0,imageX1;\r
349extern short imageY0,imageY1;\r
350extern int lClearOnSwap,lClearOnSwapColor;\r
351extern unsigned char *psxVub;\r
352extern signed char *psxVsb;\r
353extern unsigned short *psxVuw;\r
354extern signed short *psxVsw;\r
355extern uint32_t *psxVul;\r
356extern signed int *psxVsl;\r
357extern GLfloat gl_z;\r
358extern BOOL bNeedRGB24Update;\r
359extern BOOL bChangeWinMode;\r
360extern GLuint uiScanLine;\r
361extern int iUseScanLines;\r
362extern int lSelectedSlot;\r
363extern int iScanBlend;\r
364extern BOOL bInitCap;\r
365extern int iBlurBuffer;\r
366extern int iLastRGB24;\r
367extern int iRenderFVR;\r
368extern int iNoScreenSaver;\r
369extern uint32_t ulGPUInfoVals[];\r
370extern BOOL bNeedInterlaceUpdate;\r
371extern BOOL bNeedWriteUpload;\r
372extern BOOL bSkipNextFrame;\r
373\r
374extern int bFullScreen;\r
375\r
376#endif\r
377\r
378#ifndef _IN_MENU\r
379\r
380extern uint32_t dwCoreFlags;\r
381extern GLuint gTexPicName;\r
382extern PSXPoint_t ptCursorPoint[];\r
383extern unsigned short usCursorActive;\r
384\r
385#endif\r
386\r
387#ifndef _IN_FPS\r
388\r
389extern BOOL bUseFrameLimit;\r
390extern BOOL bUseFrameSkip;\r
391extern float fFrameRate;\r
392extern float fFrameRateHz;\r
393extern int iFrameLimit;\r
394extern float fps_skip;\r
395extern float fps_cur;\r
396\r
397#endif\r
398\r
399#ifndef _IN_KEY\r
400\r
401extern uint32_t ulKeybits;\r
402\r
403#endif\r
404\r
405#ifndef _IN_ZN\r
406\r
407extern uint32_t dwGPUVersion;\r
408extern int iGPUHeight;\r
409extern int iGPUHeightMask;\r
410extern int GlobalTextIL;\r
411extern int iTileCheat;\r
412\r
413#endif\r