minimal working gtk-less build
[pcsx_rearmed.git] / plugins / peopsxgl / key.c
1 /***************************************************************************\r
2                           key.c  -  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 #include "stdafx.h"\r
20 \r
21 #define _IN_KEY\r
22 \r
23 #include "externals.h"\r
24 #include "menu.h"\r
25 #include "texture.h"\r
26 #include "draw.h"\r
27 #include "fps.h"\r
28 \r
29 ////////////////////////////////////////////////////////////////////////\r
30 // KeyBoard handler stuff\r
31 ////////////////////////////////////////////////////////////////////////\r
32 \r
33 uint32_t   ulKeybits = 0;                     \r
34 \r
35 ////////////////////////////////////////////////////////////////////////\r
36 // keyboard handler (LINUX)\r
37 ////////////////////////////////////////////////////////////////////////\r
38 \r
39 #define VK_INSERT      65379\r
40 #define VK_HOME        65360\r
41 #define VK_PRIOR       65365\r
42 #define VK_NEXT        65366\r
43 #define VK_END         65367\r
44 #define VK_DEL         65535\r
45 #define VK_F5          65474\r
46 \r
47 void GPUkeypressed(int keycode)\r
48 {\r
49     switch(keycode)\r
50      {\r
51       case VK_F5:\r
52        bSnapShot=1;\r
53       break;\r
54 \r
55       case VK_INSERT:\r
56        ulKeybits|=KEY_RESETTEXSTORE;\r
57        if(iBlurBuffer) iBlurBuffer=0;\r
58        else            iBlurBuffer=1;\r
59        break;\r
60 \r
61       case VK_DEL: \r
62        if(ulKeybits&KEY_SHOWFPS)\r
63         {\r
64          ulKeybits&=~KEY_SHOWFPS;\r
65          HideText();\r
66          DestroyPic();\r
67         }\r
68        else \r
69         {\r
70          ulKeybits|=KEY_SHOWFPS;\r
71          szDispBuf[0]=0;\r
72          BuildDispMenu(0);\r
73 \r
74         }\r
75        break;\r
76 \r
77       case VK_PRIOR: BuildDispMenu(-1);            break;\r
78       case VK_NEXT:  BuildDispMenu( 1);            break;\r
79       case VK_END:   SwitchDispMenu( 1);           break;\r
80       case VK_HOME:  SwitchDispMenu(-1);           break;\r
81      }\r
82 \r
83 }\r
84 \r
85 void InitKeyHandler(void)\r
86 {\r
87 }\r
88 \r
89 void ExitKeyHandler(void)\r
90 {\r
91 }\r
92 \r
93 ////////////////////////////////////////////////////////////////////////\r
94 // reset stuff on special keyboard commands\r
95 ////////////////////////////////////////////////////////////////////////\r
96 \r
97 void ResetStuff(void)\r
98 {\r
99  ResetTextureArea(TRUE);\r
100  ulKeybits&=~KEY_RESETTEXSTORE;\r
101 \r
102  if(ulKeybits&KEY_BLACKWHITE)\r
103   {\r
104    if(bUseFixes) {bUseFixes=FALSE;dwActFixes=0;}\r
105    else          {bUseFixes=TRUE; dwActFixes=dwCfgFixes;}\r
106    SetExtGLFuncs();\r
107    if(iFrameLimit==2) SetAutoFrameCap();\r
108    ulKeybits&=~KEY_BLACKWHITE;\r
109   }\r
110 \r
111  if(ulKeybits&KEY_RESETFILTER)\r
112   {\r
113    if(ulKeybits&KEY_STEPDOWN)\r
114         iFilterType--;\r
115    else iFilterType++;\r
116    if(iFilterType>6) iFilterType=0;\r
117    if(iFilterType<0) iFilterType=6;\r
118    SetExtGLFuncs();\r
119    ulKeybits&=~(KEY_RESETFILTER|KEY_STEPDOWN);\r
120    BuildDispMenu(0);\r
121   }\r
122 \r
123  if(ulKeybits&KEY_RESETOPAQUE)\r
124   {\r
125    bOpaquePass=!bOpaquePass;\r
126    SetExtGLFuncs();\r
127    ulKeybits&=~KEY_RESETOPAQUE;\r
128    BuildDispMenu(0);\r
129   }\r
130 \r
131  if(ulKeybits&KEY_RESETADVBLEND)\r
132   {\r
133    bAdvancedBlend=!bAdvancedBlend;\r
134    SetExtGLFuncs();\r
135    ulKeybits&=~KEY_RESETADVBLEND;\r
136    BuildDispMenu(0);\r
137   }\r
138 \r
139  if(ulKeybits&KEY_RESETDITHER)\r
140   {\r
141    bDrawDither=!bDrawDither;\r
142    if(bDrawDither)  glEnable(GL_DITHER); \r
143    else             glDisable(GL_DITHER); \r
144    ulKeybits&=~KEY_RESETDITHER;\r
145    BuildDispMenu(0);\r
146   }\r
147 \r
148  if(ulKeybits & KEY_TOGGLEFBTEXTURE)\r
149   {\r
150    if(ulKeybits&KEY_STEPDOWN)\r
151         iFrameTexType--;\r
152    else iFrameTexType++;\r
153    if(iFrameTexType>3) iFrameTexType=0;\r
154    if(iFrameTexType<0) iFrameTexType=3;\r
155    if(gTexFrameName!=0)                              \r
156     glDeleteTextures(1, &gTexFrameName);             \r
157    gTexFrameName=0;                                  \r
158    ulKeybits&=~(KEY_TOGGLEFBTEXTURE|KEY_STEPDOWN);\r
159   }\r
160 \r
161  if(ulKeybits & KEY_TOGGLEFBREAD)\r
162   {\r
163    if(ulKeybits&KEY_STEPDOWN)\r
164         iFrameReadType--;\r
165    else iFrameReadType++;\r
166    if(iFrameReadType>4) iFrameReadType=0;\r
167    if(iFrameReadType<0) iFrameReadType=4;\r
168    if(iFrameReadType==4) bFullVRam=TRUE;\r
169    else                  bFullVRam=FALSE;\r
170    iRenderFVR=0;\r
171    ulKeybits&=~(KEY_TOGGLEFBREAD|KEY_STEPDOWN);\r
172   }\r
173 }\r