diff options
author | Pasi Keränen <pasi.keranen@qt.io> | 2019-06-06 16:22:02 +0300 |
---|---|---|
committer | Pasi Keränen <pasi.keranen@qt.io> | 2019-06-07 13:52:44 +0300 |
commit | b4954701093739e7a4e54a0669f306922d0d4605 (patch) | |
tree | 73d71319a921234f6b507c9098fdc842f7fe06dc /src/runtime/Qt3DSInputDefs.h | |
parent | 8548a5f5579e3eee7e5ae6b1f6901dcc8bfee19e (diff) |
Long live the slayer!
Initial commit of OpenGL Runtime to repository.
Based on SHA1 61823aaccc6510699a54b34a2fe3f7523dab3b4e
of qt3dstudio repository.
Task-number: QT3DS-3600
Change-Id: Iaeb80237399f0e5656a19ebec9d1ab3a681d8832
Reviewed-by: Pasi Keränen <pasi.keranen@qt.io>
Diffstat (limited to 'src/runtime/Qt3DSInputDefs.h')
-rw-r--r-- | src/runtime/Qt3DSInputDefs.h | 413 |
1 files changed, 413 insertions, 0 deletions
diff --git a/src/runtime/Qt3DSInputDefs.h b/src/runtime/Qt3DSInputDefs.h new file mode 100644 index 0000000..447e424 --- /dev/null +++ b/src/runtime/Qt3DSInputDefs.h @@ -0,0 +1,413 @@ +/**************************************************************************** +** +** Copyright (C) 2016 NVIDIA Corporation. +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt 3D Studio. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#pragma once + +//============================================================================== +// Namespace +//============================================================================== +namespace Q3DStudio { + +//============================================================================== +/** + * Mouse button state flags + * There is some discrepancy between mouse state and mouse events. + * + * Mouse button state refers to the actual state of the button as captured + * by the input engine. The logical states are: up, pressed, down and released. + * + * Mouse events are generated by Kernel (in CKernel::SetPickFrame), and current + * support is only for pressed and released. This translates to the respective + * MOUSE_DOWN and MOUSE_UP. + * + * Therefore, a mapping would be: + * STATE_MOUSE_PRESSED -> EVENT_MOUSE_DOWN + * STATE_MOUSE_RELEASED -> EVENT_MOUSE_UP + * STATE_MOUSE_UP -> No corresponding event + * STATE_MOUSE_DOWN -> No corresponding event + * + */ +enum EMouseInputFlags { + NO_INPUT = 0, + // + LMOUSE_PRESSED = 1 << 0, + LMOUSE_RELEASED = 1 << 1, + MMOUSE_PRESSED = 1 << 2, + MMOUSE_RELEASED = 1 << 3, + RMOUSE_PRESSED = 1 << 4, + RMOUSE_RELEASED = 1 << 5, + // + LMOUSE_DOWN = 1 << 6, + LMOUSE_UP = 1 << 7, + MMOUSE_DOWN = 1 << 8, + MMOUSE_UP = 1 << 9, + RMOUSE_DOWN = 1 << 10, + RMOUSE_UP = 1 << 11, + MOUSEBUTTONCOUNT = 3, // left, middle, right - could potentially have more mouse buttons + + HSCROLLWHEEL = 1 << 12, + VSCROLLWHEEL = 1 << 13, +}; + +//============================================================================== +/** + * Key code/index to SInputFrame::m_KeyStates + */ +// enum EKeyCode +//{ +// KEY_NOKEY = 0x00, +// KEY_ESCAPE, +// KEY_1, +// KEY_2, +// KEY_3, +// KEY_4, +// KEY_5, +// KEY_6, +// KEY_7, +// KEY_8, +// KEY_9, +// KEY_0, +// KEY_MINUS, /* - on main keyboard */ +// KEY_EQUALS, +// KEY_BACK, /* backspace */ +// KEY_TAB, +// KEY_Q, +// KEY_W, +// KEY_E, +// KEY_R, +// KEY_T, +// KEY_Y, +// KEY_U, +// KEY_I, +// KEY_O, +// KEY_P, +// KEY_LBRACKET, +// KEY_RBRACKET, +// KEY_RETURN, /* Enter on main keyboard */ +// KEY_LCONTROL, +// KEY_A, +// KEY_S, +// KEY_D, +// KEY_F, +// KEY_G, +// KEY_H, +// KEY_J, +// KEY_K, +// KEY_L, +// KEY_SEMICOLON, +// KEY_APOSTROPHE, +// KEY_GRAVE, /* accent grave */ +// KEY_LSHIFT, +// KEY_BACKSLASH, +// KEY_Z, +// KEY_X, +// KEY_C, +// KEY_V, +// KEY_B, +// KEY_N, +// KEY_M, +// KEY_COMMA, +// KEY_PERIOD, /* . on main keyboard */ +// KEY_SLASH, /* / on main keyboard */ +// KEY_RSHIFT, +// KEY_MULTIPLY, /* * on numeric keypad */ +// KEY_LMENU, /* left Alt */ +// KEY_SPACE, +// KEY_CAPITAL, +// KEY_F1, +// KEY_F2, +// KEY_F3, +// KEY_F4, +// KEY_F5, +// KEY_F6, +// KEY_F7, +// KEY_F8, +// KEY_F9, +// KEY_F10, +// KEY_NUMLOCK, +// KEY_SCROLL, /* Scroll Lock */ +// KEY_NUMPAD7, +// KEY_NUMPAD8, +// KEY_NUMPAD9, +// KEY_SUBTRACT, /* - on numeric keypad */ +// KEY_NUMPAD4, +// KEY_NUMPAD5, +// KEY_NUMPAD6, +// KEY_ADD, /* + on numeric keypad */ +// KEY_NUMPAD1, +// KEY_NUMPAD2, +// KEY_NUMPAD3, +// KEY_NUMPAD0, +// KEY_DECIMAL, /* . on numeric keypad */ +// KEY_OEM_102, /* <> or \| on RT 102-key keyboard (Non-U.S.) */ +// KEY_F11, +// KEY_F12, +// KEY_F13, /* (NEC PC98) */ +// KEY_F14, /* (NEC PC98) */ +// KEY_F15, /* (NEC PC98) */ +// KEY_KANA, /* (Japanese keyboard) */ +// KEY_ABNT_C1, /* /? on Brazilian keyboard */ +// KEY_CONVERT, /* (Japanese keyboard) */ +// KEY_NOCONVERT, /* (Japanese keyboard) */ +// KEY_YEN, /* (Japanese keyboard) */ +// KEY_ABNT_C2, /* Numpad . on Brazilian keyboard */ +// KEY_NUMPADEQUALS, /* = on numeric keypad (NEC PC98) */ +// KEY_PREVTRACK, /* Previous Track +// (DIK_CIRCUMFLEX on Japanese keyboard) */ +// KEY_AT, /* (NEC PC98) */ +// KEY_COLON, /* (NEC PC98) */ +// KEY_UNDERLINE, /* (NEC PC98) */ +// KEY_KANJI, /* (Japanese keyboard) */ +// KEY_STOP, /* (NEC PC98) */ +// KEY_AX, /* (Japan AX) */ +// KEY_UNLABELED, /* (J3100) */ +// KEY_NEXTTRACK, /* Next Track */ +// KEY_NUMPADENTER, /* Enter on numeric keypad */ +// KEY_RCONTROL, +// KEY_MUTE, /* Mute */ +// KEY_CALCULATOR, /* Calculator */ +// KEY_PLAYPAUSE, /* Play / Pause */ +// KEY_MEDIASTOP, /* Media Stop */ +// KEY_VOLUMEDOWN, /* Volume - */ +// KEY_VOLUMEUP, /* Volume + */ +// KEY_WEBHOME, /* Web home */ +// KEY_NUMPADPERIOD, /* . on numeric keypad (NEC PC98) */ +// KEY_DIVIDE, /* / on numeric keypad */ +// KEY_SYSRQ, +// KEY_RMENU, /* right Alt */ +// KEY_PAUSE, /* Pause */ +// KEY_HOME, /* Home on arrow keypad */ +// KEY_UP, /* UpArrow on arrow keypad */ +// KEY_PRIOR, /* PgUp on arrow keypad */ +// KEY_LEFT, /* LeftArrow on arrow keypad */ +// KEY_RIGHT, /* RightArrow on arrow keypad */ +// KEY_END, /* End on arrow keypad */ +// KEY_DOWN, /* DownArrow on arrow keypad */ +// KEY_NEXT, /* PgDn on arrow keypad */ +// KEY_INSERT, /* Insert on arrow keypad */ +// KEY_DELETE, /* Delete on arrow keypad */ +// KEY_LWIN, /* Left Windows key */ +// KEY_RWIN, /* Right Windows key */ +// KEY_APPS, /* AppMenu key */ +// KEY_POWER, /* System Power */ +// KEY_SLEEP, /* System Sleep */ +// KEY_WAKE, /* System Wake */ +// KEY_WEBSEARCH, /* Web Search */ +// KEY_WEBFAVORITES, /* Web Favorites */ +// KEY_WEBREFRESH, /* Web Refresh */ +// KEY_WEBSTOP, /* Web Stop */ +// KEY_WEBFORWARD, /* Web Forward */ +// KEY_WEBBACK, /* Web Back */ +// KEY_MYCOMPUTER, /* My Computer */ +// KEY_MAIL, /* Mail */ +// KEY_MEDIASELECT, /* Media Select */ +// // +// KEY_TOTAL_COUNT +//}; + +typedef enum _EKeyCode { + KEY_NOKEY = 0, + KEY_ESCAPE, + KEY_1, + KEY_2, + KEY_3, + KEY_4, + KEY_5, + KEY_6, + KEY_7, + KEY_8, + KEY_9, + KEY_0, + KEY_SUBTRACT, + KEY_EQUALS, + KEY_BACK, + KEY_TAB, + KEY_Q, + KEY_W, + KEY_E, + KEY_R, + KEY_T, + KEY_Y, + KEY_U, + KEY_I, + KEY_O, + KEY_P, + KEY_LBRACKET, + KEY_RBRACKET, + KEY_RETURN, + KEY_LCONTROL, + KEY_A, // 30 + KEY_S, + KEY_D, + KEY_F, + KEY_G, + KEY_H, + KEY_J, + KEY_K, + KEY_L, + KEY_SEMICOLON, + KEY_APOSTROPHE, // 40 + KEY_GRAVE, + KEY_LSHIFT, + KEY_BACKSLASH, + KEY_Z, + KEY_X, + KEY_C, + KEY_V, + KEY_B, + KEY_N, + KEY_M, + KEY_COMMA, + KEY_PERIOD, + KEY_SLASH, + KEY_RSHIFT, + KEY_MULTIPLY, + KEY_LALT, + KEY_SPACE, + KEY_CAPITAL, + KEY_F1, + KEY_F2, // 60 + KEY_F3, + KEY_F4, + KEY_F5, + KEY_F6, + KEY_F7, + KEY_F8, + KEY_F9, + KEY_F10, + KEY_NUMLOCK, + KEY_SCROLL, // 70 + KEY_NUMPAD7, + KEY_NUMPAD8, + KEY_NUMPAD9, + KEY_NUMPADSUBTRACT, + KEY_NUMPAD4, + KEY_NUMPAD5, + KEY_NUMPAD6, + KEY_NUMPADADD, + KEY_NUMPAD1, + KEY_NUMPAD2, // 80 + KEY_NUMPAD3, + KEY_NUMPAD0, + KEY_NUMPADDECIMAL, + KEY_NOOP, + KEY_ZENKAKUHANKAKU, + KEY_102ND, + KEY_F11, + KEY_F12, + KEY_F13, + KEY_F14, // 90 + KEY_HIRAGANA, + KEY_HENKAN, + KEY_KATAKANAHIRAGANA, + KEY_MUHENKAN, + KEY_KPJPCOMMA, + KEY_NUMPADENTER, + KEY_RCONTROL, + KEY_NUMPADDIVIDE, + KEY_PRINTSCREEN, + KEY_RALT, // 100 + KEY_LINEFEED, + KEY_HOME, + KEY_UP, + KEY_PGUP, + KEY_LEFT, + KEY_RIGHT, + KEY_END, + KEY_DOWN, + KEY_PGDN, + KEY_INSERT, // 110 + KEY_DELETE, + KEY_MACRO, + KEY_MUTE, + KEY_VOLUMEDOWN, + KEY_VOLUMEUP, + KEY_POWER, + KEY_KPEQUAL, + KEY_KPPLUSMINUS, + KEY_PAUSE, + KEY_SCALE, + KEY_TOTAL_COUNT +} EKeyCode; + +//============================================================================== +/** + * Keyboard modifier flags + */ +enum EKeyboardModifierFlags { + MODIFIER_NONE = 0, + MODIFIER_SHIFT = 1 << 0, + MODIFIER_CTRL = 1 << 1, + MODIFIER_ALT = 1 << 2, + MODIFIER_KEYDOWN = 1 << 3, ///< One or more key is down +}; + +//============================================================================== +/** + * Button codes + */ +enum EButtonCodes { + BUTTON_A = 0, + BUTTON_B, + BUTTON_X, + BUTTON_Y, + BUTTON_L1, + BUTTON_R1, + BUTTON_THUMBL, + BUTTON_THUMBR, + BUTTON_SELECT, + BUTTON_START, + BUTTON_MODE, + BUTTON_UP, + BUTTON_DOWN, + BUTTON_LEFT, + BUTTON_RIGHT, + BUTTON_CENTER, + BUTTON_ENTER, + BUTTON_TOTAL_COUNT +}; + +//============================================================================== +/** + * Axis codes + */ +enum EAxisCodes { + AXIS_X = 0, + AXIS_Y, + AXIS_Z, + AXIS_RZ, + AXIS_HAT_X, + AXIS_HAT_Y, + AXIS_LTRIGGER, + AXIS_RTRIGGER, + AXIS_TOTAL_COUNT +}; + +} // namespace Q3DStudio |