1b877906bSopenharmony_ci//======================================================================== 2b877906bSopenharmony_ci// GLFW 3.5 - www.glfw.org 3b877906bSopenharmony_ci//------------------------------------------------------------------------ 4b877906bSopenharmony_ci// Copyright (c) 2016 Google Inc. 5b877906bSopenharmony_ci// Copyright (c) 2016-2017 Camilla Löwy <elmindreda@glfw.org> 6b877906bSopenharmony_ci// 7b877906bSopenharmony_ci// This software is provided 'as-is', without any express or implied 8b877906bSopenharmony_ci// warranty. In no event will the authors be held liable for any damages 9b877906bSopenharmony_ci// arising from the use of this software. 10b877906bSopenharmony_ci// 11b877906bSopenharmony_ci// Permission is granted to anyone to use this software for any purpose, 12b877906bSopenharmony_ci// including commercial applications, and to alter it and redistribute it 13b877906bSopenharmony_ci// freely, subject to the following restrictions: 14b877906bSopenharmony_ci// 15b877906bSopenharmony_ci// 1. The origin of this software must not be misrepresented; you must not 16b877906bSopenharmony_ci// claim that you wrote the original software. If you use this software 17b877906bSopenharmony_ci// in a product, an acknowledgment in the product documentation would 18b877906bSopenharmony_ci// be appreciated but is not required. 19b877906bSopenharmony_ci// 20b877906bSopenharmony_ci// 2. Altered source versions must be plainly marked as such, and must not 21b877906bSopenharmony_ci// be misrepresented as being the original software. 22b877906bSopenharmony_ci// 23b877906bSopenharmony_ci// 3. This notice may not be removed or altered from any source 24b877906bSopenharmony_ci// distribution. 25b877906bSopenharmony_ci// 26b877906bSopenharmony_ci//======================================================================== 27b877906bSopenharmony_ci 28b877906bSopenharmony_ci#include "internal.h" 29b877906bSopenharmony_ci 30b877906bSopenharmony_ci#include <stdlib.h> 31b877906bSopenharmony_ci#include <string.h> 32b877906bSopenharmony_ci 33b877906bSopenharmony_ci 34b877906bSopenharmony_ci////////////////////////////////////////////////////////////////////////// 35b877906bSopenharmony_ci////// GLFW platform API ////// 36b877906bSopenharmony_ci////////////////////////////////////////////////////////////////////////// 37b877906bSopenharmony_ci 38b877906bSopenharmony_ciGLFWbool _glfwConnectNull(int platformID, _GLFWplatform* platform) 39b877906bSopenharmony_ci{ 40b877906bSopenharmony_ci const _GLFWplatform null = 41b877906bSopenharmony_ci { 42b877906bSopenharmony_ci .platformID = GLFW_PLATFORM_NULL, 43b877906bSopenharmony_ci .init = _glfwInitNull, 44b877906bSopenharmony_ci .terminate = _glfwTerminateNull, 45b877906bSopenharmony_ci .getCursorPos = _glfwGetCursorPosNull, 46b877906bSopenharmony_ci .setCursorPos = _glfwSetCursorPosNull, 47b877906bSopenharmony_ci .setCursorMode = _glfwSetCursorModeNull, 48b877906bSopenharmony_ci .setRawMouseMotion = _glfwSetRawMouseMotionNull, 49b877906bSopenharmony_ci .rawMouseMotionSupported = _glfwRawMouseMotionSupportedNull, 50b877906bSopenharmony_ci .createCursor = _glfwCreateCursorNull, 51b877906bSopenharmony_ci .createStandardCursor = _glfwCreateStandardCursorNull, 52b877906bSopenharmony_ci .destroyCursor = _glfwDestroyCursorNull, 53b877906bSopenharmony_ci .setCursor = _glfwSetCursorNull, 54b877906bSopenharmony_ci .getScancodeName = _glfwGetScancodeNameNull, 55b877906bSopenharmony_ci .getKeyScancode = _glfwGetKeyScancodeNull, 56b877906bSopenharmony_ci .setClipboardString = _glfwSetClipboardStringNull, 57b877906bSopenharmony_ci .getClipboardString = _glfwGetClipboardStringNull, 58b877906bSopenharmony_ci .initJoysticks = _glfwInitJoysticksNull, 59b877906bSopenharmony_ci .terminateJoysticks = _glfwTerminateJoysticksNull, 60b877906bSopenharmony_ci .pollJoystick = _glfwPollJoystickNull, 61b877906bSopenharmony_ci .getMappingName = _glfwGetMappingNameNull, 62b877906bSopenharmony_ci .updateGamepadGUID = _glfwUpdateGamepadGUIDNull, 63b877906bSopenharmony_ci .freeMonitor = _glfwFreeMonitorNull, 64b877906bSopenharmony_ci .getMonitorPos = _glfwGetMonitorPosNull, 65b877906bSopenharmony_ci .getMonitorContentScale = _glfwGetMonitorContentScaleNull, 66b877906bSopenharmony_ci .getMonitorWorkarea = _glfwGetMonitorWorkareaNull, 67b877906bSopenharmony_ci .getVideoModes = _glfwGetVideoModesNull, 68b877906bSopenharmony_ci .getVideoMode = _glfwGetVideoModeNull, 69b877906bSopenharmony_ci .getGammaRamp = _glfwGetGammaRampNull, 70b877906bSopenharmony_ci .setGammaRamp = _glfwSetGammaRampNull, 71b877906bSopenharmony_ci .createWindow = _glfwCreateWindowNull, 72b877906bSopenharmony_ci .destroyWindow = _glfwDestroyWindowNull, 73b877906bSopenharmony_ci .setWindowTitle = _glfwSetWindowTitleNull, 74b877906bSopenharmony_ci .setWindowIcon = _glfwSetWindowIconNull, 75b877906bSopenharmony_ci .getWindowPos = _glfwGetWindowPosNull, 76b877906bSopenharmony_ci .setWindowPos = _glfwSetWindowPosNull, 77b877906bSopenharmony_ci .getWindowSize = _glfwGetWindowSizeNull, 78b877906bSopenharmony_ci .setWindowSize = _glfwSetWindowSizeNull, 79b877906bSopenharmony_ci .setWindowSizeLimits = _glfwSetWindowSizeLimitsNull, 80b877906bSopenharmony_ci .setWindowAspectRatio = _glfwSetWindowAspectRatioNull, 81b877906bSopenharmony_ci .getFramebufferSize = _glfwGetFramebufferSizeNull, 82b877906bSopenharmony_ci .getWindowFrameSize = _glfwGetWindowFrameSizeNull, 83b877906bSopenharmony_ci .getWindowContentScale = _glfwGetWindowContentScaleNull, 84b877906bSopenharmony_ci .iconifyWindow = _glfwIconifyWindowNull, 85b877906bSopenharmony_ci .restoreWindow = _glfwRestoreWindowNull, 86b877906bSopenharmony_ci .maximizeWindow = _glfwMaximizeWindowNull, 87b877906bSopenharmony_ci .showWindow = _glfwShowWindowNull, 88b877906bSopenharmony_ci .hideWindow = _glfwHideWindowNull, 89b877906bSopenharmony_ci .requestWindowAttention = _glfwRequestWindowAttentionNull, 90b877906bSopenharmony_ci .focusWindow = _glfwFocusWindowNull, 91b877906bSopenharmony_ci .setWindowMonitor = _glfwSetWindowMonitorNull, 92b877906bSopenharmony_ci .windowFocused = _glfwWindowFocusedNull, 93b877906bSopenharmony_ci .windowIconified = _glfwWindowIconifiedNull, 94b877906bSopenharmony_ci .windowVisible = _glfwWindowVisibleNull, 95b877906bSopenharmony_ci .windowMaximized = _glfwWindowMaximizedNull, 96b877906bSopenharmony_ci .windowHovered = _glfwWindowHoveredNull, 97b877906bSopenharmony_ci .framebufferTransparent = _glfwFramebufferTransparentNull, 98b877906bSopenharmony_ci .getWindowOpacity = _glfwGetWindowOpacityNull, 99b877906bSopenharmony_ci .setWindowResizable = _glfwSetWindowResizableNull, 100b877906bSopenharmony_ci .setWindowDecorated = _glfwSetWindowDecoratedNull, 101b877906bSopenharmony_ci .setWindowFloating = _glfwSetWindowFloatingNull, 102b877906bSopenharmony_ci .setWindowOpacity = _glfwSetWindowOpacityNull, 103b877906bSopenharmony_ci .setWindowMousePassthrough = _glfwSetWindowMousePassthroughNull, 104b877906bSopenharmony_ci .pollEvents = _glfwPollEventsNull, 105b877906bSopenharmony_ci .waitEvents = _glfwWaitEventsNull, 106b877906bSopenharmony_ci .waitEventsTimeout = _glfwWaitEventsTimeoutNull, 107b877906bSopenharmony_ci .postEmptyEvent = _glfwPostEmptyEventNull, 108b877906bSopenharmony_ci .getEGLPlatform = _glfwGetEGLPlatformNull, 109b877906bSopenharmony_ci .getEGLNativeDisplay = _glfwGetEGLNativeDisplayNull, 110b877906bSopenharmony_ci .getEGLNativeWindow = _glfwGetEGLNativeWindowNull, 111b877906bSopenharmony_ci .getRequiredInstanceExtensions = _glfwGetRequiredInstanceExtensionsNull, 112b877906bSopenharmony_ci .getPhysicalDevicePresentationSupport = _glfwGetPhysicalDevicePresentationSupportNull, 113b877906bSopenharmony_ci .createWindowSurface = _glfwCreateWindowSurfaceNull 114b877906bSopenharmony_ci }; 115b877906bSopenharmony_ci 116b877906bSopenharmony_ci *platform = null; 117b877906bSopenharmony_ci return GLFW_TRUE; 118b877906bSopenharmony_ci} 119b877906bSopenharmony_ci 120b877906bSopenharmony_ciint _glfwInitNull(void) 121b877906bSopenharmony_ci{ 122b877906bSopenharmony_ci int scancode; 123b877906bSopenharmony_ci 124b877906bSopenharmony_ci memset(_glfw.null.keycodes, -1, sizeof(_glfw.null.keycodes)); 125b877906bSopenharmony_ci memset(_glfw.null.scancodes, -1, sizeof(_glfw.null.scancodes)); 126b877906bSopenharmony_ci 127b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_SPACE] = GLFW_KEY_SPACE; 128b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_APOSTROPHE] = GLFW_KEY_APOSTROPHE; 129b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_COMMA] = GLFW_KEY_COMMA; 130b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_MINUS] = GLFW_KEY_MINUS; 131b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_PERIOD] = GLFW_KEY_PERIOD; 132b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_SLASH] = GLFW_KEY_SLASH; 133b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_0] = GLFW_KEY_0; 134b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_1] = GLFW_KEY_1; 135b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_2] = GLFW_KEY_2; 136b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_3] = GLFW_KEY_3; 137b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_4] = GLFW_KEY_4; 138b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_5] = GLFW_KEY_5; 139b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_6] = GLFW_KEY_6; 140b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_7] = GLFW_KEY_7; 141b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_8] = GLFW_KEY_8; 142b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_9] = GLFW_KEY_9; 143b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_SEMICOLON] = GLFW_KEY_SEMICOLON; 144b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_EQUAL] = GLFW_KEY_EQUAL; 145b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_A] = GLFW_KEY_A; 146b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_B] = GLFW_KEY_B; 147b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_C] = GLFW_KEY_C; 148b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_D] = GLFW_KEY_D; 149b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_E] = GLFW_KEY_E; 150b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F] = GLFW_KEY_F; 151b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_G] = GLFW_KEY_G; 152b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_H] = GLFW_KEY_H; 153b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_I] = GLFW_KEY_I; 154b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_J] = GLFW_KEY_J; 155b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_K] = GLFW_KEY_K; 156b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_L] = GLFW_KEY_L; 157b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_M] = GLFW_KEY_M; 158b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_N] = GLFW_KEY_N; 159b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_O] = GLFW_KEY_O; 160b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_P] = GLFW_KEY_P; 161b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_Q] = GLFW_KEY_Q; 162b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_R] = GLFW_KEY_R; 163b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_S] = GLFW_KEY_S; 164b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_T] = GLFW_KEY_T; 165b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_U] = GLFW_KEY_U; 166b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_V] = GLFW_KEY_V; 167b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_W] = GLFW_KEY_W; 168b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_X] = GLFW_KEY_X; 169b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_Y] = GLFW_KEY_Y; 170b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_Z] = GLFW_KEY_Z; 171b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_LEFT_BRACKET] = GLFW_KEY_LEFT_BRACKET; 172b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_BACKSLASH] = GLFW_KEY_BACKSLASH; 173b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_RIGHT_BRACKET] = GLFW_KEY_RIGHT_BRACKET; 174b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_GRAVE_ACCENT] = GLFW_KEY_GRAVE_ACCENT; 175b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_WORLD_1] = GLFW_KEY_WORLD_1; 176b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_WORLD_2] = GLFW_KEY_WORLD_2; 177b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_ESCAPE] = GLFW_KEY_ESCAPE; 178b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_ENTER] = GLFW_KEY_ENTER; 179b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_TAB] = GLFW_KEY_TAB; 180b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_BACKSPACE] = GLFW_KEY_BACKSPACE; 181b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_INSERT] = GLFW_KEY_INSERT; 182b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_DELETE] = GLFW_KEY_DELETE; 183b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_RIGHT] = GLFW_KEY_RIGHT; 184b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_LEFT] = GLFW_KEY_LEFT; 185b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_DOWN] = GLFW_KEY_DOWN; 186b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_UP] = GLFW_KEY_UP; 187b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_PAGE_UP] = GLFW_KEY_PAGE_UP; 188b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_PAGE_DOWN] = GLFW_KEY_PAGE_DOWN; 189b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_HOME] = GLFW_KEY_HOME; 190b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_END] = GLFW_KEY_END; 191b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_CAPS_LOCK] = GLFW_KEY_CAPS_LOCK; 192b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_SCROLL_LOCK] = GLFW_KEY_SCROLL_LOCK; 193b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_NUM_LOCK] = GLFW_KEY_NUM_LOCK; 194b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_PRINT_SCREEN] = GLFW_KEY_PRINT_SCREEN; 195b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_PAUSE] = GLFW_KEY_PAUSE; 196b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F1] = GLFW_KEY_F1; 197b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F2] = GLFW_KEY_F2; 198b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F3] = GLFW_KEY_F3; 199b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F4] = GLFW_KEY_F4; 200b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F5] = GLFW_KEY_F5; 201b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F6] = GLFW_KEY_F6; 202b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F7] = GLFW_KEY_F7; 203b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F8] = GLFW_KEY_F8; 204b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F9] = GLFW_KEY_F9; 205b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F10] = GLFW_KEY_F10; 206b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F11] = GLFW_KEY_F11; 207b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F12] = GLFW_KEY_F12; 208b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F13] = GLFW_KEY_F13; 209b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F14] = GLFW_KEY_F14; 210b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F15] = GLFW_KEY_F15; 211b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F16] = GLFW_KEY_F16; 212b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F17] = GLFW_KEY_F17; 213b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F18] = GLFW_KEY_F18; 214b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F19] = GLFW_KEY_F19; 215b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F20] = GLFW_KEY_F20; 216b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F21] = GLFW_KEY_F21; 217b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F22] = GLFW_KEY_F22; 218b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F23] = GLFW_KEY_F23; 219b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F24] = GLFW_KEY_F24; 220b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_F25] = GLFW_KEY_F25; 221b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_0] = GLFW_KEY_KP_0; 222b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_1] = GLFW_KEY_KP_1; 223b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_2] = GLFW_KEY_KP_2; 224b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_3] = GLFW_KEY_KP_3; 225b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_4] = GLFW_KEY_KP_4; 226b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_5] = GLFW_KEY_KP_5; 227b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_6] = GLFW_KEY_KP_6; 228b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_7] = GLFW_KEY_KP_7; 229b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_8] = GLFW_KEY_KP_8; 230b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_9] = GLFW_KEY_KP_9; 231b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_DECIMAL] = GLFW_KEY_KP_DECIMAL; 232b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_DIVIDE] = GLFW_KEY_KP_DIVIDE; 233b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_MULTIPLY] = GLFW_KEY_KP_MULTIPLY; 234b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_SUBTRACT] = GLFW_KEY_KP_SUBTRACT; 235b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_ADD] = GLFW_KEY_KP_ADD; 236b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_ENTER] = GLFW_KEY_KP_ENTER; 237b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_KP_EQUAL] = GLFW_KEY_KP_EQUAL; 238b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_LEFT_SHIFT] = GLFW_KEY_LEFT_SHIFT; 239b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_LEFT_CONTROL] = GLFW_KEY_LEFT_CONTROL; 240b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_LEFT_ALT] = GLFW_KEY_LEFT_ALT; 241b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_LEFT_SUPER] = GLFW_KEY_LEFT_SUPER; 242b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_RIGHT_SHIFT] = GLFW_KEY_RIGHT_SHIFT; 243b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_RIGHT_CONTROL] = GLFW_KEY_RIGHT_CONTROL; 244b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_RIGHT_ALT] = GLFW_KEY_RIGHT_ALT; 245b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_RIGHT_SUPER] = GLFW_KEY_RIGHT_SUPER; 246b877906bSopenharmony_ci _glfw.null.keycodes[GLFW_NULL_SC_MENU] = GLFW_KEY_MENU; 247b877906bSopenharmony_ci 248b877906bSopenharmony_ci for (scancode = GLFW_NULL_SC_FIRST; scancode < GLFW_NULL_SC_LAST; scancode++) 249b877906bSopenharmony_ci { 250b877906bSopenharmony_ci if (_glfw.null.keycodes[scancode] > 0) 251b877906bSopenharmony_ci _glfw.null.scancodes[_glfw.null.keycodes[scancode]] = scancode; 252b877906bSopenharmony_ci } 253b877906bSopenharmony_ci 254b877906bSopenharmony_ci _glfwPollMonitorsNull(); 255b877906bSopenharmony_ci return GLFW_TRUE; 256b877906bSopenharmony_ci} 257b877906bSopenharmony_ci 258b877906bSopenharmony_civoid _glfwTerminateNull(void) 259b877906bSopenharmony_ci{ 260b877906bSopenharmony_ci free(_glfw.null.clipboardString); 261b877906bSopenharmony_ci _glfwTerminateOSMesa(); 262b877906bSopenharmony_ci _glfwTerminateEGL(); 263b877906bSopenharmony_ci} 264b877906bSopenharmony_ci 265