summaryrefslogtreecommitdiff
path: root/ext/glfw/src/null_platform.h
blob: dbcb835b8347f61cb9d24310e2cead44dc0272ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
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
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
//========================================================================
// GLFW 3.5 - www.glfw.org
//------------------------------------------------------------------------
// Copyright (c) 2016 Google Inc.
// Copyright (c) 2016-2017 Camilla Löwy <elmindreda@glfw.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.
//
//========================================================================

#define GLFW_NULL_WINDOW_STATE          _GLFWwindowNull null;
#define GLFW_NULL_LIBRARY_WINDOW_STATE  _GLFWlibraryNull null;
#define GLFW_NULL_MONITOR_STATE         _GLFWmonitorNull null;

#define GLFW_NULL_CONTEXT_STATE
#define GLFW_NULL_CURSOR_STATE
#define GLFW_NULL_LIBRARY_CONTEXT_STATE

#define GLFW_NULL_SC_FIRST          GLFW_NULL_SC_SPACE
#define GLFW_NULL_SC_SPACE          1
#define GLFW_NULL_SC_APOSTROPHE     2
#define GLFW_NULL_SC_COMMA          3
#define GLFW_NULL_SC_MINUS          4
#define GLFW_NULL_SC_PERIOD         5
#define GLFW_NULL_SC_SLASH          6
#define GLFW_NULL_SC_0              7
#define GLFW_NULL_SC_1              8
#define GLFW_NULL_SC_2              9
#define GLFW_NULL_SC_3              10
#define GLFW_NULL_SC_4              11
#define GLFW_NULL_SC_5              12
#define GLFW_NULL_SC_6              13
#define GLFW_NULL_SC_7              14
#define GLFW_NULL_SC_8              15
#define GLFW_NULL_SC_9              16
#define GLFW_NULL_SC_SEMICOLON      17
#define GLFW_NULL_SC_EQUAL          18
#define GLFW_NULL_SC_LEFT_BRACKET   19
#define GLFW_NULL_SC_BACKSLASH      20
#define GLFW_NULL_SC_RIGHT_BRACKET  21
#define GLFW_NULL_SC_GRAVE_ACCENT   22
#define GLFW_NULL_SC_WORLD_1        23
#define GLFW_NULL_SC_WORLD_2        24
#define GLFW_NULL_SC_ESCAPE         25
#define GLFW_NULL_SC_ENTER          26
#define GLFW_NULL_SC_TAB            27
#define GLFW_NULL_SC_BACKSPACE      28
#define GLFW_NULL_SC_INSERT         29
#define GLFW_NULL_SC_DELETE         30
#define GLFW_NULL_SC_RIGHT          31
#define GLFW_NULL_SC_LEFT           32
#define GLFW_NULL_SC_DOWN           33
#define GLFW_NULL_SC_UP             34
#define GLFW_NULL_SC_PAGE_UP        35
#define GLFW_NULL_SC_PAGE_DOWN      36
#define GLFW_NULL_SC_HOME           37
#define GLFW_NULL_SC_END            38
#define GLFW_NULL_SC_CAPS_LOCK      39
#define GLFW_NULL_SC_SCROLL_LOCK    40
#define GLFW_NULL_SC_NUM_LOCK       41
#define GLFW_NULL_SC_PRINT_SCREEN   42
#define GLFW_NULL_SC_PAUSE          43
#define GLFW_NULL_SC_A              44
#define GLFW_NULL_SC_B              45
#define GLFW_NULL_SC_C              46
#define GLFW_NULL_SC_D              47
#define GLFW_NULL_SC_E              48
#define GLFW_NULL_SC_F              49
#define GLFW_NULL_SC_G              50
#define GLFW_NULL_SC_H              51
#define GLFW_NULL_SC_I              52
#define GLFW_NULL_SC_J              53
#define GLFW_NULL_SC_K              54
#define GLFW_NULL_SC_L              55
#define GLFW_NULL_SC_M              56
#define GLFW_NULL_SC_N              57
#define GLFW_NULL_SC_O              58
#define GLFW_NULL_SC_P              59
#define GLFW_NULL_SC_Q              60
#define GLFW_NULL_SC_R              61
#define GLFW_NULL_SC_S              62
#define GLFW_NULL_SC_T              63
#define GLFW_NULL_SC_U              64
#define GLFW_NULL_SC_V              65
#define GLFW_NULL_SC_W              66
#define GLFW_NULL_SC_X              67
#define GLFW_NULL_SC_Y              68
#define GLFW_NULL_SC_Z              69
#define GLFW_NULL_SC_F1             70
#define GLFW_NULL_SC_F2             71
#define GLFW_NULL_SC_F3             72
#define GLFW_NULL_SC_F4             73
#define GLFW_NULL_SC_F5             74
#define GLFW_NULL_SC_F6             75
#define GLFW_NULL_SC_F7             76
#define GLFW_NULL_SC_F8             77
#define GLFW_NULL_SC_F9             78
#define GLFW_NULL_SC_F10            79
#define GLFW_NULL_SC_F11            80
#define GLFW_NULL_SC_F12            81
#define GLFW_NULL_SC_F13            82
#define GLFW_NULL_SC_F14            83
#define GLFW_NULL_SC_F15            84
#define GLFW_NULL_SC_F16            85
#define GLFW_NULL_SC_F17            86
#define GLFW_NULL_SC_F18            87
#define GLFW_NULL_SC_F19            88
#define GLFW_NULL_SC_F20            89
#define GLFW_NULL_SC_F21            90
#define GLFW_NULL_SC_F22            91
#define GLFW_NULL_SC_F23            92
#define GLFW_NULL_SC_F24            93
#define GLFW_NULL_SC_F25            94
#define GLFW_NULL_SC_KP_0           95
#define GLFW_NULL_SC_KP_1           96
#define GLFW_NULL_SC_KP_2           97
#define GLFW_NULL_SC_KP_3           98
#define GLFW_NULL_SC_KP_4           99
#define GLFW_NULL_SC_KP_5           100
#define GLFW_NULL_SC_KP_6           101
#define GLFW_NULL_SC_KP_7           102
#define GLFW_NULL_SC_KP_8           103
#define GLFW_NULL_SC_KP_9           104
#define GLFW_NULL_SC_KP_DECIMAL     105
#define GLFW_NULL_SC_KP_DIVIDE      106
#define GLFW_NULL_SC_KP_MULTIPLY    107
#define GLFW_NULL_SC_KP_SUBTRACT    108
#define GLFW_NULL_SC_KP_ADD         109
#define GLFW_NULL_SC_KP_ENTER       110
#define GLFW_NULL_SC_KP_EQUAL       111
#define GLFW_NULL_SC_LEFT_SHIFT     112
#define GLFW_NULL_SC_LEFT_CONTROL   113
#define GLFW_NULL_SC_LEFT_ALT       114
#define GLFW_NULL_SC_LEFT_SUPER     115
#define GLFW_NULL_SC_RIGHT_SHIFT    116
#define GLFW_NULL_SC_RIGHT_CONTROL  117
#define GLFW_NULL_SC_RIGHT_ALT      118
#define GLFW_NULL_SC_RIGHT_SUPER    119
#define GLFW_NULL_SC_MENU           120
#define GLFW_NULL_SC_LAST           GLFW_NULL_SC_MENU

typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;

typedef struct VkHeadlessSurfaceCreateInfoEXT
{
    VkStructureType                 sType;
    const void*                     pNext;
    VkHeadlessSurfaceCreateFlagsEXT flags;
} VkHeadlessSurfaceCreateInfoEXT;

typedef VkResult (APIENTRY *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance,const VkHeadlessSurfaceCreateInfoEXT*,const VkAllocationCallbacks*,VkSurfaceKHR*);

// Null-specific per-window data
//
typedef struct _GLFWwindowNull
{
    int             xpos;
    int             ypos;
    int             width;
    int             height;
    GLFWbool        visible;
    GLFWbool        iconified;
    GLFWbool        maximized;
    GLFWbool        resizable;
    GLFWbool        decorated;
    GLFWbool        floating;
    GLFWbool        transparent;
    float           opacity;
} _GLFWwindowNull;

// Null-specific per-monitor data
//
typedef struct _GLFWmonitorNull
{
    GLFWgammaramp   ramp;
} _GLFWmonitorNull;

// Null-specific global data
//
typedef struct _GLFWlibraryNull
{
    int             xcursor;
    int             ycursor;
    char*           clipboardString;
    _GLFWwindow*    focusedWindow;
    uint16_t        keycodes[GLFW_NULL_SC_LAST + 1];
    uint8_t         scancodes[GLFW_KEY_LAST + 1];
} _GLFWlibraryNull;

void _glfwPollMonitorsNull(void);

GLFWbool _glfwConnectNull(int platformID, _GLFWplatform* platform);
int _glfwInitNull(void);
void _glfwTerminateNull(void);

