1 //======================================================================== 2 // GLFW 3.5 - www.glfw.org 3 //------------------------------------------------------------------------ 4 // Copyright (c) 2016 Google Inc. 5 // Copyright (c) 2016-2017 Camilla Löwy <elmindreda@glfw.org> 6 // 7 // This software is provided 'as-is', without any express or implied 8 // warranty. In no event will the authors be held liable for any damages 9 // arising from the use of this software. 10 // 11 // Permission is granted to anyone to use this software for any purpose, 12 // including commercial applications, and to alter it and redistribute it 13 // freely, subject to the following restrictions: 14 // 15 // 1. The origin of this software must not be misrepresented; you must not 16 // claim that you wrote the original software. If you use this software 17 // in a product, an acknowledgment in the product documentation would 18 // be appreciated but is not required. 19 // 20 // 2. Altered source versions must be plainly marked as such, and must not 21 // be misrepresented as being the original software. 22 // 23 // 3. This notice may not be removed or altered from any source 24 // distribution. 25 // 26 //======================================================================== 27 28 #define GLFW_NULL_WINDOW_STATE _GLFWwindowNull null; 29 #define GLFW_NULL_LIBRARY_WINDOW_STATE _GLFWlibraryNull null; 30 #define GLFW_NULL_MONITOR_STATE _GLFWmonitorNull null; 31 32 #define GLFW_NULL_CONTEXT_STATE 33 #define GLFW_NULL_CURSOR_STATE 34 #define GLFW_NULL_LIBRARY_CONTEXT_STATE 35 36 #define GLFW_NULL_SC_FIRST GLFW_NULL_SC_SPACE 37 #define GLFW_NULL_SC_SPACE 1 38 #define GLFW_NULL_SC_APOSTROPHE 2 39 #define GLFW_NULL_SC_COMMA 3 40 #define GLFW_NULL_SC_MINUS 4 41 #define GLFW_NULL_SC_PERIOD 5 42 #define GLFW_NULL_SC_SLASH 6 43 #define GLFW_NULL_SC_0 7 44 #define GLFW_NULL_SC_1 8 45 #define GLFW_NULL_SC_2 9 46 #define GLFW_NULL_SC_3 10 47 #define GLFW_NULL_SC_4 11 48 #define GLFW_NULL_SC_5 12 49 #define GLFW_NULL_SC_6 13 50 #define GLFW_NULL_SC_7 14 51 #define GLFW_NULL_SC_8 15 52 #define GLFW_NULL_SC_9 16 53 #define GLFW_NULL_SC_SEMICOLON 17 54 #define GLFW_NULL_SC_EQUAL 18 55 #define GLFW_NULL_SC_LEFT_BRACKET 19 56 #define GLFW_NULL_SC_BACKSLASH 20 57 #define GLFW_NULL_SC_RIGHT_BRACKET 21 58 #define GLFW_NULL_SC_GRAVE_ACCENT 22 59 #define GLFW_NULL_SC_WORLD_1 23 60 #define GLFW_NULL_SC_WORLD_2 24 61 #define GLFW_NULL_SC_ESCAPE 25 62 #define GLFW_NULL_SC_ENTER 26 63 #define GLFW_NULL_SC_TAB 27 64 #define GLFW_NULL_SC_BACKSPACE 28 65 #define GLFW_NULL_SC_INSERT 29 66 #define GLFW_NULL_SC_DELETE 30 67 #define GLFW_NULL_SC_RIGHT 31 68 #define GLFW_NULL_SC_LEFT 32 69 #define GLFW_NULL_SC_DOWN 33 70 #define GLFW_NULL_SC_UP 34 71 #define GLFW_NULL_SC_PAGE_UP 35 72 #define GLFW_NULL_SC_PAGE_DOWN 36 73 #define GLFW_NULL_SC_HOME 37 74 #define GLFW_NULL_SC_END 38 75 #define GLFW_NULL_SC_CAPS_LOCK 39 76 #define GLFW_NULL_SC_SCROLL_LOCK 40 77 #define GLFW_NULL_SC_NUM_LOCK 41 78 #define GLFW_NULL_SC_PRINT_SCREEN 42 79 #define GLFW_NULL_SC_PAUSE 43 80 #define GLFW_NULL_SC_A 44 81 #define GLFW_NULL_SC_B 45 82 #define GLFW_NULL_SC_C 46 83 #define GLFW_NULL_SC_D 47 84 #define GLFW_NULL_SC_E 48 85 #define GLFW_NULL_SC_F 49 86 #define GLFW_NULL_SC_G 50 87 #define GLFW_NULL_SC_H 51 88 #define GLFW_NULL_SC_I 52 89 #define GLFW_NULL_SC_J 53 90 #define GLFW_NULL_SC_K 54 91 #define GLFW_NULL_SC_L 55 92 #define GLFW_NULL_SC_M 56 93 #define GLFW_NULL_SC_N 57 94 #define GLFW_NULL_SC_O 58 95 #define GLFW_NULL_SC_P 59 96 #define GLFW_NULL_SC_Q 60 97 #define GLFW_NULL_SC_R 61 98 #define GLFW_NULL_SC_S 62 99 #define GLFW_NULL_SC_T 63 100 #define GLFW_NULL_SC_U 64 101 #define GLFW_NULL_SC_V 65 102 #define GLFW_NULL_SC_W 66 103 #define GLFW_NULL_SC_X 67 104 #define GLFW_NULL_SC_Y 68 105 #define GLFW_NULL_SC_Z 69 106 #define GLFW_NULL_SC_F1 70 107 #define GLFW_NULL_SC_F2 71 108 #define GLFW_NULL_SC_F3 72 109 #define GLFW_NULL_SC_F4 73 110 #define GLFW_NULL_SC_F5 74 111 #define GLFW_NULL_SC_F6 75 112 #define GLFW_NULL_SC_F7 76 113 #define GLFW_NULL_SC_F8 77 114 #define GLFW_NULL_SC_F9 78 115 #define GLFW_NULL_SC_F10 79 116 #define GLFW_NULL_SC_F11 80 117 #define GLFW_NULL_SC_F12 81 118 #define GLFW_NULL_SC_F13 82 119 #define GLFW_NULL_SC_F14 83 120 #define GLFW_NULL_SC_F15 84 121 #define GLFW_NULL_SC_F16 85 122 #define GLFW_NULL_SC_F17 86 123 #define GLFW_NULL_SC_F18 87 124 #define GLFW_NULL_SC_F19 88 125 #define GLFW_NULL_SC_F20 89 126 #define GLFW_NULL_SC_F21 90 127 #define GLFW_NULL_SC_F22 91 128 #define GLFW_NULL_SC_F23 92 129 #define GLFW_NULL_SC_F24 93 130 #define GLFW_NULL_SC_F25 94 131 #define GLFW_NULL_SC_KP_0 95 132 #define GLFW_NULL_SC_KP_1 96 133 #define GLFW_NULL_SC_KP_2 97 134 #define GLFW_NULL_SC_KP_3 98 135 #define GLFW_NULL_SC_KP_4 99 136 #define GLFW_NULL_SC_KP_5 100 137 #define GLFW_NULL_SC_KP_6 101 138 #define GLFW_NULL_SC_KP_7 102 139 #define GLFW_NULL_SC_KP_8 103 140 #define GLFW_NULL_SC_KP_9 104 141 #define GLFW_NULL_SC_KP_DECIMAL 105 142 #define GLFW_NULL_SC_KP_DIVIDE 106 143 #define GLFW_NULL_SC_KP_MULTIPLY 107 144 #define GLFW_NULL_SC_KP_SUBTRACT 108 145 #define GLFW_NULL_SC_KP_ADD 109 146 #define GLFW_NULL_SC_KP_ENTER 110 147 #define GLFW_NULL_SC_KP_EQUAL 111 148 #define GLFW_NULL_SC_LEFT_SHIFT 112 149 #define GLFW_NULL_SC_LEFT_CONTROL 113 150 #define GLFW_NULL_SC_LEFT_ALT 114 151 #define GLFW_NULL_SC_LEFT_SUPER 115 152 #define GLFW_NULL_SC_RIGHT_SHIFT 116 153 #define GLFW_NULL_SC_RIGHT_CONTROL 117 154 #define GLFW_NULL_SC_RIGHT_ALT 118 155 #define GLFW_NULL_SC_RIGHT_SUPER 119 156 #define GLFW_NULL_SC_MENU 120 157 #define GLFW_NULL_SC_LAST GLFW_NULL_SC_MENU 158 159 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; 160 161 typedef struct VkHeadlessSurfaceCreateInfoEXT 162 { 163 VkStructureType sType; 164 const void* pNext; 165 VkHeadlessSurfaceCreateFlagsEXT flags; 166 } VkHeadlessSurfaceCreateInfoEXT; 167 168 typedef VkResult (APIENTRY *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance,const VkHeadlessSurfaceCreateInfoEXT*,const VkAllocationCallbacks*,VkSurfaceKHR*); 169 170 // Null-specific per-window data 171 // 172 typedef struct _GLFWwindowNull 173 { 174 int xpos; 175 int ypos; 176 int width; 177 int height; 178 GLFWbool visible; 179 GLFWbool iconified; 180 GLFWbool maximized; 181 GLFWbool resizable; 182 GLFWbool decorated; 183 GLFWbool floating; 184 GLFWbool transparent; 185 float opacity; 186 } _GLFWwindowNull; 187 188 // Null-specific per-monitor data 189 // 190 typedef struct _GLFWmonitorNull 191 { 192 GLFWgammaramp ramp; 193 } _GLFWmonitorNull; 194 195 // Null-specific global data 196 // 197 typedef struct _GLFWlibraryNull 198 { 199 int xcursor; 200 int ycursor; 201 char* clipboardString; 202 _GLFWwindow* focusedWindow; 203 uint16_t keycodes[GLFW_NULL_SC_LAST + 1]; 204 uint8_t scancodes[GLFW_KEY_LAST + 1]; 205 } _GLFWlibraryNull; 206 207 void _glfwPollMonitorsNull(void); 208 209 GLFWbool _glfwConnectNull(int platformID, _GLFWplatform* platform); 210 int _glfwInitNull(void); 211 void _glfwTerminateNull(void); 212 213 void _glfwFreeMonitorNull(_GLFWmonitor* monitor); 214 void _glfwGetMonitorPosNull(_GLFWmonitor* monitor, int* xpos, int* ypos); 215 void _glfwGetMonitorContentScaleNull(_GLFWmonitor* monitor, float* xscale, float* yscale); 216 void _glfwGetMonitorWorkareaNull(_GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height); 217 GLFWvidmode* _glfwGetVideoModesNull(_GLFWmonitor* monitor, int* found); 218 GLFWbool _glfwGetVideoModeNull(_GLFWmonitor* monitor, GLFWvidmode* mode); 219 GLFWbool _glfwGetGammaRampNull(_GLFWmonitor* monitor, GLFWgammaramp* ramp); 220 void _glfwSetGammaRampNull(_GLFWmonitor* monitor, const GLFWgammaramp* ramp); 221 222 GLFWbool _glfwCreateWindowNull(_GLFWwindow* window, const _GLFWwndconfig* wndconfig, const _GLFWctxconfig* ctxconfig, const _GLFWfbconfig* fbconfig); 223 void _glfwDestroyWindowNull(_GLFWwindow* window); 224 void _glfwSetWindowTitleNull(_GLFWwindow* window, const char* title); 225 void _glfwSetWindowIconNull(_GLFWwindow* window, int count, const GLFWimage* images); 226 void _glfwSetWindowMonitorNull(_GLFWwindow* window, _GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate); 227 void _glfwGetWindowPosNull(_GLFWwindow* window, int* xpos, int* ypos); 228 void _glfwSetWindowPosNull(_GLFWwindow* window, int xpos, int ypos); 229 void _glfwGetWindowSizeNull(_GLFWwindow* window, int* width, int* height); 230 void _glfwSetWindowSizeNull(_GLFWwindow* window, int width, int height); 231 void _glfwSetWindowSizeLimitsNull(_GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight); 232 void _glfwSetWindowAspectRatioNull(_GLFWwindow* window, int n, int d); 233 void _glfwGetFramebufferSizeNull(_GLFWwindow* window, int* width, int* height); 234 void _glfwGetWindowFrameSizeNull(_GLFWwindow* window, int* left, int* top, int* right, int* bottom); 235 void _glfwGetWindowContentScaleNull(_GLFWwindow* window, float* xscale, float* yscale); 236 void _glfwIconifyWindowNull(_GLFWwindow* window); 237 void _glfwRestoreWindowNull(_GLFWwindow* window); 238 void _glfwMaximizeWindowNull(_GLFWwindow* window); 239 GLFWbool _glfwWindowMaximizedNull(_GLFWwindow* window); 240 GLFWbool _glfwWindowHoveredNull(_GLFWwindow* window); 241 GLFWbool _glfwFramebufferTransparentNull(_GLFWwindow* window); 242 void _glfwSetWindowResizableNull(_GLFWwindow* window, GLFWbool enabled); 243 void _glfwSetWindowDecoratedNull(_GLFWwindow* window, GLFWbool enabled); 244 void _glfwSetWindowFloatingNull(_GLFWwindow* window, GLFWbool enabled); 245 void _glfwSetWindowMousePassthroughNull(_GLFWwindow* window, GLFWbool enabled); 246 float _glfwGetWindowOpacityNull(_GLFWwindow* window); 247 void _glfwSetWindowOpacityNull(_GLFWwindow* window, float opacity); 248 void _glfwSetRawMouseMotionNull(_GLFWwindow *window, GLFWbool enabled); 249 GLFWbool _glfwRawMouseMotionSupportedNull(void); 250 void _glfwShowWindowNull(_GLFWwindow* window); 251 void _glfwRequestWindowAttentionNull(_GLFWwindow* window); 252 void _glfwHideWindowNull(_GLFWwindow* window); 253 void _glfwFocusWindowNull(_GLFWwindow* window); 254 GLFWbool _glfwWindowFocusedNull(_GLFWwindow* window); 255 GLFWbool _glfwWindowIconifiedNull(_GLFWwindow* window); 256 GLFWbool _glfwWindowVisibleNull(_GLFWwindow* window); 257 void _glfwPollEventsNull(void); 258 void _glfwWaitEventsNull(void); 259 void _glfwWaitEventsTimeoutNull(double timeout); 260 void _glfwPostEmptyEventNull(void); 261 void _glfwGetCursorPosNull(_GLFWwindow* window, double* xpos, double* ypos); 262 void _glfwSetCursorPosNull(_GLFWwindow* window, double x, double y); 263 void _glfwSetCursorModeNull(_GLFWwindow* window, int mode); 264 GLFWbool _glfwCreateCursorNull(_GLFWcursor* cursor, const GLFWimage* image, int xhot, int yhot); 265 GLFWbool _glfwCreateStandardCursorNull(_GLFWcursor* cursor, int shape); 266 void _glfwDestroyCursorNull(_GLFWcursor* cursor); 267 void _glfwSetCursorNull(_GLFWwindow* window, _GLFWcursor* cursor); 268 void _glfwSetClipboardStringNull(const char* string); 269 const char* _glfwGetClipboardStringNull(void); 270 const char* _glfwGetScancodeNameNull(int scancode); 271 int _glfwGetKeyScancodeNull(int key); 272 273 EGLenum _glfwGetEGLPlatformNull(EGLint** attribs); 274 EGLNativeDisplayType _glfwGetEGLNativeDisplayNull(void); 275 EGLNativeWindowType _glfwGetEGLNativeWindowNull(_GLFWwindow* window); 276 277 void _glfwGetRequiredInstanceExtensionsNull(char** extensions); 278 GLFWbool _glfwGetPhysicalDevicePresentationSupportNull(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily); 279 VkResult _glfwCreateWindowSurfaceNull(VkInstance instance, _GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface); 280 281 void _glfwPollMonitorsNull(void); 282 283