| 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 |