void _glfwFreeMonitorNull(_GLFWmonitor* monitor);
void _glfwGetMonitorPosNull(_GLFWmonitor* monitor, int* xpos, int* ypos);
void _glfwGetMonitorContentScaleNull(_GLFWmonitor* monitor, float* xscale, float* yscale);
void _glfwGetMonitorWorkareaNull(_GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
GLFWvidmode* _glfwGetVideoModesNull(_GLFWmonitor* monitor, int* found);
GLFWbool _glfwGetVideoModeNull(_GLFWmonitor* monitor, GLFWvidmode* mode);
GLFWbool _glfwGetGammaRampNull(_GLFWmonitor* monitor, GLFWgammaramp* ramp);
void _glfwSetGammaRampNull(_GLFWmonitor* monitor, const GLFWgammaramp* ramp);

GLFWbool _glfwCreateWindowNull(_GLFWwindow* window, const _GLFWwndconfig* wndconfig, const _GLFWctxconfig* ctxconfig, const _GLFWfbconfig* fbconfig);
void _glfwDestroyWindowNull(_GLFWwindow* window);
void _glfwSetWindowTitleNull(_GLFWwindow* window, const char* title);
void _glfwSetWindowIconNull(_GLFWwindow* window, int count, const GLFWimage* images);
void _glfwSetWindowMonitorNull(_GLFWwindow* window, _GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
void _glfwGetWindowPosNull(_GLFWwindow* window, int* xpos, int* ypos);
void _glfwSetWindowPosNull(_GLFWwindow* window, int xpos, int ypos);
void _glfwGetWindowSizeNull(_GLFWwindow* window, int* width, int* height);
void _glfwSetWindowSizeNull(_GLFWwindow* window, int width, int height);
void _glfwSetWindowSizeLimitsNull(_GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
void _glfwSetWindowAspectRatioNull(_GLFWwindow* window, int n, int d);
void _glfwGetFramebufferSizeNull(_GLFWwindow* window, int* width, int* height);
void _glfwGetWindowFrameSizeNull(_GLFWwindow* window, int* left, int* top, int* right, int* bottom);
void _glfwGetWindowContentScaleNull(_GLFWwindow* window, float* xscale, float* yscale);
void _glfwIconifyWindowNull(_GLFWwindow* window);
void _glfwRestoreWindowNull(_GLFWwindow* window);
void _glfwMaximizeWindowNull(_GLFWwindow* window);
GLFWbool _glfwWindowMaximizedNull(_GLFWwindow* window);
GLFWbool _glfwWindowHoveredNull(_GLFWwindow* window);
GLFWbool _glfwFramebufferTransparentNull(_GLFWwindow* window);
void _glfwSetWindowResizableNull(_GLFWwindow* window, GLFWbool enabled);
void _glfwSetWindowDecoratedNull(_GLFWwindow* window, GLFWbool enabled);
void _glfwSetWindowFloatingNull(_GLFWwindow* window, GLFWbool enabled);
void _glfwSetWindowMousePassthroughNull(_GLFWwindow* window, GLFWbool enabled);
float _glfwGetWindowOpacityNull(_GLFWwindow* window);
void _glfwSetWindowOpacityNull(_GLFWwindow* window, float opacity);
void _glfwSetRawMouseMotionNull(_GLFWwindow *window, GLFWbool enabled);
GLFWbool _glfwRawMouseMotionSupportedNull(void);
void _glfwShowWindowNull(_GLFWwindow* window);
void _glfwRequestWindowAttentionNull(_GLFWwindow* window);
void _glfwHideWindowNull(_GLFWwindow* window);
void _glfwFocusWindowNull(_GLFWwindow* window);
GLFWbool _glfwWindowFocusedNull(_GLFWwindow* window);
GLFWbool _glfwWindowIconifiedNull(_GLFWwindow* window);
GLFWbool _glfwWindowVisibleNull(_GLFWwindow* window);
void _glfwPollEventsNull(void);
void _glfwWaitEventsNull(void);
void _glfwWaitEventsTimeoutNull(double timeout);
void _glfwPostEmptyEventNull(void);
void _glfwGetCursorPosNull(_GLFWwindow* window, double* xpos, double* ypos);
void _glfwSetCursorPosNull(_GLFWwindow* window, double x, double y);
void _glfwSetCursorModeNull(_GLFWwindow* window, int mode);
GLFWbool _glfwCreateCursorNull(_GLFWcursor* cursor, const GLFWimage* image, int xhot, int yhot);
GLFWbool _glfwCreateStandardCursorNull(_GLFWcursor* cursor, int shape);
void _glfwDestroyCursorNull(_GLFWcursor* cursor);
void _glfwSetCursorNull(_GLFWwindow* window, _GLFWcursor* cursor);
void _glfwSetClipboardStringNull(const char* string);
const char* _glfwGetClipboardStringNull(void);
const char* _glfwGetScancodeNameNull(int scancode);
int _glfwGetKeyScancodeNull(int key);

EGLenum _glfwGetEGLPlatformNull(EGLint** attribs);
EGLNativeDisplayType _glfwGetEGLNativeDisplayNull(void);
EGLNativeWindowType _glfwGetEGLNativeWindowNull(_GLFWwindow* window);

void _glfwGetRequiredInstanceExtensionsNull(char** extensions);
GLFWbool _glfwGetPhysicalDevicePresentationSupportNull(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
VkResult _glfwCreateWindowSurfaceNull(VkInstance instance, _GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);

void _glfwPollMonitorsNull(void);