mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-19 14:38:18 +00:00
Merge remote-tracking branch 'remotes/swick/sdl2'
Conflicts: src/engine/client/backend_sdl.cpp src/engine/client/graphics_threaded.h src/engine/shared/config_variables.h
This commit is contained in:
commit
721739ed42
|
@ -9,10 +9,10 @@ SDL = {
|
||||||
option.use_winlib = 0
|
option.use_winlib = 0
|
||||||
option.lib_path = nil
|
option.lib_path = nil
|
||||||
|
|
||||||
if ExecuteSilent("pkg-config sdl") == 0 then
|
if ExecuteSilent("pkg-config sdl2") == 0 then
|
||||||
option.value = true
|
option.value = true
|
||||||
option.use_pkgconfig = true
|
option.use_pkgconfig = true
|
||||||
elseif ExecuteSilent("sdl-config") > 0 and ExecuteSilent("sdl-config --cflags") == 0 then
|
elseif ExecuteSilent("sdl2-config") > 0 and ExecuteSilent("sdl2-config --cflags") == 0 then
|
||||||
option.value = true
|
option.value = true
|
||||||
option.use_sdlconfig = true
|
option.use_sdlconfig = true
|
||||||
end
|
end
|
||||||
|
@ -28,11 +28,11 @@ SDL = {
|
||||||
|
|
||||||
local apply = function(option, settings)
|
local apply = function(option, settings)
|
||||||
if option.use_pkgconfig == true then
|
if option.use_pkgconfig == true then
|
||||||
settings.cc.flags:Add("`pkg-config --cflags sdl`")
|
settings.cc.flags:Add("`pkg-config --cflags sdl2`")
|
||||||
settings.link.flags:Add("`pkg-config --libs sdl`")
|
settings.link.flags:Add("`pkg-config --libs sdl2`")
|
||||||
elseif option.use_sdlconfig == true then
|
elseif option.use_sdlconfig == true then
|
||||||
settings.cc.flags:Add("`sdl-config --cflags`")
|
settings.cc.flags:Add("`sdl2-config --cflags`")
|
||||||
settings.link.flags:Add("`sdl-config --libs`")
|
settings.link.flags:Add("`sdl2-config --libs`")
|
||||||
elseif option.use_winlib > 0 then
|
elseif option.use_winlib > 0 then
|
||||||
settings.cc.includes:Add(SDL.basepath .. "/include")
|
settings.cc.includes:Add(SDL.basepath .. "/include")
|
||||||
if option.use_winlib == 32 then
|
if option.use_winlib == 32 then
|
||||||
|
@ -40,8 +40,8 @@ SDL = {
|
||||||
else
|
else
|
||||||
settings.link.libpath:Add(SDL.basepath .. "/lib64")
|
settings.link.libpath:Add(SDL.basepath .. "/lib64")
|
||||||
end
|
end
|
||||||
settings.link.libs:Add("SDL")
|
settings.link.libs:Add("SDL2")
|
||||||
settings.link.libs:Add("SDLmain")
|
settings.link.libs:Add("SDL2main")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ SDL = {
|
||||||
local display = function(option)
|
local display = function(option)
|
||||||
if option.value == true then
|
if option.value == true then
|
||||||
if option.use_pkgconfig == true then return "using pkg-config" end
|
if option.use_pkgconfig == true then return "using pkg-config" end
|
||||||
if option.use_sdlconfig == true then return "using sdl-config" end
|
if option.use_sdlconfig == true then return "using sdl2-config" end
|
||||||
if option.use_winlib == 32 then return "using supplied win32 libraries" end
|
if option.use_winlib == 32 then return "using supplied win32 libraries" end
|
||||||
if option.use_winlib == 64 then return "using supplied win64 libraries" end
|
if option.use_winlib == 64 then return "using supplied win64 libraries" end
|
||||||
return "using unknown method"
|
return "using unknown method"
|
||||||
|
|
|
@ -1,311 +0,0 @@
|
||||||
/*
|
|
||||||
SDL - Simple DirectMedia Layer
|
|
||||||
Copyright (C) 1997-2006 Sam Lantinga
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
Sam Lantinga
|
|
||||||
slouken@libsdl.org
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _SDL_keysym_h
|
|
||||||
#define _SDL_keysym_h
|
|
||||||
|
|
||||||
/* What we really want is a mapping of every raw key on the keyboard.
|
|
||||||
To support international keyboards, we use the range 0xA1 - 0xFF
|
|
||||||
as international virtual keycodes. We'll follow in the footsteps of X11...
|
|
||||||
The names of the keys
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
/* The keyboard syms have been cleverly chosen to map to ASCII */
|
|
||||||
SDLK_UNKNOWN = 0,
|
|
||||||
SDLK_FIRST = 0,
|
|
||||||
SDLK_BACKSPACE = 8,
|
|
||||||
SDLK_TAB = 9,
|
|
||||||
SDLK_CLEAR = 12,
|
|
||||||
SDLK_RETURN = 13,
|
|
||||||
SDLK_PAUSE = 19,
|
|
||||||
SDLK_ESCAPE = 27,
|
|
||||||
SDLK_SPACE = 32,
|
|
||||||
SDLK_EXCLAIM = 33,
|
|
||||||
SDLK_QUOTEDBL = 34,
|
|
||||||
SDLK_HASH = 35,
|
|
||||||
SDLK_DOLLAR = 36,
|
|
||||||
SDLK_AMPERSAND = 38,
|
|
||||||
SDLK_QUOTE = 39,
|
|
||||||
SDLK_LEFTPAREN = 40,
|
|
||||||
SDLK_RIGHTPAREN = 41,
|
|
||||||
SDLK_ASTERISK = 42,
|
|
||||||
SDLK_PLUS = 43,
|
|
||||||
SDLK_COMMA = 44,
|
|
||||||
SDLK_MINUS = 45,
|
|
||||||
SDLK_PERIOD = 46,
|
|
||||||
SDLK_SLASH = 47,
|
|
||||||
SDLK_0 = 48,
|
|
||||||
SDLK_1 = 49,
|
|
||||||
SDLK_2 = 50,
|
|
||||||
SDLK_3 = 51,
|
|
||||||
SDLK_4 = 52,
|
|
||||||
SDLK_5 = 53,
|
|
||||||
SDLK_6 = 54,
|
|
||||||
SDLK_7 = 55,
|
|
||||||
SDLK_8 = 56,
|
|
||||||
SDLK_9 = 57,
|
|
||||||
SDLK_COLON = 58,
|
|
||||||
SDLK_SEMICOLON = 59,
|
|
||||||
SDLK_LESS = 60,
|
|
||||||
SDLK_EQUALS = 61,
|
|
||||||
SDLK_GREATER = 62,
|
|
||||||
SDLK_QUESTION = 63,
|
|
||||||
SDLK_AT = 64,
|
|
||||||
/*
|
|
||||||
Skip uppercase letters
|
|
||||||
*/
|
|
||||||
SDLK_LEFTBRACKET = 91,
|
|
||||||
SDLK_BACKSLASH = 92,
|
|
||||||
SDLK_RIGHTBRACKET = 93,
|
|
||||||
SDLK_CARET = 94,
|
|
||||||
SDLK_UNDERSCORE = 95,
|
|
||||||
SDLK_BACKQUOTE = 96,
|
|
||||||
SDLK_a = 97,
|
|
||||||
SDLK_b = 98,
|
|
||||||
SDLK_c = 99,
|
|
||||||
SDLK_d = 100,
|
|
||||||
SDLK_e = 101,
|
|
||||||
SDLK_f = 102,
|
|
||||||
SDLK_g = 103,
|
|
||||||
SDLK_h = 104,
|
|
||||||
SDLK_i = 105,
|
|
||||||
SDLK_j = 106,
|
|
||||||
SDLK_k = 107,
|
|
||||||
SDLK_l = 108,
|
|
||||||
SDLK_m = 109,
|
|
||||||
SDLK_n = 110,
|
|
||||||
SDLK_o = 111,
|
|
||||||
SDLK_p = 112,
|
|
||||||
SDLK_q = 113,
|
|
||||||
SDLK_r = 114,
|
|
||||||
SDLK_s = 115,
|
|
||||||
SDLK_t = 116,
|
|
||||||
SDLK_u = 117,
|
|
||||||
SDLK_v = 118,
|
|
||||||
SDLK_w = 119,
|
|
||||||
SDLK_x = 120,
|
|
||||||
SDLK_y = 121,
|
|
||||||
SDLK_z = 122,
|
|
||||||
SDLK_DELETE = 127,
|
|
||||||
/* End of ASCII mapped keysyms */
|
|
||||||
|
|
||||||
/* International keyboard syms */
|
|
||||||
SDLK_WORLD_0 = 160, /* 0xA0 */
|
|
||||||
SDLK_WORLD_1 = 161,
|
|
||||||
SDLK_WORLD_2 = 162,
|
|
||||||
SDLK_WORLD_3 = 163,
|
|
||||||
SDLK_WORLD_4 = 164,
|
|
||||||
SDLK_WORLD_5 = 165,
|
|
||||||
SDLK_WORLD_6 = 166,
|
|
||||||
SDLK_WORLD_7 = 167,
|
|
||||||
SDLK_WORLD_8 = 168,
|
|
||||||
SDLK_WORLD_9 = 169,
|
|
||||||
SDLK_WORLD_10 = 170,
|
|
||||||
SDLK_WORLD_11 = 171,
|
|
||||||
SDLK_WORLD_12 = 172,
|
|
||||||
SDLK_WORLD_13 = 173,
|
|
||||||
SDLK_WORLD_14 = 174,
|
|
||||||
SDLK_WORLD_15 = 175,
|
|
||||||
SDLK_WORLD_16 = 176,
|
|
||||||
SDLK_WORLD_17 = 177,
|
|
||||||
SDLK_WORLD_18 = 178,
|
|
||||||
SDLK_WORLD_19 = 179,
|
|
||||||
SDLK_WORLD_20 = 180,
|
|
||||||
SDLK_WORLD_21 = 181,
|
|
||||||
SDLK_WORLD_22 = 182,
|
|
||||||
SDLK_WORLD_23 = 183,
|
|
||||||
SDLK_WORLD_24 = 184,
|
|
||||||
SDLK_WORLD_25 = 185,
|
|
||||||
SDLK_WORLD_26 = 186,
|
|
||||||
SDLK_WORLD_27 = 187,
|
|
||||||
SDLK_WORLD_28 = 188,
|
|
||||||
SDLK_WORLD_29 = 189,
|
|
||||||
SDLK_WORLD_30 = 190,
|
|
||||||
SDLK_WORLD_31 = 191,
|
|
||||||
SDLK_WORLD_32 = 192,
|
|
||||||
SDLK_WORLD_33 = 193,
|
|
||||||
SDLK_WORLD_34 = 194,
|
|
||||||
SDLK_WORLD_35 = 195,
|
|
||||||
SDLK_WORLD_36 = 196,
|
|
||||||
SDLK_WORLD_37 = 197,
|
|
||||||
SDLK_WORLD_38 = 198,
|
|
||||||
SDLK_WORLD_39 = 199,
|
|
||||||
SDLK_WORLD_40 = 200,
|
|
||||||
SDLK_WORLD_41 = 201,
|
|
||||||
SDLK_WORLD_42 = 202,
|
|
||||||
SDLK_WORLD_43 = 203,
|
|
||||||
SDLK_WORLD_44 = 204,
|
|
||||||
SDLK_WORLD_45 = 205,
|
|
||||||
SDLK_WORLD_46 = 206,
|
|
||||||
SDLK_WORLD_47 = 207,
|
|
||||||
SDLK_WORLD_48 = 208,
|
|
||||||
SDLK_WORLD_49 = 209,
|
|
||||||
SDLK_WORLD_50 = 210,
|
|
||||||
SDLK_WORLD_51 = 211,
|
|
||||||
SDLK_WORLD_52 = 212,
|
|
||||||
SDLK_WORLD_53 = 213,
|
|
||||||
SDLK_WORLD_54 = 214,
|
|
||||||
SDLK_WORLD_55 = 215,
|
|
||||||
SDLK_WORLD_56 = 216,
|
|
||||||
SDLK_WORLD_57 = 217,
|
|
||||||
SDLK_WORLD_58 = 218,
|
|
||||||
SDLK_WORLD_59 = 219,
|
|
||||||
SDLK_WORLD_60 = 220,
|
|
||||||
SDLK_WORLD_61 = 221,
|
|
||||||
SDLK_WORLD_62 = 222,
|
|
||||||
SDLK_WORLD_63 = 223,
|
|
||||||
SDLK_WORLD_64 = 224,
|
|
||||||
SDLK_WORLD_65 = 225,
|
|
||||||
SDLK_WORLD_66 = 226,
|
|
||||||
SDLK_WORLD_67 = 227,
|
|
||||||
SDLK_WORLD_68 = 228,
|
|
||||||
SDLK_WORLD_69 = 229,
|
|
||||||
SDLK_WORLD_70 = 230,
|
|
||||||
SDLK_WORLD_71 = 231,
|
|
||||||
SDLK_WORLD_72 = 232,
|
|
||||||
SDLK_WORLD_73 = 233,
|
|
||||||
SDLK_WORLD_74 = 234,
|
|
||||||
SDLK_WORLD_75 = 235,
|
|
||||||
SDLK_WORLD_76 = 236,
|
|
||||||
SDLK_WORLD_77 = 237,
|
|
||||||
SDLK_WORLD_78 = 238,
|
|
||||||
SDLK_WORLD_79 = 239,
|
|
||||||
SDLK_WORLD_80 = 240,
|
|
||||||
SDLK_WORLD_81 = 241,
|
|
||||||
SDLK_WORLD_82 = 242,
|
|
||||||
SDLK_WORLD_83 = 243,
|
|
||||||
SDLK_WORLD_84 = 244,
|
|
||||||
SDLK_WORLD_85 = 245,
|
|
||||||
SDLK_WORLD_86 = 246,
|
|
||||||
SDLK_WORLD_87 = 247,
|
|
||||||
SDLK_WORLD_88 = 248,
|
|
||||||
SDLK_WORLD_89 = 249,
|
|
||||||
SDLK_WORLD_90 = 250,
|
|
||||||
SDLK_WORLD_91 = 251,
|
|
||||||
SDLK_WORLD_92 = 252,
|
|
||||||
SDLK_WORLD_93 = 253,
|
|
||||||
SDLK_WORLD_94 = 254,
|
|
||||||
SDLK_WORLD_95 = 255, /* 0xFF */
|
|
||||||
|
|
||||||
/* Numeric keypad */
|
|
||||||
SDLK_KP0 = 256,
|
|
||||||
SDLK_KP1 = 257,
|
|
||||||
SDLK_KP2 = 258,
|
|
||||||
SDLK_KP3 = 259,
|
|
||||||
SDLK_KP4 = 260,
|
|
||||||
SDLK_KP5 = 261,
|
|
||||||
SDLK_KP6 = 262,
|
|
||||||
SDLK_KP7 = 263,
|
|
||||||
SDLK_KP8 = 264,
|
|
||||||
SDLK_KP9 = 265,
|
|
||||||
SDLK_KP_PERIOD = 266,
|
|
||||||
SDLK_KP_DIVIDE = 267,
|
|
||||||
SDLK_KP_MULTIPLY = 268,
|
|
||||||
SDLK_KP_MINUS = 269,
|
|
||||||
SDLK_KP_PLUS = 270,
|
|
||||||
SDLK_KP_ENTER = 271,
|
|
||||||
SDLK_KP_EQUALS = 272,
|
|
||||||
|
|
||||||
/* Arrows + Home/End pad */
|
|
||||||
SDLK_UP = 273,
|
|
||||||
SDLK_DOWN = 274,
|
|
||||||
SDLK_RIGHT = 275,
|
|
||||||
SDLK_LEFT = 276,
|
|
||||||
SDLK_INSERT = 277,
|
|
||||||
SDLK_HOME = 278,
|
|
||||||
SDLK_END = 279,
|
|
||||||
SDLK_PAGEUP = 280,
|
|
||||||
SDLK_PAGEDOWN = 281,
|
|
||||||
|
|
||||||
/* Function keys */
|
|
||||||
SDLK_F1 = 282,
|
|
||||||
SDLK_F2 = 283,
|
|
||||||
SDLK_F3 = 284,
|
|
||||||
SDLK_F4 = 285,
|
|
||||||
SDLK_F5 = 286,
|
|
||||||
SDLK_F6 = 287,
|
|
||||||
SDLK_F7 = 288,
|
|
||||||
SDLK_F8 = 289,
|
|
||||||
SDLK_F9 = 290,
|
|
||||||
SDLK_F10 = 291,
|
|
||||||
SDLK_F11 = 292,
|
|
||||||
SDLK_F12 = 293,
|
|
||||||
SDLK_F13 = 294,
|
|
||||||
SDLK_F14 = 295,
|
|
||||||
SDLK_F15 = 296,
|
|
||||||
|
|
||||||
/* Key state modifier keys */
|
|
||||||
SDLK_NUMLOCK = 300,
|
|
||||||
SDLK_CAPSLOCK = 301,
|
|
||||||
SDLK_SCROLLOCK = 302,
|
|
||||||
SDLK_RSHIFT = 303,
|
|
||||||
SDLK_LSHIFT = 304,
|
|
||||||
SDLK_RCTRL = 305,
|
|
||||||
SDLK_LCTRL = 306,
|
|
||||||
SDLK_RALT = 307,
|
|
||||||
SDLK_LALT = 308,
|
|
||||||
SDLK_RMETA = 309,
|
|
||||||
SDLK_LMETA = 310,
|
|
||||||
SDLK_LSUPER = 311, /* Left "Windows" key */
|
|
||||||
SDLK_RSUPER = 312, /* Right "Windows" key */
|
|
||||||
SDLK_MODE = 313, /* "Alt Gr" key */
|
|
||||||
SDLK_COMPOSE = 314, /* Multi-key compose key */
|
|
||||||
|
|
||||||
/* Miscellaneous function keys */
|
|
||||||
SDLK_HELP = 315,
|
|
||||||
SDLK_PRINT = 316,
|
|
||||||
SDLK_SYSREQ = 317,
|
|
||||||
SDLK_BREAK = 318,
|
|
||||||
SDLK_MENU = 319,
|
|
||||||
SDLK_POWER = 320, /* Power Macintosh power key */
|
|
||||||
SDLK_EURO = 321, /* Some european keyboards */
|
|
||||||
SDLK_UNDO = 322, /* Atari keyboard has Undo */
|
|
||||||
|
|
||||||
/* Add any other keys here */
|
|
||||||
|
|
||||||
SDLK_LAST
|
|
||||||
} SDLKey;
|
|
||||||
|
|
||||||
/* Enumeration of valid key mods (possibly OR'd together) */
|
|
||||||
typedef enum {
|
|
||||||
KMOD_NONE = 0x0000,
|
|
||||||
KMOD_LSHIFT= 0x0001,
|
|
||||||
KMOD_RSHIFT= 0x0002,
|
|
||||||
KMOD_LCTRL = 0x0040,
|
|
||||||
KMOD_RCTRL = 0x0080,
|
|
||||||
KMOD_LALT = 0x0100,
|
|
||||||
KMOD_RALT = 0x0200,
|
|
||||||
KMOD_LMETA = 0x0400,
|
|
||||||
KMOD_RMETA = 0x0800,
|
|
||||||
KMOD_NUM = 0x1000,
|
|
||||||
KMOD_CAPS = 0x2000,
|
|
||||||
KMOD_MODE = 0x4000,
|
|
||||||
KMOD_RESERVED = 0x8000
|
|
||||||
} SDLMod;
|
|
||||||
|
|
||||||
#define KMOD_CTRL (KMOD_LCTRL|KMOD_RCTRL)
|
|
||||||
#define KMOD_SHIFT (KMOD_LSHIFT|KMOD_RSHIFT)
|
|
||||||
#define KMOD_ALT (KMOD_LALT|KMOD_RALT)
|
|
||||||
#define KMOD_META (KMOD_LMETA|KMOD_RMETA)
|
|
||||||
|
|
||||||
#endif /* _SDL_keysym_h */
|
|
401
scripts/SDL_scancode.h
Normal file
401
scripts/SDL_scancode.h
Normal file
|
@ -0,0 +1,401 @@
|
||||||
|
/*
|
||||||
|
Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
||||||
|
|
||||||
|
This software is provided 'as-is', without any express or implied
|
||||||
|
warranty. In no event will the authors be held liable for any damages
|
||||||
|
arising from the use of this software.
|
||||||
|
|
||||||
|
Permission is granted to anyone to use this software for any purpose,
|
||||||
|
including commercial applications, and to alter it and redistribute it
|
||||||
|
freely, subject to the following restrictions:
|
||||||
|
|
||||||
|
1. The origin of this software must not be misrepresented; you must not
|
||||||
|
claim that you wrote the original software. If you use this software
|
||||||
|
in a product, an acknowledgment in the product documentation would be
|
||||||
|
appreciated but is not required.
|
||||||
|
2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
misrepresented as being the original software.
|
||||||
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file SDL_scancode.h
|
||||||
|
*
|
||||||
|
* Defines keyboard scancodes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_scancode_h
|
||||||
|
#define _SDL_scancode_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief The SDL keyboard scancode representation.
|
||||||
|
*
|
||||||
|
* Values of this type are used to represent keyboard keys, among other places
|
||||||
|
* in the \link SDL_Keysym::scancode key.keysym.scancode \endlink field of the
|
||||||
|
* SDL_Event structure.
|
||||||
|
*
|
||||||
|
* The values in this enumeration are based on the USB usage page standard:
|
||||||
|
* http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf
|
||||||
|
*/
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
SDL_SCANCODE_UNKNOWN = 0,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \name Usage page 0x07
|
||||||
|
*
|
||||||
|
* These values are from usage page 0x07 (USB keyboard page).
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
|
||||||
|
SDL_SCANCODE_A = 4,
|
||||||
|
SDL_SCANCODE_B = 5,
|
||||||
|
SDL_SCANCODE_C = 6,
|
||||||
|
SDL_SCANCODE_D = 7,
|
||||||
|
SDL_SCANCODE_E = 8,
|
||||||
|
SDL_SCANCODE_F = 9,
|
||||||
|
SDL_SCANCODE_G = 10,
|
||||||
|
SDL_SCANCODE_H = 11,
|
||||||
|
SDL_SCANCODE_I = 12,
|
||||||
|
SDL_SCANCODE_J = 13,
|
||||||
|
SDL_SCANCODE_K = 14,
|
||||||
|
SDL_SCANCODE_L = 15,
|
||||||
|
SDL_SCANCODE_M = 16,
|
||||||
|
SDL_SCANCODE_N = 17,
|
||||||
|
SDL_SCANCODE_O = 18,
|
||||||
|
SDL_SCANCODE_P = 19,
|
||||||
|
SDL_SCANCODE_Q = 20,
|
||||||
|
SDL_SCANCODE_R = 21,
|
||||||
|
SDL_SCANCODE_S = 22,
|
||||||
|
SDL_SCANCODE_T = 23,
|
||||||
|
SDL_SCANCODE_U = 24,
|
||||||
|
SDL_SCANCODE_V = 25,
|
||||||
|
SDL_SCANCODE_W = 26,
|
||||||
|
SDL_SCANCODE_X = 27,
|
||||||
|
SDL_SCANCODE_Y = 28,
|
||||||
|
SDL_SCANCODE_Z = 29,
|
||||||
|
|
||||||
|
SDL_SCANCODE_1 = 30,
|
||||||
|
SDL_SCANCODE_2 = 31,
|
||||||
|
SDL_SCANCODE_3 = 32,
|
||||||
|
SDL_SCANCODE_4 = 33,
|
||||||
|
SDL_SCANCODE_5 = 34,
|
||||||
|
SDL_SCANCODE_6 = 35,
|
||||||
|
SDL_SCANCODE_7 = 36,
|
||||||
|
SDL_SCANCODE_8 = 37,
|
||||||
|
SDL_SCANCODE_9 = 38,
|
||||||
|
SDL_SCANCODE_0 = 39,
|
||||||
|
|
||||||
|
SDL_SCANCODE_RETURN = 40,
|
||||||
|
SDL_SCANCODE_ESCAPE = 41,
|
||||||
|
SDL_SCANCODE_BACKSPACE = 42,
|
||||||
|
SDL_SCANCODE_TAB = 43,
|
||||||
|
SDL_SCANCODE_SPACE = 44,
|
||||||
|
|
||||||
|
SDL_SCANCODE_MINUS = 45,
|
||||||
|
SDL_SCANCODE_EQUALS = 46,
|
||||||
|
SDL_SCANCODE_LEFTBRACKET = 47,
|
||||||
|
SDL_SCANCODE_RIGHTBRACKET = 48,
|
||||||
|
SDL_SCANCODE_BACKSLASH = 49, /**< Located at the lower left of the return
|
||||||
|
* key on ISO keyboards and at the right end
|
||||||
|
* of the QWERTY row on ANSI keyboards.
|
||||||
|
* Produces REVERSE SOLIDUS (backslash) and
|
||||||
|
* VERTICAL LINE in a US layout, REVERSE
|
||||||
|
* SOLIDUS and VERTICAL LINE in a UK Mac
|
||||||
|
* layout, NUMBER SIGN and TILDE in a UK
|
||||||
|
* Windows layout, DOLLAR SIGN and POUND SIGN
|
||||||
|
* in a Swiss German layout, NUMBER SIGN and
|
||||||
|
* APOSTROPHE in a German layout, GRAVE
|
||||||
|
* ACCENT and POUND SIGN in a French Mac
|
||||||
|
* layout, and ASTERISK and MICRO SIGN in a
|
||||||
|
* French Windows layout.
|
||||||
|
*/
|
||||||
|
SDL_SCANCODE_NONUSHASH = 50, /**< ISO USB keyboards actually use this code
|
||||||
|
* instead of 49 for the same key, but all
|
||||||
|
* OSes I've seen treat the two codes
|
||||||
|
* identically. So, as an implementor, unless
|
||||||
|
* your keyboard generates both of those
|
||||||
|
* codes and your OS treats them differently,
|
||||||
|
* you should generate SDL_SCANCODE_BACKSLASH
|
||||||
|
* instead of this code. As a user, you
|
||||||
|
* should not rely on this code because SDL
|
||||||
|
* will never generate it with most (all?)
|
||||||
|
* keyboards.
|
||||||
|
*/
|
||||||
|
SDL_SCANCODE_SEMICOLON = 51,
|
||||||
|
SDL_SCANCODE_APOSTROPHE = 52,
|
||||||
|
SDL_SCANCODE_GRAVE = 53, /**< Located in the top left corner (on both ANSI
|
||||||
|
* and ISO keyboards). Produces GRAVE ACCENT and
|
||||||
|
* TILDE in a US Windows layout and in US and UK
|
||||||
|
* Mac layouts on ANSI keyboards, GRAVE ACCENT
|
||||||
|
* and NOT SIGN in a UK Windows layout, SECTION
|
||||||
|
* SIGN and PLUS-MINUS SIGN in US and UK Mac
|
||||||
|
* layouts on ISO keyboards, SECTION SIGN and
|
||||||
|
* DEGREE SIGN in a Swiss German layout (Mac:
|
||||||
|
* only on ISO keyboards), CIRCUMFLEX ACCENT and
|
||||||
|
* DEGREE SIGN in a German layout (Mac: only on
|
||||||
|
* ISO keyboards), SUPERSCRIPT TWO and TILDE in a
|
||||||
|
* French Windows layout, COMMERCIAL AT and
|
||||||
|
* NUMBER SIGN in a French Mac layout on ISO
|
||||||
|
* keyboards, and LESS-THAN SIGN and GREATER-THAN
|
||||||
|
* SIGN in a Swiss German, German, or French Mac
|
||||||
|
* layout on ANSI keyboards.
|
||||||
|
*/
|
||||||
|
SDL_SCANCODE_COMMA = 54,
|
||||||
|
SDL_SCANCODE_PERIOD = 55,
|
||||||
|
SDL_SCANCODE_SLASH = 56,
|
||||||
|
|
||||||
|
SDL_SCANCODE_CAPSLOCK = 57,
|
||||||
|
|
||||||
|
SDL_SCANCODE_F1 = 58,
|
||||||
|
SDL_SCANCODE_F2 = 59,
|
||||||
|
SDL_SCANCODE_F3 = 60,
|
||||||
|
SDL_SCANCODE_F4 = 61,
|
||||||
|
SDL_SCANCODE_F5 = 62,
|
||||||
|
SDL_SCANCODE_F6 = 63,
|
||||||
|
SDL_SCANCODE_F7 = 64,
|
||||||
|
SDL_SCANCODE_F8 = 65,
|
||||||
|
SDL_SCANCODE_F9 = 66,
|
||||||
|
SDL_SCANCODE_F10 = 67,
|
||||||
|
SDL_SCANCODE_F11 = 68,
|
||||||
|
SDL_SCANCODE_F12 = 69,
|
||||||
|
|
||||||
|
SDL_SCANCODE_PRINTSCREEN = 70,
|
||||||
|
SDL_SCANCODE_SCROLLLOCK = 71,
|
||||||
|
SDL_SCANCODE_PAUSE = 72,
|
||||||
|
SDL_SCANCODE_INSERT = 73, /**< insert on PC, help on some Mac keyboards (but
|
||||||
|
does send code 73, not 117) */
|
||||||
|
SDL_SCANCODE_HOME = 74,
|
||||||
|
SDL_SCANCODE_PAGEUP = 75,
|
||||||
|
SDL_SCANCODE_DELETE = 76,
|
||||||
|
SDL_SCANCODE_END = 77,
|
||||||
|
SDL_SCANCODE_PAGEDOWN = 78,
|
||||||
|
SDL_SCANCODE_RIGHT = 79,
|
||||||
|
SDL_SCANCODE_LEFT = 80,
|
||||||
|
SDL_SCANCODE_DOWN = 81,
|
||||||
|
SDL_SCANCODE_UP = 82,
|
||||||
|
|
||||||
|
SDL_SCANCODE_NUMLOCKCLEAR = 83, /**< num lock on PC, clear on Mac keyboards
|
||||||
|
*/
|
||||||
|
SDL_SCANCODE_KP_DIVIDE = 84,
|
||||||
|
SDL_SCANCODE_KP_MULTIPLY = 85,
|
||||||
|
SDL_SCANCODE_KP_MINUS = 86,
|
||||||
|
SDL_SCANCODE_KP_PLUS = 87,
|
||||||
|
SDL_SCANCODE_KP_ENTER = 88,
|
||||||
|
SDL_SCANCODE_KP_1 = 89,
|
||||||
|
SDL_SCANCODE_KP_2 = 90,
|
||||||
|
SDL_SCANCODE_KP_3 = 91,
|
||||||
|
SDL_SCANCODE_KP_4 = 92,
|
||||||
|
SDL_SCANCODE_KP_5 = 93,
|
||||||
|
SDL_SCANCODE_KP_6 = 94,
|
||||||
|
SDL_SCANCODE_KP_7 = 95,
|
||||||
|
SDL_SCANCODE_KP_8 = 96,
|
||||||
|
SDL_SCANCODE_KP_9 = 97,
|
||||||
|
SDL_SCANCODE_KP_0 = 98,
|
||||||
|
SDL_SCANCODE_KP_PERIOD = 99,
|
||||||
|
|
||||||
|
SDL_SCANCODE_NONUSBACKSLASH = 100, /**< This is the additional key that ISO
|
||||||
|
* keyboards have over ANSI ones,
|
||||||
|
* located between left shift and Y.
|
||||||
|
* Produces GRAVE ACCENT and TILDE in a
|
||||||
|
* US or UK Mac layout, REVERSE SOLIDUS
|
||||||
|
* (backslash) and VERTICAL LINE in a
|
||||||
|
* US or UK Windows layout, and
|
||||||
|
* LESS-THAN SIGN and GREATER-THAN SIGN
|
||||||
|
* in a Swiss German, German, or French
|
||||||
|
* layout. */
|
||||||
|
SDL_SCANCODE_APPLICATION = 101, /**< windows contextual menu, compose */
|
||||||
|
SDL_SCANCODE_POWER = 102, /**< The USB document says this is a status flag,
|
||||||
|
* not a physical key - but some Mac keyboards
|
||||||
|
* do have a power key. */
|
||||||
|
SDL_SCANCODE_KP_EQUALS = 103,
|
||||||
|
SDL_SCANCODE_F13 = 104,
|
||||||
|
SDL_SCANCODE_F14 = 105,
|
||||||
|
SDL_SCANCODE_F15 = 106,
|
||||||
|
SDL_SCANCODE_F16 = 107,
|
||||||
|
SDL_SCANCODE_F17 = 108,
|
||||||
|
SDL_SCANCODE_F18 = 109,
|
||||||
|
SDL_SCANCODE_F19 = 110,
|
||||||
|
SDL_SCANCODE_F20 = 111,
|
||||||
|
SDL_SCANCODE_F21 = 112,
|
||||||
|
SDL_SCANCODE_F22 = 113,
|
||||||
|
SDL_SCANCODE_F23 = 114,
|
||||||
|
SDL_SCANCODE_F24 = 115,
|
||||||
|
SDL_SCANCODE_EXECUTE = 116,
|
||||||
|
SDL_SCANCODE_HELP = 117,
|
||||||
|
SDL_SCANCODE_MENU = 118,
|
||||||
|
SDL_SCANCODE_SELECT = 119,
|
||||||
|
SDL_SCANCODE_STOP = 120,
|
||||||
|
SDL_SCANCODE_AGAIN = 121, /**< redo */
|
||||||
|
SDL_SCANCODE_UNDO = 122,
|
||||||
|
SDL_SCANCODE_CUT = 123,
|
||||||
|
SDL_SCANCODE_COPY = 124,
|
||||||
|
SDL_SCANCODE_PASTE = 125,
|
||||||
|
SDL_SCANCODE_FIND = 126,
|
||||||
|
SDL_SCANCODE_MUTE = 127,
|
||||||
|
SDL_SCANCODE_VOLUMEUP = 128,
|
||||||
|
SDL_SCANCODE_VOLUMEDOWN = 129,
|
||||||
|
/* not sure whether there's a reason to enable these */
|
||||||
|
/* SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */
|
||||||
|
/* SDL_SCANCODE_LOCKINGNUMLOCK = 131, */
|
||||||
|
/* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */
|
||||||
|
SDL_SCANCODE_KP_COMMA = 133,
|
||||||
|
SDL_SCANCODE_KP_EQUALSAS400 = 134,
|
||||||
|
|
||||||
|
SDL_SCANCODE_INTERNATIONAL1 = 135, /**< used on Asian keyboards, see
|
||||||
|
footnotes in USB doc */
|
||||||
|
SDL_SCANCODE_INTERNATIONAL2 = 136,
|
||||||
|
SDL_SCANCODE_INTERNATIONAL3 = 137, /**< Yen */
|
||||||
|
SDL_SCANCODE_INTERNATIONAL4 = 138,
|
||||||
|
SDL_SCANCODE_INTERNATIONAL5 = 139,
|
||||||
|
SDL_SCANCODE_INTERNATIONAL6 = 140,
|
||||||
|
SDL_SCANCODE_INTERNATIONAL7 = 141,
|
||||||
|
SDL_SCANCODE_INTERNATIONAL8 = 142,
|
||||||
|
SDL_SCANCODE_INTERNATIONAL9 = 143,
|
||||||
|
SDL_SCANCODE_LANG1 = 144, /**< Hangul/English toggle */
|
||||||
|
SDL_SCANCODE_LANG2 = 145, /**< Hanja conversion */
|
||||||
|
SDL_SCANCODE_LANG3 = 146, /**< Katakana */
|
||||||
|
SDL_SCANCODE_LANG4 = 147, /**< Hiragana */
|
||||||
|
SDL_SCANCODE_LANG5 = 148, /**< Zenkaku/Hankaku */
|
||||||
|
SDL_SCANCODE_LANG6 = 149, /**< reserved */
|
||||||
|
SDL_SCANCODE_LANG7 = 150, /**< reserved */
|
||||||
|
SDL_SCANCODE_LANG8 = 151, /**< reserved */
|
||||||
|
SDL_SCANCODE_LANG9 = 152, /**< reserved */
|
||||||
|
|
||||||
|
SDL_SCANCODE_ALTERASE = 153, /**< Erase-Eaze */
|
||||||
|
SDL_SCANCODE_SYSREQ = 154,
|
||||||
|
SDL_SCANCODE_CANCEL = 155,
|
||||||
|
SDL_SCANCODE_CLEAR = 156,
|
||||||
|
SDL_SCANCODE_PRIOR = 157,
|
||||||
|
SDL_SCANCODE_RETURN2 = 158,
|
||||||
|
SDL_SCANCODE_SEPARATOR = 159,
|
||||||
|
SDL_SCANCODE_OUT = 160,
|
||||||
|
SDL_SCANCODE_OPER = 161,
|
||||||
|
SDL_SCANCODE_CLEARAGAIN = 162,
|
||||||
|
SDL_SCANCODE_CRSEL = 163,
|
||||||
|
SDL_SCANCODE_EXSEL = 164,
|
||||||
|
|
||||||
|
SDL_SCANCODE_KP_00 = 176,
|
||||||
|
SDL_SCANCODE_KP_000 = 177,
|
||||||
|
SDL_SCANCODE_THOUSANDSSEPARATOR = 178,
|
||||||
|
SDL_SCANCODE_DECIMALSEPARATOR = 179,
|
||||||
|
SDL_SCANCODE_CURRENCYUNIT = 180,
|
||||||
|
SDL_SCANCODE_CURRENCYSUBUNIT = 181,
|
||||||
|
SDL_SCANCODE_KP_LEFTPAREN = 182,
|
||||||
|
SDL_SCANCODE_KP_RIGHTPAREN = 183,
|
||||||
|
SDL_SCANCODE_KP_LEFTBRACE = 184,
|
||||||
|
SDL_SCANCODE_KP_RIGHTBRACE = 185,
|
||||||
|
SDL_SCANCODE_KP_TAB = 186,
|
||||||
|
SDL_SCANCODE_KP_BACKSPACE = 187,
|
||||||
|
SDL_SCANCODE_KP_A = 188,
|
||||||
|
SDL_SCANCODE_KP_B = 189,
|
||||||
|
SDL_SCANCODE_KP_C = 190,
|
||||||
|
SDL_SCANCODE_KP_D = 191,
|
||||||
|
SDL_SCANCODE_KP_E = 192,
|
||||||
|
SDL_SCANCODE_KP_F = 193,
|
||||||
|
SDL_SCANCODE_KP_XOR = 194,
|
||||||
|
SDL_SCANCODE_KP_POWER = 195,
|
||||||
|
SDL_SCANCODE_KP_PERCENT = 196,
|
||||||
|
SDL_SCANCODE_KP_LESS = 197,
|
||||||
|
SDL_SCANCODE_KP_GREATER = 198,
|
||||||
|
SDL_SCANCODE_KP_AMPERSAND = 199,
|
||||||
|
SDL_SCANCODE_KP_DBLAMPERSAND = 200,
|
||||||
|
SDL_SCANCODE_KP_VERTICALBAR = 201,
|
||||||
|
SDL_SCANCODE_KP_DBLVERTICALBAR = 202,
|
||||||
|
SDL_SCANCODE_KP_COLON = 203,
|
||||||
|
SDL_SCANCODE_KP_HASH = 204,
|
||||||
|
SDL_SCANCODE_KP_SPACE = 205,
|
||||||
|
SDL_SCANCODE_KP_AT = 206,
|
||||||
|
SDL_SCANCODE_KP_EXCLAM = 207,
|
||||||
|
SDL_SCANCODE_KP_MEMSTORE = 208,
|
||||||
|
SDL_SCANCODE_KP_MEMRECALL = 209,
|
||||||
|
SDL_SCANCODE_KP_MEMCLEAR = 210,
|
||||||
|
SDL_SCANCODE_KP_MEMADD = 211,
|
||||||
|
SDL_SCANCODE_KP_MEMSUBTRACT = 212,
|
||||||
|
SDL_SCANCODE_KP_MEMMULTIPLY = 213,
|
||||||
|
SDL_SCANCODE_KP_MEMDIVIDE = 214,
|
||||||
|
SDL_SCANCODE_KP_PLUSMINUS = 215,
|
||||||
|
SDL_SCANCODE_KP_CLEAR = 216,
|
||||||
|
SDL_SCANCODE_KP_CLEARENTRY = 217,
|
||||||
|
SDL_SCANCODE_KP_BINARY = 218,
|
||||||
|
SDL_SCANCODE_KP_OCTAL = 219,
|
||||||
|
SDL_SCANCODE_KP_DECIMAL = 220,
|
||||||
|
SDL_SCANCODE_KP_HEXADECIMAL = 221,
|
||||||
|
|
||||||
|
SDL_SCANCODE_LCTRL = 224,
|
||||||
|
SDL_SCANCODE_LSHIFT = 225,
|
||||||
|
SDL_SCANCODE_LALT = 226, /**< alt, option */
|
||||||
|
SDL_SCANCODE_LGUI = 227, /**< windows, command (apple), meta */
|
||||||
|
SDL_SCANCODE_RCTRL = 228,
|
||||||
|
SDL_SCANCODE_RSHIFT = 229,
|
||||||
|
SDL_SCANCODE_RALT = 230, /**< alt gr, option */
|
||||||
|
SDL_SCANCODE_RGUI = 231, /**< windows, command (apple), meta */
|
||||||
|
|
||||||
|
SDL_SCANCODE_MODE = 257, /**< I'm not sure if this is really not covered
|
||||||
|
* by any of the above, but since there's a
|
||||||
|
* special KMOD_MODE for it I'm adding it here
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*@}*//*Usage page 0x07*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \name Usage page 0x0C
|
||||||
|
*
|
||||||
|
* These values are mapped from usage page 0x0C (USB consumer page).
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
|
||||||
|
SDL_SCANCODE_AUDIONEXT = 258,
|
||||||
|
SDL_SCANCODE_AUDIOPREV = 259,
|
||||||
|
SDL_SCANCODE_AUDIOSTOP = 260,
|
||||||
|
SDL_SCANCODE_AUDIOPLAY = 261,
|
||||||
|
SDL_SCANCODE_AUDIOMUTE = 262,
|
||||||
|
SDL_SCANCODE_MEDIASELECT = 263,
|
||||||
|
SDL_SCANCODE_WWW = 264,
|
||||||
|
SDL_SCANCODE_MAIL = 265,
|
||||||
|
SDL_SCANCODE_CALCULATOR = 266,
|
||||||
|
SDL_SCANCODE_COMPUTER = 267,
|
||||||
|
SDL_SCANCODE_AC_SEARCH = 268,
|
||||||
|
SDL_SCANCODE_AC_HOME = 269,
|
||||||
|
SDL_SCANCODE_AC_BACK = 270,
|
||||||
|
SDL_SCANCODE_AC_FORWARD = 271,
|
||||||
|
SDL_SCANCODE_AC_STOP = 272,
|
||||||
|
SDL_SCANCODE_AC_REFRESH = 273,
|
||||||
|
SDL_SCANCODE_AC_BOOKMARKS = 274,
|
||||||
|
|
||||||
|
/*@}*//*Usage page 0x0C*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \name Walther keys
|
||||||
|
*
|
||||||
|
* These are values that Christian Walther added (for mac keyboard?).
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
|
||||||
|
SDL_SCANCODE_BRIGHTNESSDOWN = 275,
|
||||||
|
SDL_SCANCODE_BRIGHTNESSUP = 276,
|
||||||
|
SDL_SCANCODE_DISPLAYSWITCH = 277, /**< display mirroring/dual display
|
||||||
|
switch, video mode switch */
|
||||||
|
SDL_SCANCODE_KBDILLUMTOGGLE = 278,
|
||||||
|
SDL_SCANCODE_KBDILLUMDOWN = 279,
|
||||||
|
SDL_SCANCODE_KBDILLUMUP = 280,
|
||||||
|
SDL_SCANCODE_EJECT = 281,
|
||||||
|
SDL_SCANCODE_SLEEP = 282,
|
||||||
|
|
||||||
|
SDL_SCANCODE_APP1 = 283,
|
||||||
|
SDL_SCANCODE_APP2 = 284,
|
||||||
|
|
||||||
|
/*@}*//*Walther keys*/
|
||||||
|
|
||||||
|
/* Add any other keys here. */
|
||||||
|
|
||||||
|
SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes
|
||||||
|
for array bounds */
|
||||||
|
} SDL_Scancode;
|
||||||
|
|
||||||
|
#endif /* _SDL_scancode_h */
|
||||||
|
|
||||||
|
/* vi: set ts=4 sw=4 expandtab: */
|
|
@ -9,16 +9,27 @@ for i in range(0, 512):
|
||||||
|
|
||||||
print >>f, "#ifndef ENGINE_KEYS_H"
|
print >>f, "#ifndef ENGINE_KEYS_H"
|
||||||
print >>f, "#define ENGINE_KEYS_H"
|
print >>f, "#define ENGINE_KEYS_H"
|
||||||
|
|
||||||
|
# KEY_EXECUTE already exists on windows platforms
|
||||||
|
print >>f, "#if defined(CONF_FAMILY_WINDOWS)"
|
||||||
|
print >>f, " #undef KEY_EXECUTE"
|
||||||
|
print >>f, "#endif"
|
||||||
|
|
||||||
print >>f, '/* AUTO GENERATED! DO NOT EDIT MANUALLY! */'
|
print >>f, '/* AUTO GENERATED! DO NOT EDIT MANUALLY! */'
|
||||||
print >>f, "enum"
|
print >>f, "enum"
|
||||||
print >>f, "{"
|
print >>f, "{"
|
||||||
|
|
||||||
|
print >>f, "\tKEY_FIRST = 0,"
|
||||||
|
|
||||||
highestid = 0
|
highestid = 0
|
||||||
for line in open("scripts/SDL_keysym.h"):
|
for line in open("scripts/SDL_scancode.h"):
|
||||||
l = line.strip().split("=")
|
l = line.strip().split("=")
|
||||||
if len(l) == 2 and "SDLK_" in line:
|
if len(l) == 2 and "SDL_SCANCODE_" in line:
|
||||||
key = l[0].strip().replace("SDLK_", "KEY_")
|
key = l[0].strip().replace("SDL_SCANCODE_", "KEY_")
|
||||||
|
|
||||||
value = int(l[1].split(",")[0].strip())
|
value = int(l[1].split(",")[0].strip())
|
||||||
|
if key[0:2] == "/*":
|
||||||
|
continue
|
||||||
print >>f, "\t%s = %d,"%(key, value)
|
print >>f, "\t%s = %d,"%(key, value)
|
||||||
|
|
||||||
keynames[value] = key.replace("KEY_", "").lower()
|
keynames[value] = key.replace("KEY_", "").lower()
|
||||||
|
@ -53,7 +64,7 @@ print >>f, '#endif'
|
||||||
print >>f, ''
|
print >>f, ''
|
||||||
print >>f, "#include <string.h>"
|
print >>f, "#include <string.h>"
|
||||||
print >>f, ""
|
print >>f, ""
|
||||||
print >>f, "const char g_aaKeyStrings[512][16] ="
|
print >>f, "const char g_aaKeyStrings[512][20] ="
|
||||||
print >>f, "{"
|
print >>f, "{"
|
||||||
for n in keynames:
|
for n in keynames:
|
||||||
print >>f, '\t"%s",'%n
|
print >>f, '\t"%s",'%n
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
|
#include <base/detect.h>
|
||||||
#include "SDL.h"
|
#include "SDL.h"
|
||||||
#include "SDL_opengl.h"
|
#include "SDL_opengl.h"
|
||||||
|
#if defined(CONF_PLATFORM_MACOSX)
|
||||||
|
#include "OpenGL/glu.h"
|
||||||
|
#else
|
||||||
|
#include "GL/glu.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <base/tl/threading.h>
|
#include <base/tl/threading.h>
|
||||||
|
|
||||||
|
@ -16,9 +21,6 @@
|
||||||
|
|
||||||
void CGraphicsBackend_Threaded::ThreadFunc(void *pUser)
|
void CGraphicsBackend_Threaded::ThreadFunc(void *pUser)
|
||||||
{
|
{
|
||||||
#ifdef CONF_PLATFORM_MACOSX
|
|
||||||
CAutoreleasePool AutoreleasePool;
|
|
||||||
#endif
|
|
||||||
CGraphicsBackend_Threaded *pThis = (CGraphicsBackend_Threaded *)pUser;
|
CGraphicsBackend_Threaded *pThis = (CGraphicsBackend_Threaded *)pUser;
|
||||||
|
|
||||||
while(!pThis->m_Shutdown)
|
while(!pThis->m_Shutdown)
|
||||||
|
@ -26,6 +28,9 @@ void CGraphicsBackend_Threaded::ThreadFunc(void *pUser)
|
||||||
pThis->m_Activity.wait();
|
pThis->m_Activity.wait();
|
||||||
if(pThis->m_pBuffer)
|
if(pThis->m_pBuffer)
|
||||||
{
|
{
|
||||||
|
#ifdef CONF_PLATFORM_MACOSX
|
||||||
|
CAutoreleasePool AutoreleasePool;
|
||||||
|
#endif
|
||||||
pThis->m_pProcessor->RunBuffer(pThis->m_pBuffer);
|
pThis->m_pProcessor->RunBuffer(pThis->m_pBuffer);
|
||||||
sync_barrier();
|
sync_barrier();
|
||||||
pThis->m_pBuffer = 0x0;
|
pThis->m_pBuffer = 0x0;
|
||||||
|
@ -505,8 +510,9 @@ bool CCommandProcessorFragment_OpenGL::RunCommand(const CCommandBuffer::SCommand
|
||||||
|
|
||||||
void CCommandProcessorFragment_SDL::Cmd_Init(const SCommand_Init *pCommand)
|
void CCommandProcessorFragment_SDL::Cmd_Init(const SCommand_Init *pCommand)
|
||||||
{
|
{
|
||||||
m_GLContext = pCommand->m_Context;
|
m_GLContext = pCommand->m_GLContext;
|
||||||
GL_MakeCurrent(m_GLContext);
|
m_pWindow = pCommand->m_pWindow;
|
||||||
|
SDL_GL_MakeCurrent(m_pWindow, m_GLContext);
|
||||||
|
|
||||||
// set some default settings
|
// set some default settings
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
|
@ -522,12 +528,12 @@ void CCommandProcessorFragment_SDL::Cmd_Init(const SCommand_Init *pCommand)
|
||||||
|
|
||||||
void CCommandProcessorFragment_SDL::Cmd_Shutdown(const SCommand_Shutdown *pCommand)
|
void CCommandProcessorFragment_SDL::Cmd_Shutdown(const SCommand_Shutdown *pCommand)
|
||||||
{
|
{
|
||||||
GL_ReleaseContext(m_GLContext);
|
SDL_GL_MakeCurrent(NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCommandProcessorFragment_SDL::Cmd_Swap(const CCommandBuffer::SCommand_Swap *pCommand)
|
void CCommandProcessorFragment_SDL::Cmd_Swap(const CCommandBuffer::SCommand_Swap *pCommand)
|
||||||
{
|
{
|
||||||
GL_SwapBuffers(m_GLContext);
|
SDL_GL_SwapWindow(m_pWindow);
|
||||||
|
|
||||||
if(pCommand->m_Finish)
|
if(pCommand->m_Finish)
|
||||||
glFinish();
|
glFinish();
|
||||||
|
@ -535,35 +541,38 @@ void CCommandProcessorFragment_SDL::Cmd_Swap(const CCommandBuffer::SCommand_Swap
|
||||||
|
|
||||||
void CCommandProcessorFragment_SDL::Cmd_VideoModes(const CCommandBuffer::SCommand_VideoModes *pCommand)
|
void CCommandProcessorFragment_SDL::Cmd_VideoModes(const CCommandBuffer::SCommand_VideoModes *pCommand)
|
||||||
{
|
{
|
||||||
// TODO: fix this code on osx or windows
|
SDL_DisplayMode mode;
|
||||||
SDL_Rect **ppModes = SDL_ListModes(NULL, SDL_OPENGL|SDL_GL_DOUBLEBUFFER|SDL_FULLSCREEN);
|
int maxModes = SDL_GetNumDisplayModes(pCommand->m_Screen),
|
||||||
if(ppModes == NULL)
|
numModes = 0;
|
||||||
|
|
||||||
|
for(int i = 0; i < maxModes; i++)
|
||||||
{
|
{
|
||||||
// no modes
|
if(SDL_GetDisplayMode(pCommand->m_Screen, i, &mode) < 0)
|
||||||
*pCommand->m_pNumModes = 0;
|
|
||||||
}
|
|
||||||
else if(ppModes == (SDL_Rect**)-1)
|
|
||||||
{
|
|
||||||
// no modes
|
|
||||||
*pCommand->m_pNumModes = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int NumModes = 0;
|
|
||||||
for(int i = 0; ppModes[i]; ++i)
|
|
||||||
{
|
{
|
||||||
if(NumModes == pCommand->m_MaxModes)
|
dbg_msg("gfx", "unable to get display mode: %s", SDL_GetError());
|
||||||
break;
|
continue;
|
||||||
pCommand->m_pModes[NumModes].m_Width = ppModes[i]->w;
|
|
||||||
pCommand->m_pModes[NumModes].m_Height = ppModes[i]->h;
|
|
||||||
pCommand->m_pModes[NumModes].m_Red = 8;
|
|
||||||
pCommand->m_pModes[NumModes].m_Green = 8;
|
|
||||||
pCommand->m_pModes[NumModes].m_Blue = 8;
|
|
||||||
NumModes++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*pCommand->m_pNumModes = NumModes;
|
bool alreadyFound = false;
|
||||||
|
for(int j = 0; j < numModes; j++)
|
||||||
|
{
|
||||||
|
if(pCommand->m_pModes[j].m_Width == mode.w && pCommand->m_pModes[j].m_Height == mode.h)
|
||||||
|
{
|
||||||
|
alreadyFound = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(alreadyFound)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
pCommand->m_pModes[numModes].m_Width = mode.w;
|
||||||
|
pCommand->m_pModes[numModes].m_Height = mode.h;
|
||||||
|
pCommand->m_pModes[numModes].m_Red = 8;
|
||||||
|
pCommand->m_pModes[numModes].m_Green = 8;
|
||||||
|
pCommand->m_pModes[numModes].m_Blue = 8;
|
||||||
|
numModes++;
|
||||||
}
|
}
|
||||||
|
*pCommand->m_pNumModes = numModes;
|
||||||
}
|
}
|
||||||
|
|
||||||
CCommandProcessorFragment_SDL::CCommandProcessorFragment_SDL()
|
CCommandProcessorFragment_SDL::CCommandProcessorFragment_SDL()
|
||||||
|
@ -610,7 +619,7 @@ void CCommandProcessor_SDL_OpenGL::RunBuffer(CCommandBuffer *pBuffer)
|
||||||
|
|
||||||
// ------------ CGraphicsBackend_SDL_OpenGL
|
// ------------ CGraphicsBackend_SDL_OpenGL
|
||||||
|
|
||||||
int CGraphicsBackend_SDL_OpenGL::Init(const char *pName, int *pWidth, int *pHeight, int FsaaSamples, int Flags, int *pDesktopWidth, int *pDesktopHeight)
|
int CGraphicsBackend_SDL_OpenGL::Init(const char *pName, int Screen, int *pWidth, int *pHeight, int FsaaSamples, int Flags, int *pDesktopWidth, int *pDesktopHeight)
|
||||||
{
|
{
|
||||||
if(!SDL_WasInit(SDL_INIT_VIDEO))
|
if(!SDL_WasInit(SDL_INIT_VIDEO))
|
||||||
{
|
{
|
||||||
|
@ -626,44 +635,43 @@ int CGraphicsBackend_SDL_OpenGL::Init(const char *pName, int *pWidth, int *pHeig
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
const SDL_VideoInfo *pInfo = SDL_GetVideoInfo();
|
SDL_Rect ScreenBounds;
|
||||||
SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE); // prevent stuck mouse cursor sdl-bug when loosing fullscreen focus in windows
|
if(SDL_GetDisplayBounds(Screen, &ScreenBounds) < 0)
|
||||||
|
{
|
||||||
|
dbg_msg("gfx", "unable to get current screen bounds: %s", SDL_GetError());
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
// use current resolution as default
|
// use current resolution as default
|
||||||
if(*pWidth == 0 || *pHeight == 0)
|
if(*pWidth == 0 || *pHeight == 0)
|
||||||
{
|
{
|
||||||
*pWidth = pInfo->current_w;
|
*pWidth = ScreenBounds.w;
|
||||||
*pHeight = pInfo->current_h;
|
*pHeight = ScreenBounds.h;
|
||||||
}
|
}
|
||||||
|
|
||||||
// store desktop resolution for settings reset button
|
// store desktop resolution for settings reset button
|
||||||
*pDesktopWidth = pInfo->current_w;
|
*pDesktopWidth = ScreenBounds.w;
|
||||||
*pDesktopHeight = pInfo->current_h;
|
*pDesktopHeight = ScreenBounds.h;
|
||||||
|
|
||||||
// set flags
|
|
||||||
int SdlFlags = SDL_OPENGL;
|
|
||||||
if(Flags&IGraphicsBackend::INITFLAG_RESIZABLE)
|
|
||||||
SdlFlags |= SDL_RESIZABLE;
|
|
||||||
|
|
||||||
if(pInfo->hw_available) // ignore_convention
|
|
||||||
SdlFlags |= SDL_HWSURFACE;
|
|
||||||
else
|
|
||||||
SdlFlags |= SDL_SWSURFACE;
|
|
||||||
|
|
||||||
if(pInfo->blit_hw) // ignore_convention
|
|
||||||
SdlFlags |= SDL_HWACCEL;
|
|
||||||
|
|
||||||
dbg_assert(!(Flags&IGraphicsBackend::INITFLAG_BORDERLESS)
|
dbg_assert(!(Flags&IGraphicsBackend::INITFLAG_BORDERLESS)
|
||||||
|| !(Flags&IGraphicsBackend::INITFLAG_FULLSCREEN),
|
|| !(Flags&IGraphicsBackend::INITFLAG_FULLSCREEN),
|
||||||
"only one of borderless and fullscreen may be activated at the same time");
|
"only one of borderless and fullscreen may be activated at the same time");
|
||||||
|
|
||||||
|
// set flags
|
||||||
|
int SdlFlags = SDL_WINDOW_OPENGL;
|
||||||
|
if(Flags&IGraphicsBackend::INITFLAG_RESIZABLE)
|
||||||
|
SdlFlags |= SDL_WINDOW_RESIZABLE;
|
||||||
if(Flags&IGraphicsBackend::INITFLAG_BORDERLESS)
|
if(Flags&IGraphicsBackend::INITFLAG_BORDERLESS)
|
||||||
SdlFlags |= SDL_NOFRAME;
|
SdlFlags |= SDL_WINDOW_BORDERLESS;
|
||||||
|
|
||||||
if(Flags&IGraphicsBackend::INITFLAG_FULLSCREEN)
|
if(Flags&IGraphicsBackend::INITFLAG_FULLSCREEN)
|
||||||
SdlFlags |= SDL_FULLSCREEN;
|
#if defined(CONF_FAMILY_WINDOWS)
|
||||||
|
SdlFlags |= SDL_WINDOW_FULLSCREEN;
|
||||||
|
#else
|
||||||
|
SdlFlags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||||
|
#endif
|
||||||
|
|
||||||
// set gl attributes
|
// set gl attributes
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||||
if(FsaaSamples)
|
if(FsaaSamples)
|
||||||
{
|
{
|
||||||
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
|
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
|
||||||
|
@ -675,20 +683,29 @@ int CGraphicsBackend_SDL_OpenGL::Init(const char *pName, int *pWidth, int *pHeig
|
||||||
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 0);
|
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
m_pWindow = SDL_CreateWindow(
|
||||||
SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, Flags&IGraphicsBackend::INITFLAG_VSYNC ? 1 : 0);
|
pName,
|
||||||
|
SDL_WINDOWPOS_UNDEFINED_DISPLAY(0),
|
||||||
|
SDL_WINDOWPOS_UNDEFINED_DISPLAY(0),
|
||||||
|
*Width,
|
||||||
|
*Height,
|
||||||
|
SdlFlags);
|
||||||
|
|
||||||
// set caption
|
if(m_pWindow == NULL)
|
||||||
SDL_WM_SetCaption(pName, pName);
|
|
||||||
|
|
||||||
// create window
|
|
||||||
m_pScreenSurface = SDL_SetVideoMode(*pWidth, *pHeight, 0, SdlFlags);
|
|
||||||
if(!m_pScreenSurface)
|
|
||||||
{
|
{
|
||||||
dbg_msg("gfx", "unable to set video mode: %s", SDL_GetError());
|
dbg_msg("gfx", "unable to create window: %s", SDL_GetError());
|
||||||
//*pCommand->m_pResult = -1;
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_GetWindowSize(m_pWindow, Width, Height);
|
||||||
|
|
||||||
|
m_GLContext = SDL_GL_CreateContext(m_pWindow);
|
||||||
|
|
||||||
|
if(m_GLContext == NULL)
|
||||||
|
{
|
||||||
|
dbg_msg("gfx", "unable to create OpenGL context: %s", SDL_GetError());
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(CONF_FAMILY_WINDOWS)
|
#if defined(CONF_FAMILY_WINDOWS)
|
||||||
glTexImage3D = (PFNGLTEXIMAGE3DPROC) wglGetProcAddress("glTexImage3D");
|
glTexImage3D = (PFNGLTEXIMAGE3DPROC) wglGetProcAddress("glTexImage3D");
|
||||||
|
@ -699,11 +716,9 @@ int CGraphicsBackend_SDL_OpenGL::Init(const char *pName, int *pWidth, int *pHeig
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SDL_ShowCursor(0);
|
SDL_GL_SetSwapInterval(Flags&IGraphicsBackend::INITFLAG_VSYNC ? 1 : 0);
|
||||||
|
|
||||||
// fetch gl contexts and release the context from this thread
|
SDL_GL_MakeCurrent(NULL, NULL);
|
||||||
m_GLContext = GL_GetCurrentContext();
|
|
||||||
GL_ReleaseContext(m_GLContext);
|
|
||||||
|
|
||||||
// start the command processor
|
// start the command processor
|
||||||
m_pProcessor = new CCommandProcessor_SDL_OpenGL;
|
m_pProcessor = new CCommandProcessor_SDL_OpenGL;
|
||||||
|
@ -715,7 +730,8 @@ int CGraphicsBackend_SDL_OpenGL::Init(const char *pName, int *pWidth, int *pHeig
|
||||||
CmdOpenGL.m_pTextureMemoryUsage = &m_TextureMemoryUsage;
|
CmdOpenGL.m_pTextureMemoryUsage = &m_TextureMemoryUsage;
|
||||||
CmdBuffer.AddCommand(CmdOpenGL);
|
CmdBuffer.AddCommand(CmdOpenGL);
|
||||||
CCommandProcessorFragment_SDL::SCommand_Init CmdSDL;
|
CCommandProcessorFragment_SDL::SCommand_Init CmdSDL;
|
||||||
CmdSDL.m_Context = m_GLContext;
|
CmdSDL.m_pWindow = m_pWindow;
|
||||||
|
CmdSDL.m_GLContext = m_GLContext;
|
||||||
CmdBuffer.AddCommand(CmdSDL);
|
CmdBuffer.AddCommand(CmdSDL);
|
||||||
RunBuffer(&CmdBuffer);
|
RunBuffer(&CmdBuffer);
|
||||||
WaitForIdle();
|
WaitForIdle();
|
||||||
|
@ -738,6 +754,8 @@ int CGraphicsBackend_SDL_OpenGL::Shutdown()
|
||||||
delete m_pProcessor;
|
delete m_pProcessor;
|
||||||
m_pProcessor = 0;
|
m_pProcessor = 0;
|
||||||
|
|
||||||
|
SDL_GL_DeleteContext(m_GLContext);
|
||||||
|
SDL_DestroyWindow(m_pWindow);
|
||||||
SDL_QuitSubSystem(SDL_INIT_VIDEO);
|
SDL_QuitSubSystem(SDL_INIT_VIDEO);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -749,7 +767,7 @@ int CGraphicsBackend_SDL_OpenGL::MemoryUsage() const
|
||||||
|
|
||||||
void CGraphicsBackend_SDL_OpenGL::Minimize()
|
void CGraphicsBackend_SDL_OpenGL::Minimize()
|
||||||
{
|
{
|
||||||
SDL_WM_IconifyWindow();
|
SDL_MinimizeWindow(m_pWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGraphicsBackend_SDL_OpenGL::Maximize()
|
void CGraphicsBackend_SDL_OpenGL::Maximize()
|
||||||
|
@ -759,12 +777,12 @@ void CGraphicsBackend_SDL_OpenGL::Maximize()
|
||||||
|
|
||||||
int CGraphicsBackend_SDL_OpenGL::WindowActive()
|
int CGraphicsBackend_SDL_OpenGL::WindowActive()
|
||||||
{
|
{
|
||||||
return SDL_GetAppState()&SDL_APPINPUTFOCUS;
|
return SDL_GetWindowFlags(m_pWindow)&SDL_WINDOW_INPUT_FOCUS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CGraphicsBackend_SDL_OpenGL::WindowOpen()
|
int CGraphicsBackend_SDL_OpenGL::WindowOpen()
|
||||||
{
|
{
|
||||||
return SDL_GetAppState()&SDL_APPACTIVE;
|
return SDL_GetWindowFlags(m_pWindow)&SDL_WINDOW_SHOWN;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,29 +2,7 @@
|
||||||
|
|
||||||
#include "graphics_threaded.h"
|
#include "graphics_threaded.h"
|
||||||
|
|
||||||
|
#if defined(CONF_PLATFORM_MACOSX)
|
||||||
// platform dependent implementations for transfering render context from the main thread to the graphics thread
|
|
||||||
// TODO: when SDL 1.3 comes, this can be removed
|
|
||||||
#if defined(CONF_FAMILY_WINDOWS)
|
|
||||||
struct SGLContext
|
|
||||||
{
|
|
||||||
HDC m_hDC;
|
|
||||||
HGLRC m_hGLRC;
|
|
||||||
};
|
|
||||||
|
|
||||||
static SGLContext GL_GetCurrentContext()
|
|
||||||
{
|
|
||||||
SGLContext Context;
|
|
||||||
Context.m_hDC = wglGetCurrentDC();
|
|
||||||
Context.m_hGLRC = wglGetCurrentContext();
|
|
||||||
return Context;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void GL_MakeCurrent(const SGLContext &Context) { wglMakeCurrent(Context.m_hDC, Context.m_hGLRC); }
|
|
||||||
static void GL_ReleaseContext(const SGLContext &Context) { wglMakeCurrent(NULL, NULL); }
|
|
||||||
static void GL_SwapBuffers(const SGLContext &Context) { SwapBuffers(Context.m_hDC); }
|
|
||||||
#elif defined(CONF_PLATFORM_MACOSX)
|
|
||||||
|
|
||||||
#include <objc/objc-runtime.h>
|
#include <objc/objc-runtime.h>
|
||||||
|
|
||||||
class semaphore
|
class semaphore
|
||||||
|
@ -37,39 +15,6 @@
|
||||||
void signal() { SDL_SemPost(sem); }
|
void signal() { SDL_SemPost(sem); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SGLContext
|
|
||||||
{
|
|
||||||
id m_Context;
|
|
||||||
};
|
|
||||||
|
|
||||||
static SGLContext GL_GetCurrentContext()
|
|
||||||
{
|
|
||||||
SGLContext Context;
|
|
||||||
Class NSOpenGLContextClass = (Class) objc_getClass("NSOpenGLContext");
|
|
||||||
SEL selector = sel_registerName("currentContext");
|
|
||||||
Context.m_Context = objc_msgSend((objc_object*) NSOpenGLContextClass, selector);
|
|
||||||
return Context;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void GL_MakeCurrent(const SGLContext &Context)
|
|
||||||
{
|
|
||||||
SEL selector = sel_registerName("makeCurrentContext");
|
|
||||||
objc_msgSend(Context.m_Context, selector);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void GL_ReleaseContext(const SGLContext &Context)
|
|
||||||
{
|
|
||||||
Class NSOpenGLContextClass = (Class) objc_getClass("NSOpenGLContext");
|
|
||||||
SEL selector = sel_registerName("clearCurrentContext");
|
|
||||||
objc_msgSend((objc_object*) NSOpenGLContextClass, selector);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void GL_SwapBuffers(const SGLContext &Context)
|
|
||||||
{
|
|
||||||
SEL selector = sel_registerName("flushBuffer");
|
|
||||||
objc_msgSend(Context.m_Context, selector);
|
|
||||||
}
|
|
||||||
|
|
||||||
class CAutoreleasePool
|
class CAutoreleasePool
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
@ -89,33 +34,7 @@
|
||||||
SEL selector = sel_registerName("drain");
|
SEL selector = sel_registerName("drain");
|
||||||
objc_msgSend(m_Pool, selector);
|
objc_msgSend(m_Pool, selector);
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
#elif defined(CONF_FAMILY_UNIX)
|
|
||||||
|
|
||||||
#include <GL/glx.h>
|
|
||||||
|
|
||||||
struct SGLContext
|
|
||||||
{
|
|
||||||
Display *m_pDisplay;
|
|
||||||
GLXDrawable m_Drawable;
|
|
||||||
GLXContext m_Context;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static SGLContext GL_GetCurrentContext()
|
|
||||||
{
|
|
||||||
SGLContext Context;
|
|
||||||
Context.m_pDisplay = glXGetCurrentDisplay();
|
|
||||||
Context.m_Drawable = glXGetCurrentDrawable();
|
|
||||||
Context.m_Context = glXGetCurrentContext();
|
|
||||||
return Context;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void GL_MakeCurrent(const SGLContext &Context) { glXMakeCurrent(Context.m_pDisplay, Context.m_Drawable, Context.m_Context); }
|
|
||||||
static void GL_ReleaseContext(const SGLContext &Context) { glXMakeCurrent(Context.m_pDisplay, None, 0x0); }
|
|
||||||
static void GL_SwapBuffers(const SGLContext &Context) { glXSwapBuffers(Context.m_pDisplay, Context.m_Drawable); }
|
|
||||||
#else
|
|
||||||
#error missing implementation
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -219,7 +138,8 @@ public:
|
||||||
class CCommandProcessorFragment_SDL
|
class CCommandProcessorFragment_SDL
|
||||||
{
|
{
|
||||||
// SDL stuff
|
// SDL stuff
|
||||||
SGLContext m_GLContext;
|
SDL_Window *m_pWindow;
|
||||||
|
SDL_GLContext m_GLContext;
|
||||||
public:
|
public:
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -230,7 +150,8 @@ public:
|
||||||
struct SCommand_Init : public CCommandBuffer::SCommand
|
struct SCommand_Init : public CCommandBuffer::SCommand
|
||||||
{
|
{
|
||||||
SCommand_Init() : SCommand(CMD_INIT) {}
|
SCommand_Init() : SCommand(CMD_INIT) {}
|
||||||
SGLContext m_Context;
|
SDL_Window *m_pWindow;
|
||||||
|
SDL_GLContext m_GLContext;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SCommand_Shutdown : public CCommandBuffer::SCommand
|
struct SCommand_Shutdown : public CCommandBuffer::SCommand
|
||||||
|
@ -262,12 +183,12 @@ class CCommandProcessor_SDL_OpenGL : public CGraphicsBackend_Threaded::ICommandP
|
||||||
// graphics backend implemented with SDL and OpenGL
|
// graphics backend implemented with SDL and OpenGL
|
||||||
class CGraphicsBackend_SDL_OpenGL : public CGraphicsBackend_Threaded
|
class CGraphicsBackend_SDL_OpenGL : public CGraphicsBackend_Threaded
|
||||||
{
|
{
|
||||||
SDL_Surface *m_pScreenSurface;
|
SDL_Window *m_pWindow;
|
||||||
|
SDL_GLContext m_GLContext;
|
||||||
ICommandProcessor *m_pProcessor;
|
ICommandProcessor *m_pProcessor;
|
||||||
SGLContext m_GLContext;
|
|
||||||
volatile int m_TextureMemoryUsage;
|
volatile int m_TextureMemoryUsage;
|
||||||
public:
|
public:
|
||||||
virtual int Init(const char *pName, int *Width, int *Height, int FsaaSamples, int Flags, int *pDesktopWidth, int *pDesktopHeight);
|
virtual int Init(const char *pName, int Screen, int *Width, int *Height, int FsaaSamples, int Flags, int *pDesktopWidth, int *pDesktopHeight);
|
||||||
virtual int Shutdown();
|
virtual int Shutdown();
|
||||||
|
|
||||||
virtual int MemoryUsage() const;
|
virtual int MemoryUsage() const;
|
||||||
|
|
|
@ -1851,19 +1851,19 @@ void CClient::Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
// panic quit button
|
// panic quit button
|
||||||
if(Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyPressed('q'))
|
if(Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyPressed(KEY_Q))
|
||||||
{
|
{
|
||||||
Quit();
|
Quit();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyDown('d'))
|
if(Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyDown(KEY_D))
|
||||||
g_Config.m_Debug ^= 1;
|
g_Config.m_Debug ^= 1;
|
||||||
|
|
||||||
if(Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyDown('g'))
|
if(Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyDown(KEY_G))
|
||||||
g_Config.m_DbgGraphs ^= 1;
|
g_Config.m_DbgGraphs ^= 1;
|
||||||
|
|
||||||
if(Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyDown('e'))
|
if(Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyDown(KEY_E))
|
||||||
{
|
{
|
||||||
g_Config.m_ClEditor = g_Config.m_ClEditor^1;
|
g_Config.m_ClEditor = g_Config.m_ClEditor^1;
|
||||||
Input()->MouseModeRelative();
|
Input()->MouseModeRelative();
|
||||||
|
|
|
@ -718,7 +718,7 @@ int CGraphics_Threaded::IssueInit()
|
||||||
if(g_Config.m_GfxVsync) Flags |= IGraphicsBackend::INITFLAG_VSYNC;
|
if(g_Config.m_GfxVsync) Flags |= IGraphicsBackend::INITFLAG_VSYNC;
|
||||||
if(g_Config.m_DbgResizable) Flags |= IGraphicsBackend::INITFLAG_RESIZABLE;
|
if(g_Config.m_DbgResizable) Flags |= IGraphicsBackend::INITFLAG_RESIZABLE;
|
||||||
|
|
||||||
return m_pBackend->Init("Teeworlds", &g_Config.m_GfxScreenWidth, &g_Config.m_GfxScreenHeight, g_Config.m_GfxFsaaSamples, Flags, &m_DesktopScreenWidth, &m_DesktopScreenHeight);
|
return m_pBackend->Init("Teeworlds", g_Config.m_GfxScreen, &g_Config.m_GfxScreenWidth, &g_Config.m_GfxScreenHeight, g_Config.m_GfxFsaaSamples, Flags, &m_DesktopScreenWidth, &m_DesktopScreenHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CGraphics_Threaded::InitWindow()
|
int CGraphics_Threaded::InitWindow()
|
||||||
|
@ -907,7 +907,7 @@ void CGraphics_Threaded::WaitForIdle()
|
||||||
m_pBackend->WaitForIdle();
|
m_pBackend->WaitForIdle();
|
||||||
}
|
}
|
||||||
|
|
||||||
int CGraphics_Threaded::GetVideoModes(CVideoMode *pModes, int MaxModes)
|
int CGraphics_Threaded::GetVideoModes(CVideoMode *pModes, int MaxModes, int Screen)
|
||||||
{
|
{
|
||||||
if(g_Config.m_GfxDisplayAllModes)
|
if(g_Config.m_GfxDisplayAllModes)
|
||||||
{
|
{
|
||||||
|
@ -923,7 +923,7 @@ int CGraphics_Threaded::GetVideoModes(CVideoMode *pModes, int MaxModes)
|
||||||
mem_zero(&Image, sizeof(Image));
|
mem_zero(&Image, sizeof(Image));
|
||||||
|
|
||||||
int NumModes = 0;
|
int NumModes = 0;
|
||||||
CCommandBuffer::SCommand_VideoModes Cmd;
|
CCommandBuffer::SCommand_VideoModes Cmd(Screen);
|
||||||
Cmd.m_pModes = pModes;
|
Cmd.m_pModes = pModes;
|
||||||
Cmd.m_MaxModes = MaxModes;
|
Cmd.m_MaxModes = MaxModes;
|
||||||
Cmd.m_pNumModes = &NumModes;
|
Cmd.m_pNumModes = &NumModes;
|
||||||
|
|
|
@ -188,11 +188,13 @@ public:
|
||||||
|
|
||||||
struct SCommand_VideoModes : public SCommand
|
struct SCommand_VideoModes : public SCommand
|
||||||
{
|
{
|
||||||
SCommand_VideoModes() : SCommand(CMD_VIDEOMODES) {}
|
SCommand_VideoModes(int screen) : SCommand(CMD_VIDEOMODES),
|
||||||
|
m_Screen(screen) {}
|
||||||
|
|
||||||
CVideoMode *m_pModes; // processor will fill this in
|
CVideoMode *m_pModes; // processor will fill this in
|
||||||
int m_MaxModes; // maximum of modes the processor can write to the m_pModes
|
int m_MaxModes; // maximum of modes the processor can write to the m_pModes
|
||||||
int *m_pNumModes; // processor will write to this pointer
|
int *m_pNumModes; // processor will write to this pointer
|
||||||
|
int m_Screen;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SCommand_Swap : public SCommand
|
struct SCommand_Swap : public SCommand
|
||||||
|
@ -300,7 +302,7 @@ public:
|
||||||
|
|
||||||
virtual ~IGraphicsBackend() {}
|
virtual ~IGraphicsBackend() {}
|
||||||
|
|
||||||
virtual int Init(const char *pName, int *pWidth, int *pHeight, int FsaaSamples, int Flags, int *pDesktopWidth, int *pDesktopHeight) = 0;
|
virtual int Init(const char *pName, int Screen, int *pWidth, int *pHeight, int FsaaSamples, int Flags, int *pDesktopWidth, int *pDesktopHeight) = 0;
|
||||||
virtual int Shutdown() = 0;
|
virtual int Shutdown() = 0;
|
||||||
|
|
||||||
virtual int MemoryUsage() const = 0;
|
virtual int MemoryUsage() const = 0;
|
||||||
|
@ -433,7 +435,7 @@ public:
|
||||||
virtual void TakeScreenshot(const char *pFilename);
|
virtual void TakeScreenshot(const char *pFilename);
|
||||||
virtual void Swap();
|
virtual void Swap();
|
||||||
|
|
||||||
virtual int GetVideoModes(CVideoMode *pModes, int MaxModes);
|
virtual int GetVideoModes(CVideoMode *pModes, int MaxModes, int Screen);
|
||||||
|
|
||||||
virtual int GetDesktopScreenWidth() const { return m_DesktopScreenWidth; }
|
virtual int GetDesktopScreenWidth() const { return m_DesktopScreenWidth; }
|
||||||
virtual int GetDesktopScreenHeight() const { return m_DesktopScreenHeight; }
|
virtual int GetDesktopScreenHeight() const { return m_DesktopScreenHeight; }
|
||||||
|
|
|
@ -46,8 +46,10 @@ CInput::CInput()
|
||||||
void CInput::Init()
|
void CInput::Init()
|
||||||
{
|
{
|
||||||
m_pGraphics = Kernel()->RequestInterface<IEngineGraphics>();
|
m_pGraphics = Kernel()->RequestInterface<IEngineGraphics>();
|
||||||
SDL_EnableUNICODE(1);
|
// FIXME: unicode handling: use SDL_StartTextInput/SDL_StopTextInput on inputs
|
||||||
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
|
// FIXME: key repeat: not a global setting anymore; need to do manually
|
||||||
|
|
||||||
|
SDL_SetRelativeMouseMode(SDL_TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CInput::MouseRelative(float *x, float *y)
|
void CInput::MouseRelative(float *x, float *y)
|
||||||
|
@ -55,16 +57,9 @@ void CInput::MouseRelative(float *x, float *y)
|
||||||
int nx = 0, ny = 0;
|
int nx = 0, ny = 0;
|
||||||
float Sens = g_Config.m_InpMousesens/100.0f;
|
float Sens = g_Config.m_InpMousesens/100.0f;
|
||||||
|
|
||||||
if(g_Config.m_InpGrab)
|
if(m_InputGrabbed)
|
||||||
SDL_GetRelativeMouseState(&nx, &ny);
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if(m_InputGrabbed)
|
SDL_GetRelativeMouseState(&nx,&ny);
|
||||||
{
|
|
||||||
SDL_GetMouseState(&nx,&ny);
|
|
||||||
SDL_WarpMouse(Graphics()->ScreenWidth()/2,Graphics()->ScreenHeight()/2);
|
|
||||||
nx -= Graphics()->ScreenWidth()/2; ny -= Graphics()->ScreenHeight()/2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*x = nx*Sens;
|
*x = nx*Sens;
|
||||||
|
@ -73,18 +68,14 @@ void CInput::MouseRelative(float *x, float *y)
|
||||||
|
|
||||||
void CInput::MouseModeAbsolute()
|
void CInput::MouseModeAbsolute()
|
||||||
{
|
{
|
||||||
SDL_ShowCursor(1);
|
|
||||||
m_InputGrabbed = 0;
|
m_InputGrabbed = 0;
|
||||||
if(g_Config.m_InpGrab)
|
SDL_SetRelativeMouseMode(SDL_FALSE);
|
||||||
SDL_WM_GrabInput(SDL_GRAB_OFF);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CInput::MouseModeRelative()
|
void CInput::MouseModeRelative()
|
||||||
{
|
{
|
||||||
SDL_ShowCursor(0);
|
|
||||||
m_InputGrabbed = 1;
|
m_InputGrabbed = 1;
|
||||||
if(g_Config.m_InpGrab)
|
SDL_SetRelativeMouseMode(SDL_TRUE);
|
||||||
SDL_WM_GrabInput(SDL_GRAB_ON);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int CInput::MouseDoubleClick()
|
int CInput::MouseDoubleClick()
|
||||||
|
@ -128,7 +119,7 @@ int CInput::Update()
|
||||||
|
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Uint8 *pState = SDL_GetKeyState(&i);
|
const Uint8 *pState = SDL_GetKeyboardState(&i);
|
||||||
if(i >= KEY_LAST)
|
if(i >= KEY_LAST)
|
||||||
i = KEY_LAST-1;
|
i = KEY_LAST-1;
|
||||||
mem_copy(m_aInputState[m_InputCurrent], pState, i);
|
mem_copy(m_aInputState[m_InputCurrent], pState, i);
|
||||||
|
@ -155,16 +146,23 @@ int CInput::Update()
|
||||||
int Action = IInput::FLAG_PRESS;
|
int Action = IInput::FLAG_PRESS;
|
||||||
switch (Event.type)
|
switch (Event.type)
|
||||||
{
|
{
|
||||||
|
case SDL_TEXTINPUT:
|
||||||
|
{
|
||||||
|
int TextLength, i;
|
||||||
|
TextLength = strlen(Event.text.text);
|
||||||
|
for(i = 0; i < TextLength; i++)
|
||||||
|
{
|
||||||
|
AddEvent(Event.text.text[i], 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// handle keys
|
// handle keys
|
||||||
case SDL_KEYDOWN:
|
case SDL_KEYDOWN:
|
||||||
// skip private use area of the BMP(contains the unicodes for keyboard function keys on MacOS)
|
Key = SDL_GetScancodeFromName(SDL_GetKeyName(Event.key.keysym.sym));
|
||||||
if(Event.key.keysym.unicode < 0xE000 || Event.key.keysym.unicode > 0xF8FF) // ignore_convention
|
|
||||||
AddEvent(Event.key.keysym.unicode, 0, 0); // ignore_convention
|
|
||||||
Key = Event.key.keysym.sym; // ignore_convention
|
|
||||||
break;
|
break;
|
||||||
case SDL_KEYUP:
|
case SDL_KEYUP:
|
||||||
Action = IInput::FLAG_RELEASE;
|
Action = IInput::FLAG_RELEASE;
|
||||||
Key = Event.key.keysym.sym; // ignore_convention
|
Key = SDL_GetScancodeFromName(SDL_GetKeyName(Event.key.keysym.sym));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// handle mouse buttons
|
// handle mouse buttons
|
||||||
|
@ -182,14 +180,19 @@ int CInput::Update()
|
||||||
if(Event.button.button == SDL_BUTTON_LEFT) Key = KEY_MOUSE_1; // ignore_convention
|
if(Event.button.button == SDL_BUTTON_LEFT) Key = KEY_MOUSE_1; // ignore_convention
|
||||||
if(Event.button.button == SDL_BUTTON_RIGHT) Key = KEY_MOUSE_2; // ignore_convention
|
if(Event.button.button == SDL_BUTTON_RIGHT) Key = KEY_MOUSE_2; // ignore_convention
|
||||||
if(Event.button.button == SDL_BUTTON_MIDDLE) Key = KEY_MOUSE_3; // ignore_convention
|
if(Event.button.button == SDL_BUTTON_MIDDLE) Key = KEY_MOUSE_3; // ignore_convention
|
||||||
if(Event.button.button == SDL_BUTTON_WHEELUP) Key = KEY_MOUSE_WHEEL_UP; // ignore_convention
|
|
||||||
if(Event.button.button == SDL_BUTTON_WHEELDOWN) Key = KEY_MOUSE_WHEEL_DOWN; // ignore_convention
|
|
||||||
if(Event.button.button == 6) Key = KEY_MOUSE_6; // ignore_convention
|
if(Event.button.button == 6) Key = KEY_MOUSE_6; // ignore_convention
|
||||||
if(Event.button.button == 7) Key = KEY_MOUSE_7; // ignore_convention
|
if(Event.button.button == 7) Key = KEY_MOUSE_7; // ignore_convention
|
||||||
if(Event.button.button == 8) Key = KEY_MOUSE_8; // ignore_convention
|
if(Event.button.button == 8) Key = KEY_MOUSE_8; // ignore_convention
|
||||||
if(Event.button.button == 9) Key = KEY_MOUSE_9; // ignore_convention
|
if(Event.button.button == 9) Key = KEY_MOUSE_9; // ignore_convention
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SDL_MOUSEWHEEL:
|
||||||
|
if(Event.wheel.y > 0) Key = KEY_MOUSE_WHEEL_UP; // ignore_convention
|
||||||
|
if(Event.wheel.y < 0) Key = KEY_MOUSE_WHEEL_DOWN; // ignore_convention
|
||||||
|
AddEvent(0, Key, Action);
|
||||||
|
Action = IInput::FLAG_RELEASE;
|
||||||
|
break;
|
||||||
|
|
||||||
// other messages
|
// other messages
|
||||||
case SDL_QUIT:
|
case SDL_QUIT:
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
|
||||||
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
|
||||||
/* AUTO GENERATED! DO NOT EDIT MANUALLY! */
|
/* AUTO GENERATED! DO NOT EDIT MANUALLY! */
|
||||||
|
|
||||||
#ifndef KEYS_INCLUDE
|
#ifndef KEYS_INCLUDE
|
||||||
|
@ -8,105 +6,12 @@
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
const char g_aaKeyStrings[512][16] =
|
const char g_aaKeyStrings[512][20] =
|
||||||
{
|
{
|
||||||
"first",
|
"unknown",
|
||||||
"&1",
|
"&1",
|
||||||
"&2",
|
"&2",
|
||||||
"&3",
|
"&3",
|
||||||
"&4",
|
|
||||||
"&5",
|
|
||||||
"&6",
|
|
||||||
"&7",
|
|
||||||
"backspace",
|
|
||||||
"tab",
|
|
||||||
"&10",
|
|
||||||
"&11",
|
|
||||||
"clear",
|
|
||||||
"return",
|
|
||||||
"&14",
|
|
||||||
"&15",
|
|
||||||
"&16",
|
|
||||||
"&17",
|
|
||||||
"&18",
|
|
||||||
"pause",
|
|
||||||
"&20",
|
|
||||||
"&21",
|
|
||||||
"&22",
|
|
||||||
"&23",
|
|
||||||
"&24",
|
|
||||||
"&25",
|
|
||||||
"&26",
|
|
||||||
"escape",
|
|
||||||
"&28",
|
|
||||||
"&29",
|
|
||||||
"&30",
|
|
||||||
"&31",
|
|
||||||
"space",
|
|
||||||
"exclaim",
|
|
||||||
"quotedbl",
|
|
||||||
"hash",
|
|
||||||
"dollar",
|
|
||||||
"&37",
|
|
||||||
"ampersand",
|
|
||||||
"quote",
|
|
||||||
"leftparen",
|
|
||||||
"rightparen",
|
|
||||||
"asterisk",
|
|
||||||
"plus",
|
|
||||||
"comma",
|
|
||||||
"minus",
|
|
||||||
"period",
|
|
||||||
"slash",
|
|
||||||
"0",
|
|
||||||
"1",
|
|
||||||
"2",
|
|
||||||
"3",
|
|
||||||
"4",
|
|
||||||
"5",
|
|
||||||
"6",
|
|
||||||
"7",
|
|
||||||
"8",
|
|
||||||
"9",
|
|
||||||
"colon",
|
|
||||||
"semicolon",
|
|
||||||
"less",
|
|
||||||
"equals",
|
|
||||||
"greater",
|
|
||||||
"question",
|
|
||||||
"at",
|
|
||||||
"&65",
|
|
||||||
"&66",
|
|
||||||
"&67",
|
|
||||||
"&68",
|
|
||||||
"&69",
|
|
||||||
"&70",
|
|
||||||
"&71",
|
|
||||||
"&72",
|
|
||||||
"&73",
|
|
||||||
"&74",
|
|
||||||
"&75",
|
|
||||||
"&76",
|
|
||||||
"&77",
|
|
||||||
"&78",
|
|
||||||
"&79",
|
|
||||||
"&80",
|
|
||||||
"&81",
|
|
||||||
"&82",
|
|
||||||
"&83",
|
|
||||||
"&84",
|
|
||||||
"&85",
|
|
||||||
"&86",
|
|
||||||
"&87",
|
|
||||||
"&88",
|
|
||||||
"&89",
|
|
||||||
"&90",
|
|
||||||
"leftbracket",
|
|
||||||
"backslash",
|
|
||||||
"rightbracket",
|
|
||||||
"caret",
|
|
||||||
"underscore",
|
|
||||||
"backquote",
|
|
||||||
"a",
|
"a",
|
||||||
"b",
|
"b",
|
||||||
"c",
|
"c",
|
||||||
|
@ -133,165 +38,34 @@ const char g_aaKeyStrings[512][16] =
|
||||||
"x",
|
"x",
|
||||||
"y",
|
"y",
|
||||||
"z",
|
"z",
|
||||||
"&123",
|
"1",
|
||||||
"&124",
|
"2",
|
||||||
"&125",
|
"3",
|
||||||
"&126",
|
"4",
|
||||||
"delete",
|
"5",
|
||||||
"&128",
|
"6",
|
||||||
"&129",
|
"7",
|
||||||
"&130",
|
"8",
|
||||||
"&131",
|
"9",
|
||||||
"&132",
|
"0",
|
||||||
"&133",
|
"return",
|
||||||
"&134",
|
"escape",
|
||||||
"&135",
|
"backspace",
|
||||||
"&136",
|
"tab",
|
||||||
"&137",
|
"space",
|
||||||
"&138",
|
"minus",
|
||||||
"&139",
|
"equals",
|
||||||
"&140",
|
"leftbracket",
|
||||||
"&141",
|
"rightbracket",
|
||||||
"&142",
|
"backslash",
|
||||||
"&143",
|
"nonushash",
|
||||||
"&144",
|
"semicolon",
|
||||||
"&145",
|
"apostrophe",
|
||||||
"&146",
|
"grave",
|
||||||
"&147",
|
"comma",
|
||||||
"&148",
|
"period",
|
||||||
"&149",
|
"slash",
|
||||||
"&150",
|
"capslock",
|
||||||
"&151",
|
|
||||||
"&152",
|
|
||||||
"&153",
|
|
||||||
"&154",
|
|
||||||
"&155",
|
|
||||||
"&156",
|
|
||||||
"&157",
|
|
||||||
"&158",
|
|
||||||
"&159",
|
|
||||||
"world_0",
|
|
||||||
"world_1",
|
|
||||||
"world_2",
|
|
||||||
"world_3",
|
|
||||||
"world_4",
|
|
||||||
"world_5",
|
|
||||||
"world_6",
|
|
||||||
"world_7",
|
|
||||||
"world_8",
|
|
||||||
"world_9",
|
|
||||||
"world_10",
|
|
||||||
"world_11",
|
|
||||||
"world_12",
|
|
||||||
"world_13",
|
|
||||||
"world_14",
|
|
||||||
"world_15",
|
|
||||||
"world_16",
|
|
||||||
"world_17",
|
|
||||||
"world_18",
|
|
||||||
"world_19",
|
|
||||||
"world_20",
|
|
||||||
"world_21",
|
|
||||||
"world_22",
|
|
||||||
"world_23",
|
|
||||||
"world_24",
|
|
||||||
"world_25",
|
|
||||||
"world_26",
|
|
||||||
"world_27",
|
|
||||||
"world_28",
|
|
||||||
"world_29",
|
|
||||||
"world_30",
|
|
||||||
"world_31",
|
|
||||||
"world_32",
|
|
||||||
"world_33",
|
|
||||||
"world_34",
|
|
||||||
"world_35",
|
|
||||||
"world_36",
|
|
||||||
"world_37",
|
|
||||||
"world_38",
|
|
||||||
"world_39",
|
|
||||||
"world_40",
|
|
||||||
"world_41",
|
|
||||||
"world_42",
|
|
||||||
"world_43",
|
|
||||||
"world_44",
|
|
||||||
"world_45",
|
|
||||||
"world_46",
|
|
||||||
"world_47",
|
|
||||||
"world_48",
|
|
||||||
"world_49",
|
|
||||||
"world_50",
|
|
||||||
"world_51",
|
|
||||||
"world_52",
|
|
||||||
"world_53",
|
|
||||||
"world_54",
|
|
||||||
"world_55",
|
|
||||||
"world_56",
|
|
||||||
"world_57",
|
|
||||||
"world_58",
|
|
||||||
"world_59",
|
|
||||||
"world_60",
|
|
||||||
"world_61",
|
|
||||||
"world_62",
|
|
||||||
"world_63",
|
|
||||||
"world_64",
|
|
||||||
"world_65",
|
|
||||||
"world_66",
|
|
||||||
"world_67",
|
|
||||||
"world_68",
|
|
||||||
"world_69",
|
|
||||||
"world_70",
|
|
||||||
"world_71",
|
|
||||||
"world_72",
|
|
||||||
"world_73",
|
|
||||||
"world_74",
|
|
||||||
"world_75",
|
|
||||||
"world_76",
|
|
||||||
"world_77",
|
|
||||||
"world_78",
|
|
||||||
"world_79",
|
|
||||||
"world_80",
|
|
||||||
"world_81",
|
|
||||||
"world_82",
|
|
||||||
"world_83",
|
|
||||||
"world_84",
|
|
||||||
"world_85",
|
|
||||||
"world_86",
|
|
||||||
"world_87",
|
|
||||||
"world_88",
|
|
||||||
"world_89",
|
|
||||||
"world_90",
|
|
||||||
"world_91",
|
|
||||||
"world_92",
|
|
||||||
"world_93",
|
|
||||||
"world_94",
|
|
||||||
"world_95",
|
|
||||||
"kp0",
|
|
||||||
"kp1",
|
|
||||||
"kp2",
|
|
||||||
"kp3",
|
|
||||||
"kp4",
|
|
||||||
"kp5",
|
|
||||||
"kp6",
|
|
||||||
"kp7",
|
|
||||||
"kp8",
|
|
||||||
"kp9",
|
|
||||||
"kp_period",
|
|
||||||
"kp_divide",
|
|
||||||
"kp_multiply",
|
|
||||||
"kp_minus",
|
|
||||||
"kp_plus",
|
|
||||||
"kp_enter",
|
|
||||||
"kp_equals",
|
|
||||||
"up",
|
|
||||||
"down",
|
|
||||||
"right",
|
|
||||||
"left",
|
|
||||||
"insert",
|
|
||||||
"home",
|
|
||||||
"end",
|
|
||||||
"pageup",
|
|
||||||
"pagedown",
|
|
||||||
"f1",
|
"f1",
|
||||||
"f2",
|
"f2",
|
||||||
"f3",
|
"f3",
|
||||||
|
@ -304,35 +78,221 @@ const char g_aaKeyStrings[512][16] =
|
||||||
"f10",
|
"f10",
|
||||||
"f11",
|
"f11",
|
||||||
"f12",
|
"f12",
|
||||||
|
"printscreen",
|
||||||
|
"scrolllock",
|
||||||
|
"pause",
|
||||||
|
"insert",
|
||||||
|
"home",
|
||||||
|
"pageup",
|
||||||
|
"delete",
|
||||||
|
"end",
|
||||||
|
"pagedown",
|
||||||
|
"right",
|
||||||
|
"left",
|
||||||
|
"down",
|
||||||
|
"up",
|
||||||
|
"numlockclear",
|
||||||
|
"kp_divide",
|
||||||
|
"kp_multiply",
|
||||||
|
"kp_minus",
|
||||||
|
"kp_plus",
|
||||||
|
"kp_enter",
|
||||||
|
"kp_1",
|
||||||
|
"kp_2",
|
||||||
|
"kp_3",
|
||||||
|
"kp_4",
|
||||||
|
"kp_5",
|
||||||
|
"kp_6",
|
||||||
|
"kp_7",
|
||||||
|
"kp_8",
|
||||||
|
"kp_9",
|
||||||
|
"kp_0",
|
||||||
|
"kp_period",
|
||||||
|
"nonusbackslash",
|
||||||
|
"application",
|
||||||
|
"power",
|
||||||
|
"kp_equals",
|
||||||
"f13",
|
"f13",
|
||||||
"f14",
|
"f14",
|
||||||
"f15",
|
"f15",
|
||||||
"&297",
|
"f16",
|
||||||
"&298",
|
"f17",
|
||||||
"&299",
|
"f18",
|
||||||
"numlock",
|
"f19",
|
||||||
"capslock",
|
"f20",
|
||||||
"scrollock",
|
"f21",
|
||||||
"rshift",
|
"f22",
|
||||||
"lshift",
|
"f23",
|
||||||
"rctrl",
|
"f24",
|
||||||
"lctrl",
|
"execute",
|
||||||
"ralt",
|
|
||||||
"lalt",
|
|
||||||
"rmeta",
|
|
||||||
"lmeta",
|
|
||||||
"lsuper",
|
|
||||||
"rsuper",
|
|
||||||
"mode",
|
|
||||||
"compose",
|
|
||||||
"help",
|
"help",
|
||||||
"print",
|
|
||||||
"sysreq",
|
|
||||||
"break",
|
|
||||||
"menu",
|
"menu",
|
||||||
"power",
|
"select",
|
||||||
"euro",
|
"stop",
|
||||||
|
"again",
|
||||||
"undo",
|
"undo",
|
||||||
|
"cut",
|
||||||
|
"copy",
|
||||||
|
"paste",
|
||||||
|
"find",
|
||||||
|
"mute",
|
||||||
|
"volumeup",
|
||||||
|
"volumedown",
|
||||||
|
"&130",
|
||||||
|
"&131",
|
||||||
|
"&132",
|
||||||
|
"kp_comma",
|
||||||
|
"kp_equalsas400",
|
||||||
|
"international1",
|
||||||
|
"international2",
|
||||||
|
"international3",
|
||||||
|
"international4",
|
||||||
|
"international5",
|
||||||
|
"international6",
|
||||||
|
"international7",
|
||||||
|
"international8",
|
||||||
|
"international9",
|
||||||
|
"lang1",
|
||||||
|
"lang2",
|
||||||
|
"lang3",
|
||||||
|
"lang4",
|
||||||
|
"lang5",
|
||||||
|
"lang6",
|
||||||
|
"lang7",
|
||||||
|
"lang8",
|
||||||
|
"lang9",
|
||||||
|
"alterase",
|
||||||
|
"sysreq",
|
||||||
|
"cancel",
|
||||||
|
"clear",
|
||||||
|
"prior",
|
||||||
|
"return2",
|
||||||
|
"separator",
|
||||||
|
"out",
|
||||||
|
"oper",
|
||||||
|
"clearagain",
|
||||||
|
"crsel",
|
||||||
|
"exsel",
|
||||||
|
"&165",
|
||||||
|
"&166",
|
||||||
|
"&167",
|
||||||
|
"&168",
|
||||||
|
"&169",
|
||||||
|
"&170",
|
||||||
|
"&171",
|
||||||
|
"&172",
|
||||||
|
"&173",
|
||||||
|
"&174",
|
||||||
|
"&175",
|
||||||
|
"kp_00",
|
||||||
|
"kp_000",
|
||||||
|
"thousandsseparator",
|
||||||
|
"decimalseparator",
|
||||||
|
"currencyunit",
|
||||||
|
"currencysubunit",
|
||||||
|
"kp_leftparen",
|
||||||
|
"kp_rightparen",
|
||||||
|
"kp_leftbrace",
|
||||||
|
"kp_rightbrace",
|
||||||
|
"kp_tab",
|
||||||
|
"kp_backspace",
|
||||||
|
"kp_a",
|
||||||
|
"kp_b",
|
||||||
|
"kp_c",
|
||||||
|
"kp_d",
|
||||||
|
"kp_e",
|
||||||
|
"kp_f",
|
||||||
|
"kp_xor",
|
||||||
|
"kp_power",
|
||||||
|
"kp_percent",
|
||||||
|
"kp_less",
|
||||||
|
"kp_greater",
|
||||||
|
"kp_ampersand",
|
||||||
|
"kp_dblampersand",
|
||||||
|
"kp_verticalbar",
|
||||||
|
"kp_dblverticalbar",
|
||||||
|
"kp_colon",
|
||||||
|
"kp_hash",
|
||||||
|
"kp_space",
|
||||||
|
"kp_at",
|
||||||
|
"kp_exclam",
|
||||||
|
"kp_memstore",
|
||||||
|
"kp_memrecall",
|
||||||
|
"kp_memclear",
|
||||||
|
"kp_memadd",
|
||||||
|
"kp_memsubtract",
|
||||||
|
"kp_memmultiply",
|
||||||
|
"kp_memdivide",
|
||||||
|
"kp_plusminus",
|
||||||
|
"kp_clear",
|
||||||
|
"kp_clearentry",
|
||||||
|
"kp_binary",
|
||||||
|
"kp_octal",
|
||||||
|
"kp_decimal",
|
||||||
|
"kp_hexadecimal",
|
||||||
|
"&222",
|
||||||
|
"&223",
|
||||||
|
"lctrl",
|
||||||
|
"lshift",
|
||||||
|
"lalt",
|
||||||
|
"lgui",
|
||||||
|
"rctrl",
|
||||||
|
"rshift",
|
||||||
|
"ralt",
|
||||||
|
"rgui",
|
||||||
|
"&232",
|
||||||
|
"&233",
|
||||||
|
"&234",
|
||||||
|
"&235",
|
||||||
|
"&236",
|
||||||
|
"&237",
|
||||||
|
"&238",
|
||||||
|
"&239",
|
||||||
|
"&240",
|
||||||
|
"&241",
|
||||||
|
"&242",
|
||||||
|
"&243",
|
||||||
|
"&244",
|
||||||
|
"&245",
|
||||||
|
"&246",
|
||||||
|
"&247",
|
||||||
|
"&248",
|
||||||
|
"&249",
|
||||||
|
"&250",
|
||||||
|
"&251",
|
||||||
|
"&252",
|
||||||
|
"&253",
|
||||||
|
"&254",
|
||||||
|
"&255",
|
||||||
|
"&256",
|
||||||
|
"mode",
|
||||||
|
"audionext",
|
||||||
|
"audioprev",
|
||||||
|
"audiostop",
|
||||||
|
"audioplay",
|
||||||
|
"audiomute",
|
||||||
|
"mediaselect",
|
||||||
|
"www",
|
||||||
|
"mail",
|
||||||
|
"calculator",
|
||||||
|
"computer",
|
||||||
|
"ac_search",
|
||||||
|
"ac_home",
|
||||||
|
"ac_back",
|
||||||
|
"ac_forward",
|
||||||
|
"ac_stop",
|
||||||
|
"ac_refresh",
|
||||||
|
"ac_bookmarks",
|
||||||
|
"brightnessdown",
|
||||||
|
"brightnessup",
|
||||||
|
"displayswitch",
|
||||||
|
"kbdillumtoggle",
|
||||||
|
"kbdillumdown",
|
||||||
|
"kbdillumup",
|
||||||
|
"eject",
|
||||||
|
"sleep",
|
||||||
|
"app1",
|
||||||
|
"app2",
|
||||||
"mouse1",
|
"mouse1",
|
||||||
"mouse2",
|
"mouse2",
|
||||||
"mouse3",
|
"mouse3",
|
||||||
|
@ -343,7 +303,45 @@ const char g_aaKeyStrings[512][16] =
|
||||||
"mouse8",
|
"mouse8",
|
||||||
"mousewheelup",
|
"mousewheelup",
|
||||||
"mousewheeldown",
|
"mousewheeldown",
|
||||||
"mouse9",
|
"&295",
|
||||||
|
"&296",
|
||||||
|
"&297",
|
||||||
|
"&298",
|
||||||
|
"&299",
|
||||||
|
"&300",
|
||||||
|
"&301",
|
||||||
|
"&302",
|
||||||
|
"&303",
|
||||||
|
"&304",
|
||||||
|
"&305",
|
||||||
|
"&306",
|
||||||
|
"&307",
|
||||||
|
"&308",
|
||||||
|
"&309",
|
||||||
|
"&310",
|
||||||
|
"&311",
|
||||||
|
"&312",
|
||||||
|
"&313",
|
||||||
|
"&314",
|
||||||
|
"&315",
|
||||||
|
"&316",
|
||||||
|
"&317",
|
||||||
|
"&318",
|
||||||
|
"&319",
|
||||||
|
"&320",
|
||||||
|
"&321",
|
||||||
|
"&322",
|
||||||
|
"&323",
|
||||||
|
"&324",
|
||||||
|
"&325",
|
||||||
|
"&326",
|
||||||
|
"&327",
|
||||||
|
"&328",
|
||||||
|
"&329",
|
||||||
|
"&330",
|
||||||
|
"&331",
|
||||||
|
"&332",
|
||||||
|
"&333",
|
||||||
"&334",
|
"&334",
|
||||||
"&335",
|
"&335",
|
||||||
"&336",
|
"&336",
|
||||||
|
|
|
@ -168,7 +168,7 @@ public:
|
||||||
virtual void SetColor4(vec4 TopLeft, vec4 TopRight, vec4 BottomLeft, vec4 BottomRight) = 0;
|
virtual void SetColor4(vec4 TopLeft, vec4 TopRight, vec4 BottomLeft, vec4 BottomRight) = 0;
|
||||||
|
|
||||||
virtual void TakeScreenshot(const char *pFilename) = 0;
|
virtual void TakeScreenshot(const char *pFilename) = 0;
|
||||||
virtual int GetVideoModes(CVideoMode *pModes, int MaxModes) = 0;
|
virtual int GetVideoModes(CVideoMode *pModes, int MaxModes, int Screen) = 0;
|
||||||
|
|
||||||
virtual int GetDesktopScreenWidth() const = 0;
|
virtual int GetDesktopScreenWidth() const = 0;
|
||||||
virtual int GetDesktopScreenHeight() const = 0;
|
virtual int GetDesktopScreenHeight() const = 0;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
#include "kernel.h"
|
#include "kernel.h"
|
||||||
|
|
||||||
extern const char g_aaKeyStrings[512][16];
|
extern const char g_aaKeyStrings[512][20];
|
||||||
|
|
||||||
class IInput : public IInterface
|
class IInput : public IInterface
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,254 +1,264 @@
|
||||||
/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
|
|
||||||
/* If you are missing that file, acquire a complete release at teeworlds.com. */
|
|
||||||
#ifndef ENGINE_KEYS_H
|
#ifndef ENGINE_KEYS_H
|
||||||
#define ENGINE_KEYS_H
|
#define ENGINE_KEYS_H
|
||||||
|
#if defined(CONF_FAMILY_WINDOWS)
|
||||||
|
#undef KEY_EXECUTE
|
||||||
|
#endif
|
||||||
/* AUTO GENERATED! DO NOT EDIT MANUALLY! */
|
/* AUTO GENERATED! DO NOT EDIT MANUALLY! */
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
KEY_UNKNOWN = 0,
|
|
||||||
KEY_FIRST = 0,
|
KEY_FIRST = 0,
|
||||||
KEY_BACKSPACE = 8,
|
KEY_UNKNOWN = 0,
|
||||||
KEY_TAB = 9,
|
KEY_A = 4,
|
||||||
KEY_CLEAR = 12,
|
KEY_B = 5,
|
||||||
KEY_RETURN = 13,
|
KEY_C = 6,
|
||||||
KEY_PAUSE = 19,
|
KEY_D = 7,
|
||||||
KEY_ESCAPE = 27,
|
KEY_E = 8,
|
||||||
KEY_SPACE = 32,
|
KEY_F = 9,
|
||||||
KEY_EXCLAIM = 33,
|
KEY_G = 10,
|
||||||
KEY_QUOTEDBL = 34,
|
KEY_H = 11,
|
||||||
KEY_HASH = 35,
|
KEY_I = 12,
|
||||||
KEY_DOLLAR = 36,
|
KEY_J = 13,
|
||||||
KEY_AMPERSAND = 38,
|
KEY_K = 14,
|
||||||
KEY_QUOTE = 39,
|
KEY_L = 15,
|
||||||
KEY_LEFTPAREN = 40,
|
KEY_M = 16,
|
||||||
KEY_RIGHTPAREN = 41,
|
KEY_N = 17,
|
||||||
KEY_ASTERISK = 42,
|
KEY_O = 18,
|
||||||
KEY_PLUS = 43,
|
KEY_P = 19,
|
||||||
KEY_COMMA = 44,
|
KEY_Q = 20,
|
||||||
|
KEY_R = 21,
|
||||||
|
KEY_S = 22,
|
||||||
|
KEY_T = 23,
|
||||||
|
KEY_U = 24,
|
||||||
|
KEY_V = 25,
|
||||||
|
KEY_W = 26,
|
||||||
|
KEY_X = 27,
|
||||||
|
KEY_Y = 28,
|
||||||
|
KEY_Z = 29,
|
||||||
|
KEY_1 = 30,
|
||||||
|
KEY_2 = 31,
|
||||||
|
KEY_3 = 32,
|
||||||
|
KEY_4 = 33,
|
||||||
|
KEY_5 = 34,
|
||||||
|
KEY_6 = 35,
|
||||||
|
KEY_7 = 36,
|
||||||
|
KEY_8 = 37,
|
||||||
|
KEY_9 = 38,
|
||||||
|
KEY_0 = 39,
|
||||||
|
KEY_RETURN = 40,
|
||||||
|
KEY_ESCAPE = 41,
|
||||||
|
KEY_BACKSPACE = 42,
|
||||||
|
KEY_TAB = 43,
|
||||||
|
KEY_SPACE = 44,
|
||||||
KEY_MINUS = 45,
|
KEY_MINUS = 45,
|
||||||
KEY_PERIOD = 46,
|
KEY_EQUALS = 46,
|
||||||
KEY_SLASH = 47,
|
KEY_LEFTBRACKET = 47,
|
||||||
KEY_0 = 48,
|
KEY_RIGHTBRACKET = 48,
|
||||||
KEY_1 = 49,
|
KEY_BACKSLASH = 49,
|
||||||
KEY_2 = 50,
|
KEY_NONUSHASH = 50,
|
||||||
KEY_3 = 51,
|
KEY_SEMICOLON = 51,
|
||||||
KEY_4 = 52,
|
KEY_APOSTROPHE = 52,
|
||||||
KEY_5 = 53,
|
KEY_GRAVE = 53,
|
||||||
KEY_6 = 54,
|
KEY_COMMA = 54,
|
||||||
KEY_7 = 55,
|
KEY_PERIOD = 55,
|
||||||
KEY_8 = 56,
|
KEY_SLASH = 56,
|
||||||
KEY_9 = 57,
|
KEY_CAPSLOCK = 57,
|
||||||
KEY_COLON = 58,
|
KEY_F1 = 58,
|
||||||
KEY_SEMICOLON = 59,
|
KEY_F2 = 59,
|
||||||
KEY_LESS = 60,
|
KEY_F3 = 60,
|
||||||
KEY_EQUALS = 61,
|
KEY_F4 = 61,
|
||||||
KEY_GREATER = 62,
|
KEY_F5 = 62,
|
||||||
KEY_QUESTION = 63,
|
KEY_F6 = 63,
|
||||||
KEY_AT = 64,
|
KEY_F7 = 64,
|
||||||
KEY_LEFTBRACKET = 91,
|
KEY_F8 = 65,
|
||||||
KEY_BACKSLASH = 92,
|
KEY_F9 = 66,
|
||||||
KEY_RIGHTBRACKET = 93,
|
KEY_F10 = 67,
|
||||||
KEY_CARET = 94,
|
KEY_F11 = 68,
|
||||||
KEY_UNDERSCORE = 95,
|
KEY_F12 = 69,
|
||||||
KEY_BACKQUOTE = 96,
|
KEY_PRINTSCREEN = 70,
|
||||||
KEY_a = 97,
|
KEY_SCROLLLOCK = 71,
|
||||||
KEY_b = 98,
|
KEY_PAUSE = 72,
|
||||||
KEY_c = 99,
|
KEY_INSERT = 73,
|
||||||
KEY_d = 100,
|
KEY_HOME = 74,
|
||||||
KEY_e = 101,
|
KEY_PAGEUP = 75,
|
||||||
KEY_f = 102,
|
KEY_DELETE = 76,
|
||||||
KEY_g = 103,
|
KEY_END = 77,
|
||||||
KEY_h = 104,
|
KEY_PAGEDOWN = 78,
|
||||||
KEY_i = 105,
|
KEY_RIGHT = 79,
|
||||||
KEY_j = 106,
|
KEY_LEFT = 80,
|
||||||
KEY_k = 107,
|
KEY_DOWN = 81,
|
||||||
KEY_l = 108,
|
KEY_UP = 82,
|
||||||
KEY_m = 109,
|
KEY_NUMLOCKCLEAR = 83,
|
||||||
KEY_n = 110,
|
KEY_KP_DIVIDE = 84,
|
||||||
KEY_o = 111,
|
KEY_KP_MULTIPLY = 85,
|
||||||
KEY_p = 112,
|
KEY_KP_MINUS = 86,
|
||||||
KEY_q = 113,
|
KEY_KP_PLUS = 87,
|
||||||
KEY_r = 114,
|
KEY_KP_ENTER = 88,
|
||||||
KEY_s = 115,
|
KEY_KP_1 = 89,
|
||||||
KEY_t = 116,
|
KEY_KP_2 = 90,
|
||||||
KEY_u = 117,
|
KEY_KP_3 = 91,
|
||||||
KEY_v = 118,
|
KEY_KP_4 = 92,
|
||||||
KEY_w = 119,
|
KEY_KP_5 = 93,
|
||||||
KEY_x = 120,
|
KEY_KP_6 = 94,
|
||||||
KEY_y = 121,
|
KEY_KP_7 = 95,
|
||||||
KEY_z = 122,
|
KEY_KP_8 = 96,
|
||||||
KEY_DELETE = 127,
|
KEY_KP_9 = 97,
|
||||||
KEY_WORLD_0 = 160,
|
KEY_KP_0 = 98,
|
||||||
KEY_WORLD_1 = 161,
|
KEY_KP_PERIOD = 99,
|
||||||
KEY_WORLD_2 = 162,
|
KEY_NONUSBACKSLASH = 100,
|
||||||
KEY_WORLD_3 = 163,
|
KEY_APPLICATION = 101,
|
||||||
KEY_WORLD_4 = 164,
|
KEY_POWER = 102,
|
||||||
KEY_WORLD_5 = 165,
|
KEY_KP_EQUALS = 103,
|
||||||
KEY_WORLD_6 = 166,
|
KEY_F13 = 104,
|
||||||
KEY_WORLD_7 = 167,
|
KEY_F14 = 105,
|
||||||
KEY_WORLD_8 = 168,
|
KEY_F15 = 106,
|
||||||
KEY_WORLD_9 = 169,
|
KEY_F16 = 107,
|
||||||
KEY_WORLD_10 = 170,
|
KEY_F17 = 108,
|
||||||
KEY_WORLD_11 = 171,
|
KEY_F18 = 109,
|
||||||
KEY_WORLD_12 = 172,
|
KEY_F19 = 110,
|
||||||
KEY_WORLD_13 = 173,
|
KEY_F20 = 111,
|
||||||
KEY_WORLD_14 = 174,
|
KEY_F21 = 112,
|
||||||
KEY_WORLD_15 = 175,
|
KEY_F22 = 113,
|
||||||
KEY_WORLD_16 = 176,
|
KEY_F23 = 114,
|
||||||
KEY_WORLD_17 = 177,
|
KEY_F24 = 115,
|
||||||
KEY_WORLD_18 = 178,
|
KEY_EXECUTE = 116,
|
||||||
KEY_WORLD_19 = 179,
|
KEY_HELP = 117,
|
||||||
KEY_WORLD_20 = 180,
|
KEY_MENU = 118,
|
||||||
KEY_WORLD_21 = 181,
|
KEY_SELECT = 119,
|
||||||
KEY_WORLD_22 = 182,
|
KEY_STOP = 120,
|
||||||
KEY_WORLD_23 = 183,
|
KEY_AGAIN = 121,
|
||||||
KEY_WORLD_24 = 184,
|
KEY_UNDO = 122,
|
||||||
KEY_WORLD_25 = 185,
|
KEY_CUT = 123,
|
||||||
KEY_WORLD_26 = 186,
|
KEY_COPY = 124,
|
||||||
KEY_WORLD_27 = 187,
|
KEY_PASTE = 125,
|
||||||
KEY_WORLD_28 = 188,
|
KEY_FIND = 126,
|
||||||
KEY_WORLD_29 = 189,
|
KEY_MUTE = 127,
|
||||||
KEY_WORLD_30 = 190,
|
KEY_VOLUMEUP = 128,
|
||||||
KEY_WORLD_31 = 191,
|
KEY_VOLUMEDOWN = 129,
|
||||||
KEY_WORLD_32 = 192,
|
KEY_KP_COMMA = 133,
|
||||||
KEY_WORLD_33 = 193,
|
KEY_KP_EQUALSAS400 = 134,
|
||||||
KEY_WORLD_34 = 194,
|
KEY_INTERNATIONAL1 = 135,
|
||||||
KEY_WORLD_35 = 195,
|
KEY_INTERNATIONAL2 = 136,
|
||||||
KEY_WORLD_36 = 196,
|
KEY_INTERNATIONAL3 = 137,
|
||||||
KEY_WORLD_37 = 197,
|
KEY_INTERNATIONAL4 = 138,
|
||||||
KEY_WORLD_38 = 198,
|
KEY_INTERNATIONAL5 = 139,
|
||||||
KEY_WORLD_39 = 199,
|
KEY_INTERNATIONAL6 = 140,
|
||||||
KEY_WORLD_40 = 200,
|
KEY_INTERNATIONAL7 = 141,
|
||||||
KEY_WORLD_41 = 201,
|
KEY_INTERNATIONAL8 = 142,
|
||||||
KEY_WORLD_42 = 202,
|
KEY_INTERNATIONAL9 = 143,
|
||||||
KEY_WORLD_43 = 203,
|
KEY_LANG1 = 144,
|
||||||
KEY_WORLD_44 = 204,
|
KEY_LANG2 = 145,
|
||||||
KEY_WORLD_45 = 205,
|
KEY_LANG3 = 146,
|
||||||
KEY_WORLD_46 = 206,
|
KEY_LANG4 = 147,
|
||||||
KEY_WORLD_47 = 207,
|
KEY_LANG5 = 148,
|
||||||
KEY_WORLD_48 = 208,
|
KEY_LANG6 = 149,
|
||||||
KEY_WORLD_49 = 209,
|
KEY_LANG7 = 150,
|
||||||
KEY_WORLD_50 = 210,
|
KEY_LANG8 = 151,
|
||||||
KEY_WORLD_51 = 211,
|
KEY_LANG9 = 152,
|
||||||
KEY_WORLD_52 = 212,
|
KEY_ALTERASE = 153,
|
||||||
KEY_WORLD_53 = 213,
|
KEY_SYSREQ = 154,
|
||||||
KEY_WORLD_54 = 214,
|
KEY_CANCEL = 155,
|
||||||
KEY_WORLD_55 = 215,
|
KEY_CLEAR = 156,
|
||||||
KEY_WORLD_56 = 216,
|
KEY_PRIOR = 157,
|
||||||
KEY_WORLD_57 = 217,
|
KEY_RETURN2 = 158,
|
||||||
KEY_WORLD_58 = 218,
|
KEY_SEPARATOR = 159,
|
||||||
KEY_WORLD_59 = 219,
|
KEY_OUT = 160,
|
||||||
KEY_WORLD_60 = 220,
|
KEY_OPER = 161,
|
||||||
KEY_WORLD_61 = 221,
|
KEY_CLEARAGAIN = 162,
|
||||||
KEY_WORLD_62 = 222,
|
KEY_CRSEL = 163,
|
||||||
KEY_WORLD_63 = 223,
|
KEY_EXSEL = 164,
|
||||||
KEY_WORLD_64 = 224,
|
KEY_KP_00 = 176,
|
||||||
KEY_WORLD_65 = 225,
|
KEY_KP_000 = 177,
|
||||||
KEY_WORLD_66 = 226,
|
KEY_THOUSANDSSEPARATOR = 178,
|
||||||
KEY_WORLD_67 = 227,
|
KEY_DECIMALSEPARATOR = 179,
|
||||||
KEY_WORLD_68 = 228,
|
KEY_CURRENCYUNIT = 180,
|
||||||
KEY_WORLD_69 = 229,
|
KEY_CURRENCYSUBUNIT = 181,
|
||||||
KEY_WORLD_70 = 230,
|
KEY_KP_LEFTPAREN = 182,
|
||||||
KEY_WORLD_71 = 231,
|
KEY_KP_RIGHTPAREN = 183,
|
||||||
KEY_WORLD_72 = 232,
|
KEY_KP_LEFTBRACE = 184,
|
||||||
KEY_WORLD_73 = 233,
|
KEY_KP_RIGHTBRACE = 185,
|
||||||
KEY_WORLD_74 = 234,
|
KEY_KP_TAB = 186,
|
||||||
KEY_WORLD_75 = 235,
|
KEY_KP_BACKSPACE = 187,
|
||||||
KEY_WORLD_76 = 236,
|
KEY_KP_A = 188,
|
||||||
KEY_WORLD_77 = 237,
|
KEY_KP_B = 189,
|
||||||
KEY_WORLD_78 = 238,
|
KEY_KP_C = 190,
|
||||||
KEY_WORLD_79 = 239,
|
KEY_KP_D = 191,
|
||||||
KEY_WORLD_80 = 240,
|
KEY_KP_E = 192,
|
||||||
KEY_WORLD_81 = 241,
|
KEY_KP_F = 193,
|
||||||
KEY_WORLD_82 = 242,
|
KEY_KP_XOR = 194,
|
||||||
KEY_WORLD_83 = 243,
|
KEY_KP_POWER = 195,
|
||||||
KEY_WORLD_84 = 244,
|
KEY_KP_PERCENT = 196,
|
||||||
KEY_WORLD_85 = 245,
|
KEY_KP_LESS = 197,
|
||||||
KEY_WORLD_86 = 246,
|
KEY_KP_GREATER = 198,
|
||||||
KEY_WORLD_87 = 247,
|
KEY_KP_AMPERSAND = 199,
|
||||||
KEY_WORLD_88 = 248,
|
KEY_KP_DBLAMPERSAND = 200,
|
||||||
KEY_WORLD_89 = 249,
|
KEY_KP_VERTICALBAR = 201,
|
||||||
KEY_WORLD_90 = 250,
|
KEY_KP_DBLVERTICALBAR = 202,
|
||||||
KEY_WORLD_91 = 251,
|
KEY_KP_COLON = 203,
|
||||||
KEY_WORLD_92 = 252,
|
KEY_KP_HASH = 204,
|
||||||
KEY_WORLD_93 = 253,
|
KEY_KP_SPACE = 205,
|
||||||
KEY_WORLD_94 = 254,
|
KEY_KP_AT = 206,
|
||||||
KEY_WORLD_95 = 255,
|
KEY_KP_EXCLAM = 207,
|
||||||
KEY_KP0 = 256,
|
KEY_KP_MEMSTORE = 208,
|
||||||
KEY_KP1 = 257,
|
KEY_KP_MEMRECALL = 209,
|
||||||
KEY_KP2 = 258,
|
KEY_KP_MEMCLEAR = 210,
|
||||||
KEY_KP3 = 259,
|
KEY_KP_MEMADD = 211,
|
||||||
KEY_KP4 = 260,
|
KEY_KP_MEMSUBTRACT = 212,
|
||||||
KEY_KP5 = 261,
|
KEY_KP_MEMMULTIPLY = 213,
|
||||||
KEY_KP6 = 262,
|
KEY_KP_MEMDIVIDE = 214,
|
||||||
KEY_KP7 = 263,
|
KEY_KP_PLUSMINUS = 215,
|
||||||
KEY_KP8 = 264,
|
KEY_KP_CLEAR = 216,
|
||||||
KEY_KP9 = 265,
|
KEY_KP_CLEARENTRY = 217,
|
||||||
KEY_KP_PERIOD = 266,
|
KEY_KP_BINARY = 218,
|
||||||
KEY_KP_DIVIDE = 267,
|
KEY_KP_OCTAL = 219,
|
||||||
KEY_KP_MULTIPLY = 268,
|
KEY_KP_DECIMAL = 220,
|
||||||
KEY_KP_MINUS = 269,
|
KEY_KP_HEXADECIMAL = 221,
|
||||||
KEY_KP_PLUS = 270,
|
KEY_LCTRL = 224,
|
||||||
KEY_KP_ENTER = 271,
|
KEY_LSHIFT = 225,
|
||||||
KEY_KP_EQUALS = 272,
|
KEY_LALT = 226,
|
||||||
KEY_UP = 273,
|
KEY_LGUI = 227,
|
||||||
KEY_DOWN = 274,
|
KEY_RCTRL = 228,
|
||||||
KEY_RIGHT = 275,
|
KEY_RSHIFT = 229,
|
||||||
KEY_LEFT = 276,
|
KEY_RALT = 230,
|
||||||
KEY_INSERT = 277,
|
KEY_RGUI = 231,
|
||||||
KEY_HOME = 278,
|
KEY_MODE = 257,
|
||||||
KEY_END = 279,
|
KEY_AUDIONEXT = 258,
|
||||||
KEY_PAGEUP = 280,
|
KEY_AUDIOPREV = 259,
|
||||||
KEY_PAGEDOWN = 281,
|
KEY_AUDIOSTOP = 260,
|
||||||
KEY_F1 = 282,
|
KEY_AUDIOPLAY = 261,
|
||||||
KEY_F2 = 283,
|
KEY_AUDIOMUTE = 262,
|
||||||
KEY_F3 = 284,
|
KEY_MEDIASELECT = 263,
|
||||||
KEY_F4 = 285,
|
KEY_WWW = 264,
|
||||||
KEY_F5 = 286,
|
KEY_MAIL = 265,
|
||||||
KEY_F6 = 287,
|
KEY_CALCULATOR = 266,
|
||||||
KEY_F7 = 288,
|
KEY_COMPUTER = 267,
|
||||||
KEY_F8 = 289,
|
KEY_AC_SEARCH = 268,
|
||||||
KEY_F9 = 290,
|
KEY_AC_HOME = 269,
|
||||||
KEY_F10 = 291,
|
KEY_AC_BACK = 270,
|
||||||
KEY_F11 = 292,
|
KEY_AC_FORWARD = 271,
|
||||||
KEY_F12 = 293,
|
KEY_AC_STOP = 272,
|
||||||
KEY_F13 = 294,
|
KEY_AC_REFRESH = 273,
|
||||||
KEY_F14 = 295,
|
KEY_AC_BOOKMARKS = 274,
|
||||||
KEY_F15 = 296,
|
KEY_BRIGHTNESSDOWN = 275,
|
||||||
KEY_NUMLOCK = 300,
|
KEY_BRIGHTNESSUP = 276,
|
||||||
KEY_CAPSLOCK = 301,
|
KEY_DISPLAYSWITCH = 277,
|
||||||
KEY_SCROLLOCK = 302,
|
KEY_KBDILLUMTOGGLE = 278,
|
||||||
KEY_RSHIFT = 303,
|
KEY_KBDILLUMDOWN = 279,
|
||||||
KEY_LSHIFT = 304,
|
KEY_KBDILLUMUP = 280,
|
||||||
KEY_RCTRL = 305,
|
KEY_EJECT = 281,
|
||||||
KEY_LCTRL = 306,
|
KEY_SLEEP = 282,
|
||||||
KEY_RALT = 307,
|
KEY_APP1 = 283,
|
||||||
KEY_LALT = 308,
|
KEY_APP2 = 284,
|
||||||
KEY_RMETA = 309,
|
KEY_MOUSE_1 = 285,
|
||||||
KEY_LMETA = 310,
|
KEY_MOUSE_2 = 286,
|
||||||
KEY_LSUPER = 311,
|
KEY_MOUSE_3 = 287,
|
||||||
KEY_RSUPER = 312,
|
KEY_MOUSE_4 = 288,
|
||||||
KEY_MODE = 313,
|
KEY_MOUSE_5 = 289,
|
||||||
KEY_COMPOSE = 314,
|
KEY_MOUSE_6 = 290,
|
||||||
KEY_HELP = 315,
|
KEY_MOUSE_7 = 291,
|
||||||
KEY_PRINT = 316,
|
KEY_MOUSE_8 = 292,
|
||||||
KEY_SYSREQ = 317,
|
KEY_MOUSE_WHEEL_UP = 293,
|
||||||
KEY_BREAK = 318,
|
KEY_MOUSE_WHEEL_DOWN = 294,
|
||||||
KEY_MENU = 319,
|
KEY_MOUSE_9 = 295,
|
||||||
KEY_POWER = 320,
|
|
||||||
KEY_EURO = 321,
|
|
||||||
KEY_UNDO = 322,
|
|
||||||
KEY_MOUSE_1 = 323,
|
|
||||||
KEY_MOUSE_2 = 324,
|
|
||||||
KEY_MOUSE_3 = 325,
|
|
||||||
KEY_MOUSE_4 = 326,
|
|
||||||
KEY_MOUSE_5 = 327,
|
|
||||||
KEY_MOUSE_6 = 328,
|
|
||||||
KEY_MOUSE_7 = 329,
|
|
||||||
KEY_MOUSE_8 = 330,
|
|
||||||
KEY_MOUSE_WHEEL_UP = 331,
|
|
||||||
KEY_MOUSE_WHEEL_DOWN = 332,
|
|
||||||
KEY_MOUSE_9 = 333,
|
|
||||||
KEY_LAST,
|
KEY_LAST,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,6 @@ MACRO_CONFIG_INT(ClAutoDemoMax, cl_auto_demo_max, 10, 0, 1000, CFGFLAG_SAVE|CFGF
|
||||||
MACRO_CONFIG_INT(ClAutoScreenshot, cl_auto_screenshot, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Automatically take game over screenshot")
|
MACRO_CONFIG_INT(ClAutoScreenshot, cl_auto_screenshot, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Automatically take game over screenshot")
|
||||||
MACRO_CONFIG_INT(ClAutoScreenshotMax, cl_auto_screenshot_max, 10, 0, 1000, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Maximum number of automatically created screenshots (0 = no limit)")
|
MACRO_CONFIG_INT(ClAutoScreenshotMax, cl_auto_screenshot_max, 10, 0, 1000, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Maximum number of automatically created screenshots (0 = no limit)")
|
||||||
|
|
||||||
MACRO_CONFIG_INT(InpGrab, inp_grab, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Use forceful input grabbing method")
|
|
||||||
|
|
||||||
MACRO_CONFIG_STR(BrFilterString, br_filter_string, 25, "", CFGFLAG_SAVE|CFGFLAG_CLIENT, "Server browser filtering string")
|
MACRO_CONFIG_STR(BrFilterString, br_filter_string, 25, "", CFGFLAG_SAVE|CFGFLAG_CLIENT, "Server browser filtering string")
|
||||||
MACRO_CONFIG_INT(BrFilterFull, br_filter_full, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Filter out full server in browser")
|
MACRO_CONFIG_INT(BrFilterFull, br_filter_full, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Filter out full server in browser")
|
||||||
MACRO_CONFIG_INT(BrFilterEmpty, br_filter_empty, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Filter out empty server in browser")
|
MACRO_CONFIG_INT(BrFilterEmpty, br_filter_empty, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Filter out empty server in browser")
|
||||||
|
@ -55,6 +53,7 @@ MACRO_CONFIG_INT(SndDevice, snd_device, -1, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "
|
||||||
|
|
||||||
MACRO_CONFIG_INT(SndNonactiveMute, snd_nonactive_mute, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "")
|
MACRO_CONFIG_INT(SndNonactiveMute, snd_nonactive_mute, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "")
|
||||||
|
|
||||||
|
MACRO_CONFIG_INT(GfxScreen, gfx_screen, 0, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Screen index")
|
||||||
MACRO_CONFIG_INT(GfxScreenWidth, gfx_screen_width, 0, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Screen resolution width")
|
MACRO_CONFIG_INT(GfxScreenWidth, gfx_screen_width, 0, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Screen resolution width")
|
||||||
MACRO_CONFIG_INT(GfxScreenHeight, gfx_screen_height, 0, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Screen resolution height")
|
MACRO_CONFIG_INT(GfxScreenHeight, gfx_screen_height, 0, 0, 0, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Screen resolution height")
|
||||||
MACRO_CONFIG_INT(GfxBorderless, gfx_borderless, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Borderless window (not to be used with fullscreen)")
|
MACRO_CONFIG_INT(GfxBorderless, gfx_borderless, 0, 0, 1, CFGFLAG_SAVE|CFGFLAG_CLIENT, "Borderless window (not to be used with fullscreen)")
|
||||||
|
|
|
@ -285,7 +285,7 @@ void CMapLayers::OnRender()
|
||||||
Render = true;
|
Render = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Render && pLayer->m_Type == LAYERTYPE_TILES && Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyDown(KEY_KP0))
|
if(Render && pLayer->m_Type == LAYERTYPE_TILES && Input()->KeyPressed(KEY_LCTRL) && Input()->KeyPressed(KEY_LSHIFT) && Input()->KeyDown(KEY_KP_0))
|
||||||
{
|
{
|
||||||
CMapItemLayerTilemap *pTMap = (CMapItemLayerTilemap *)pLayer;
|
CMapItemLayerTilemap *pTMap = (CMapItemLayerTilemap *)pLayer;
|
||||||
CTile *pTiles = (CTile *)pLayers->Map()->GetData(pTMap->m_Data);
|
CTile *pTiles = (CTile *)pLayers->Map()->GetData(pTMap->m_Data);
|
||||||
|
|
|
@ -1486,7 +1486,7 @@ void CMenus::UpdatedFilteredVideoModes()
|
||||||
|
|
||||||
void CMenus::OnInit()
|
void CMenus::OnInit()
|
||||||
{
|
{
|
||||||
m_NumModes = Graphics()->GetVideoModes(m_aModes, MAX_RESOLUTIONS);
|
m_NumModes = Graphics()->GetVideoModes(m_aModes, MAX_RESOLUTIONS, g_Config.m_GfxScreen);
|
||||||
UpdateVideoFormats();
|
UpdateVideoFormats();
|
||||||
|
|
||||||
bool Found = false;
|
bool Found = false;
|
||||||
|
|
|
@ -1319,7 +1319,7 @@ void CMenus::RenderSettingsGraphics(CUIRect MainView)
|
||||||
if(DoButton_CheckBox(&s_GfxDisplayAllModes, Localize("Show only supported"), g_Config.m_GfxDisplayAllModes^1, &Button))
|
if(DoButton_CheckBox(&s_GfxDisplayAllModes, Localize("Show only supported"), g_Config.m_GfxDisplayAllModes^1, &Button))
|
||||||
{
|
{
|
||||||
g_Config.m_GfxDisplayAllModes ^= 1;
|
g_Config.m_GfxDisplayAllModes ^= 1;
|
||||||
m_NumModes = Graphics()->GetVideoModes(m_aModes, MAX_RESOLUTIONS);
|
m_NumModes = Graphics()->GetVideoModes(m_aModes, MAX_RESOLUTIONS, g_Config.m_GfxScreen);
|
||||||
UpdateVideoFormats();
|
UpdateVideoFormats();
|
||||||
|
|
||||||
bool Found = false;
|
bool Found = false;
|
||||||
|
@ -1445,7 +1445,7 @@ void CMenus::RenderSettingsGraphics(CUIRect MainView)
|
||||||
if(g_Config.m_GfxDisplayAllModes)
|
if(g_Config.m_GfxDisplayAllModes)
|
||||||
{
|
{
|
||||||
g_Config.m_GfxDisplayAllModes = 0;
|
g_Config.m_GfxDisplayAllModes = 0;
|
||||||
m_NumModes = Graphics()->GetVideoModes(m_aModes, MAX_RESOLUTIONS);
|
m_NumModes = Graphics()->GetVideoModes(m_aModes, MAX_RESOLUTIONS, g_Config.m_GfxScreen);
|
||||||
UpdateVideoFormats();
|
UpdateVideoFormats();
|
||||||
|
|
||||||
bool Found = false;
|
bool Found = false;
|
||||||
|
|
|
@ -846,7 +846,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
||||||
TB_Bottom.HSplitTop(2.5f, 0, &TB_Bottom);
|
TB_Bottom.HSplitTop(2.5f, 0, &TB_Bottom);
|
||||||
|
|
||||||
// ctrl+o to open
|
// ctrl+o to open
|
||||||
if(Input()->KeyDown('o') && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL)) && m_Dialog == DIALOG_NONE)
|
if(Input()->KeyDown(KEY_O) && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL)) && m_Dialog == DIALOG_NONE)
|
||||||
{
|
{
|
||||||
if(HasUnsavedData())
|
if(HasUnsavedData())
|
||||||
{
|
{
|
||||||
|
@ -861,7 +861,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ctrl+s to save
|
// ctrl+s to save
|
||||||
if(Input()->KeyDown('s') && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL)) && m_Dialog == DIALOG_NONE)
|
if(Input()->KeyDown(KEY_S) && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL)) && m_Dialog == DIALOG_NONE)
|
||||||
{
|
{
|
||||||
if(m_aFileName[0] && m_ValidSaveFilename)
|
if(m_aFileName[0] && m_ValidSaveFilename)
|
||||||
{
|
{
|
||||||
|
@ -880,7 +880,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
||||||
TB_Top.VSplitLeft(30.0f, &Button, &TB_Top);
|
TB_Top.VSplitLeft(30.0f, &Button, &TB_Top);
|
||||||
static int s_HqButton = 0;
|
static int s_HqButton = 0;
|
||||||
if(DoButton_Editor(&s_HqButton, "HD", m_ShowDetail, &Button, 0, "[ctrl+h] Toggle High Detail") ||
|
if(DoButton_Editor(&s_HqButton, "HD", m_ShowDetail, &Button, 0, "[ctrl+h] Toggle High Detail") ||
|
||||||
(Input()->KeyDown('h') && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL))))
|
(Input()->KeyDown(KEY_H) && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL))))
|
||||||
{
|
{
|
||||||
m_ShowDetail = !m_ShowDetail;
|
m_ShowDetail = !m_ShowDetail;
|
||||||
}
|
}
|
||||||
|
@ -891,7 +891,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
||||||
TB_Top.VSplitLeft(40.0f, &Button, &TB_Top);
|
TB_Top.VSplitLeft(40.0f, &Button, &TB_Top);
|
||||||
static int s_AnimateButton = 0;
|
static int s_AnimateButton = 0;
|
||||||
if(DoButton_Editor(&s_AnimateButton, "Anim", m_Animate, &Button, 0, "[ctrl+m] Toggle animation") ||
|
if(DoButton_Editor(&s_AnimateButton, "Anim", m_Animate, &Button, 0, "[ctrl+m] Toggle animation") ||
|
||||||
(Input()->KeyDown('m') && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL))))
|
(Input()->KeyDown(KEY_M) && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL))))
|
||||||
{
|
{
|
||||||
m_AnimateStart = time_get();
|
m_AnimateStart = time_get();
|
||||||
m_Animate = !m_Animate;
|
m_Animate = !m_Animate;
|
||||||
|
@ -903,7 +903,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
||||||
TB_Top.VSplitLeft(40.0f, &Button, &TB_Top);
|
TB_Top.VSplitLeft(40.0f, &Button, &TB_Top);
|
||||||
static int s_ProofButton = 0;
|
static int s_ProofButton = 0;
|
||||||
if(DoButton_Editor(&s_ProofButton, "Proof", m_ProofBorders, &Button, 0, "[ctrl+p] Toggles proof borders. These borders represent what a player maximum can see.") ||
|
if(DoButton_Editor(&s_ProofButton, "Proof", m_ProofBorders, &Button, 0, "[ctrl+p] Toggles proof borders. These borders represent what a player maximum can see.") ||
|
||||||
(Input()->KeyDown('p') && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL))))
|
(Input()->KeyDown(KEY_P) && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL))))
|
||||||
{
|
{
|
||||||
m_ProofBorders = !m_ProofBorders;
|
m_ProofBorders = !m_ProofBorders;
|
||||||
}
|
}
|
||||||
|
@ -914,7 +914,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
||||||
TB_Top.VSplitLeft(40.0f, &Button, &TB_Top);
|
TB_Top.VSplitLeft(40.0f, &Button, &TB_Top);
|
||||||
static int s_TileInfoButton = 0;
|
static int s_TileInfoButton = 0;
|
||||||
if(DoButton_Editor(&s_TileInfoButton, "Info", m_ShowTileInfo, &Button, 0, "[ctrl+i] Show tile informations") ||
|
if(DoButton_Editor(&s_TileInfoButton, "Info", m_ShowTileInfo, &Button, 0, "[ctrl+i] Show tile informations") ||
|
||||||
(Input()->KeyDown('i') && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL))))
|
(Input()->KeyDown(KEY_I) && (Input()->KeyPressed(KEY_LCTRL) || Input()->KeyPressed(KEY_RCTRL))))
|
||||||
{
|
{
|
||||||
m_ShowTileInfo = !m_ShowTileInfo;
|
m_ShowTileInfo = !m_ShowTileInfo;
|
||||||
m_ShowEnvelopePreview = SHOWENV_NONE;
|
m_ShowEnvelopePreview = SHOWENV_NONE;
|
||||||
|
@ -973,7 +973,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
||||||
// flip buttons
|
// flip buttons
|
||||||
TB_Top.VSplitLeft(30.0f, &Button, &TB_Top);
|
TB_Top.VSplitLeft(30.0f, &Button, &TB_Top);
|
||||||
static int s_FlipXButton = 0;
|
static int s_FlipXButton = 0;
|
||||||
if(DoButton_Ex(&s_FlipXButton, "X/X", Enabled, &Button, 0, "[N] Flip brush horizontal", CUI::CORNER_L) || Input()->KeyDown('n'))
|
if(DoButton_Ex(&s_FlipXButton, "X/X", Enabled, &Button, 0, "[N] Flip brush horizontal", CUI::CORNER_L) || Input()->KeyDown(KEY_N))
|
||||||
{
|
{
|
||||||
for(int i = 0; i < m_Brush.m_lLayers.size(); i++)
|
for(int i = 0; i < m_Brush.m_lLayers.size(); i++)
|
||||||
m_Brush.m_lLayers[i]->BrushFlipX();
|
m_Brush.m_lLayers[i]->BrushFlipX();
|
||||||
|
@ -981,7 +981,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
||||||
|
|
||||||
TB_Top.VSplitLeft(30.0f, &Button, &TB_Top);
|
TB_Top.VSplitLeft(30.0f, &Button, &TB_Top);
|
||||||
static int s_FlipyButton = 0;
|
static int s_FlipyButton = 0;
|
||||||
if(DoButton_Ex(&s_FlipyButton, "Y/Y", Enabled, &Button, 0, "[M] Flip brush vertical", CUI::CORNER_R) || Input()->KeyDown('m'))
|
if(DoButton_Ex(&s_FlipyButton, "Y/Y", Enabled, &Button, 0, "[M] Flip brush vertical", CUI::CORNER_R) || Input()->KeyDown(KEY_M))
|
||||||
{
|
{
|
||||||
for(int i = 0; i < m_Brush.m_lLayers.size(); i++)
|
for(int i = 0; i < m_Brush.m_lLayers.size(); i++)
|
||||||
m_Brush.m_lLayers[i]->BrushFlipY();
|
m_Brush.m_lLayers[i]->BrushFlipY();
|
||||||
|
@ -1006,7 +1006,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
||||||
TB_Top.VSplitLeft(5.0f, &Button, &TB_Top);
|
TB_Top.VSplitLeft(5.0f, &Button, &TB_Top);
|
||||||
TB_Top.VSplitLeft(30.0f, &Button, &TB_Top);
|
TB_Top.VSplitLeft(30.0f, &Button, &TB_Top);
|
||||||
static int s_CcwButton = 0;
|
static int s_CcwButton = 0;
|
||||||
if(DoButton_Ex(&s_CcwButton, "CCW", Enabled, &Button, 0, "[R] Rotates the brush counter clockwise", CUI::CORNER_L) || Input()->KeyDown('r'))
|
if(DoButton_Ex(&s_CcwButton, "CCW", Enabled, &Button, 0, "[R] Rotates the brush counter clockwise", CUI::CORNER_L) || Input()->KeyDown(KEY_R))
|
||||||
{
|
{
|
||||||
for(int i = 0; i < m_Brush.m_lLayers.size(); i++)
|
for(int i = 0; i < m_Brush.m_lLayers.size(); i++)
|
||||||
m_Brush.m_lLayers[i]->BrushRotate(-s_RotationAmount/360.0f*pi*2);
|
m_Brush.m_lLayers[i]->BrushRotate(-s_RotationAmount/360.0f*pi*2);
|
||||||
|
@ -1014,7 +1014,7 @@ void CEditor::DoToolbar(CUIRect ToolBar)
|
||||||
|
|
||||||
TB_Top.VSplitLeft(30.0f, &Button, &TB_Top);
|
TB_Top.VSplitLeft(30.0f, &Button, &TB_Top);
|
||||||
static int s_CwButton = 0;
|
static int s_CwButton = 0;
|
||||||
if(DoButton_Ex(&s_CwButton, "CW", Enabled, &Button, 0, "[T] Rotates the brush clockwise", CUI::CORNER_R) || Input()->KeyDown('t'))
|
if(DoButton_Ex(&s_CwButton, "CW", Enabled, &Button, 0, "[T] Rotates the brush clockwise", CUI::CORNER_R) || Input()->KeyDown(KEY_T))
|
||||||
{
|
{
|
||||||
for(int i = 0; i < m_Brush.m_lLayers.size(); i++)
|
for(int i = 0; i < m_Brush.m_lLayers.size(); i++)
|
||||||
m_Brush.m_lLayers[i]->BrushRotate(s_RotationAmount/360.0f*pi*2);
|
m_Brush.m_lLayers[i]->BrushRotate(s_RotationAmount/360.0f*pi*2);
|
||||||
|
|
Loading…
Reference in a new issue