glfw 1.0.3 → 3.3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +161 -0
- data/.yardopts +6 -0
- data/Gemfile +2 -4
- data/README.md +29 -33
- data/Rakefile +6 -4
- data/ext/glfw/common.c +159 -0
- data/ext/glfw/cursor.c +34 -30
- data/ext/glfw/extconf.rb +7 -17
- data/ext/glfw/glfw.c +122 -377
- data/ext/glfw/glfw.h +46 -41
- data/ext/glfw/image.c +96 -64
- data/ext/glfw/joystick.c +169 -0
- data/ext/glfw/monitor.c +231 -155
- data/ext/glfw/stb_image.h +7656 -0
- data/ext/glfw/window.c +708 -576
- data/glfw.gemspec +10 -9
- data/lib/glfw.rb +4 -14
- data/lib/glfw/constants.rb +365 -0
- data/lib/glfw/stubs.rb +234 -0
- data/lib/glfw/stubs/cursor.rb +21 -0
- data/lib/glfw/stubs/gamepad_state.rb +30 -0
- data/lib/glfw/stubs/image.rb +39 -0
- data/lib/glfw/stubs/joystick.rb +125 -0
- data/lib/glfw/stubs/monitor.rb +115 -0
- data/lib/glfw/stubs/video_mode.rb +32 -0
- data/lib/glfw/stubs/window.rb +626 -0
- data/lib/glfw/version.rb +8 -1
- metadata +31 -35
- data/.travis.yml +0 -5
- data/Makefile +0 -267
- data/ext/glfw/common.h +0 -46
- data/ext/glfw/cursor.h +0 -14
- data/ext/glfw/glfw3.h +0 -4248
- data/ext/glfw/glfw3native.h +0 -456
- data/ext/glfw/image.h +0 -14
- data/ext/glfw/ming32/WINDOWS USERS PLACE libglf3.a HERE.txt b/data/ext/glfw/ming32/WINDOWS USERS PLACE libglf3.a → HERE.txt +0 -0
- data/ext/glfw/ming64/WINDOWS USERS PLACE libglf3.a HERE.txt b/data/ext/glfw/ming64/WINDOWS USERS PLACE libglf3.a → HERE.txt +0 -0
- data/ext/glfw/monitor.h +0 -29
- data/ext/glfw/video_mode.c +0 -60
- data/ext/glfw/video_mode.h +0 -21
- data/ext/glfw/vulkan.c +0 -48
- data/ext/glfw/vulkan.h +0 -16
- data/ext/glfw/window.h +0 -87
data/ext/glfw/cursor.h
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
|
2
|
-
#ifndef GLFW_RB_CURSOR_H
|
3
|
-
#define GLFW_RB_CURSOR_H 1
|
4
|
-
|
5
|
-
#include "common.h"
|
6
|
-
#include "image.h"
|
7
|
-
|
8
|
-
void Init_glfw_cursor(VALUE module);
|
9
|
-
static VALUE rb_glfw_cursor_alloc(VALUE klass);
|
10
|
-
VALUE rb_glfw_cursor_initialize(VALUE self, VALUE image, VALUE xhot, VALUE yhot);
|
11
|
-
VALUE rb_glfw_cursor_standard(VALUE klass, VALUE shape);
|
12
|
-
VALUE rb_glfw_cursor_destroy(VALUE self);
|
13
|
-
|
14
|
-
#endif /* GLFW_RB_CURSOR_H */
|
data/ext/glfw/glfw3.h
DELETED
@@ -1,4248 +0,0 @@
|
|
1
|
-
/*************************************************************************
|
2
|
-
* GLFW 3.2 - www.glfw.org
|
3
|
-
* A library for OpenGL, window and input
|
4
|
-
*------------------------------------------------------------------------
|
5
|
-
* Copyright (c) 2002-2006 Marcus Geelnard
|
6
|
-
* Copyright (c) 2006-2016 Camilla Berglund <elmindreda@glfw.org>
|
7
|
-
*
|
8
|
-
* This software is provided 'as-is', without any express or implied
|
9
|
-
* warranty. In no event will the authors be held liable for any damages
|
10
|
-
* arising from the use of this software.
|
11
|
-
*
|
12
|
-
* Permission is granted to anyone to use this software for any purpose,
|
13
|
-
* including commercial applications, and to alter it and redistribute it
|
14
|
-
* freely, subject to the following restrictions:
|
15
|
-
*
|
16
|
-
* 1. The origin of this software must not be misrepresented; you must not
|
17
|
-
* claim that you wrote the original software. If you use this software
|
18
|
-
* in a product, an acknowledgment in the product documentation would
|
19
|
-
* be appreciated but is not required.
|
20
|
-
*
|
21
|
-
* 2. Altered source versions must be plainly marked as such, and must not
|
22
|
-
* be misrepresented as being the original software.
|
23
|
-
*
|
24
|
-
* 3. This notice may not be removed or altered from any source
|
25
|
-
* distribution.
|
26
|
-
*
|
27
|
-
*************************************************************************/
|
28
|
-
|
29
|
-
#ifndef _glfw3_h_
|
30
|
-
#define _glfw3_h_
|
31
|
-
|
32
|
-
#ifdef __cplusplus
|
33
|
-
extern "C" {
|
34
|
-
#endif
|
35
|
-
|
36
|
-
|
37
|
-
/*************************************************************************
|
38
|
-
* Doxygen documentation
|
39
|
-
*************************************************************************/
|
40
|
-
|
41
|
-
/*! @file glfw3.h
|
42
|
-
* @brief The header of the GLFW 3 API.
|
43
|
-
*
|
44
|
-
* This is the header file of the GLFW 3 API. It defines all its types and
|
45
|
-
* declares all its functions.
|
46
|
-
*
|
47
|
-
* For more information about how to use this file, see @ref build_include.
|
48
|
-
*/
|
49
|
-
/*! @defgroup context Context reference
|
50
|
-
*
|
51
|
-
* This is the reference documentation for OpenGL and OpenGL ES context related
|
52
|
-
* functions. For more task-oriented information, see the @ref context_guide.
|
53
|
-
*/
|
54
|
-
/*! @defgroup vulkan Vulkan reference
|
55
|
-
*
|
56
|
-
* This is the reference documentation for Vulkan related functions and types.
|
57
|
-
* For more task-oriented information, see the @ref vulkan_guide.
|
58
|
-
*/
|
59
|
-
/*! @defgroup init Initialization, version and error reference
|
60
|
-
*
|
61
|
-
* This is the reference documentation for initialization and termination of
|
62
|
-
* the library, version management and error handling. For more task-oriented
|
63
|
-
* information, see the @ref intro_guide.
|
64
|
-
*/
|
65
|
-
/*! @defgroup input Input reference
|
66
|
-
*
|
67
|
-
* This is the reference documentation for input related functions and types.
|
68
|
-
* For more task-oriented information, see the @ref input_guide.
|
69
|
-
*/
|
70
|
-
/*! @defgroup monitor Monitor reference
|
71
|
-
*
|
72
|
-
* This is the reference documentation for monitor related functions and types.
|
73
|
-
* For more task-oriented information, see the @ref monitor_guide.
|
74
|
-
*/
|
75
|
-
/*! @defgroup window Window reference
|
76
|
-
*
|
77
|
-
* This is the reference documentation for window related functions and types,
|
78
|
-
* including creation, deletion and event polling. For more task-oriented
|
79
|
-
* information, see the @ref window_guide.
|
80
|
-
*/
|
81
|
-
|
82
|
-
|
83
|
-
/*************************************************************************
|
84
|
-
* Compiler- and platform-specific preprocessor work
|
85
|
-
*************************************************************************/
|
86
|
-
|
87
|
-
/* If we are we on Windows, we want a single define for it.
|
88
|
-
*/
|
89
|
-
#if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
|
90
|
-
#define _WIN32
|
91
|
-
#endif /* _WIN32 */
|
92
|
-
|
93
|
-
/* It is customary to use APIENTRY for OpenGL function pointer declarations on
|
94
|
-
* all platforms. Additionally, the Windows OpenGL header needs APIENTRY.
|
95
|
-
*/
|
96
|
-
#ifndef APIENTRY
|
97
|
-
#ifdef _WIN32
|
98
|
-
#define APIENTRY __stdcall
|
99
|
-
#else
|
100
|
-
#define APIENTRY
|
101
|
-
#endif
|
102
|
-
#endif /* APIENTRY */
|
103
|
-
|
104
|
-
/* Some Windows OpenGL headers need this.
|
105
|
-
*/
|
106
|
-
#if !defined(WINGDIAPI) && defined(_WIN32)
|
107
|
-
#define WINGDIAPI __declspec(dllimport)
|
108
|
-
#define GLFW_WINGDIAPI_DEFINED
|
109
|
-
#endif /* WINGDIAPI */
|
110
|
-
|
111
|
-
/* Some Windows GLU headers need this.
|
112
|
-
*/
|
113
|
-
#if !defined(CALLBACK) && defined(_WIN32)
|
114
|
-
#define CALLBACK __stdcall
|
115
|
-
#define GLFW_CALLBACK_DEFINED
|
116
|
-
#endif /* CALLBACK */
|
117
|
-
|
118
|
-
/* Include because most Windows GLU headers need wchar_t and
|
119
|
-
* the OS X OpenGL header blocks the definition of ptrdiff_t by glext.h.
|
120
|
-
* Include it unconditionally to avoid surprising side-effects.
|
121
|
-
*/
|
122
|
-
#include <stddef.h>
|
123
|
-
|
124
|
-
/* Include because it is needed by Vulkan and related functions.
|
125
|
-
*/
|
126
|
-
#include <stdint.h>
|
127
|
-
|
128
|
-
/* Include the chosen client API headers.
|
129
|
-
*/
|
130
|
-
#if defined(__APPLE__)
|
131
|
-
#if defined(GLFW_INCLUDE_GLCOREARB)
|
132
|
-
#include <OpenGL/gl3.h>
|
133
|
-
#if defined(GLFW_INCLUDE_GLEXT)
|
134
|
-
#include <OpenGL/gl3ext.h>
|
135
|
-
#endif
|
136
|
-
#elif !defined(GLFW_INCLUDE_NONE)
|
137
|
-
#if !defined(GLFW_INCLUDE_GLEXT)
|
138
|
-
#define GL_GLEXT_LEGACY
|
139
|
-
#endif
|
140
|
-
#include <OpenGL/gl.h>
|
141
|
-
#endif
|
142
|
-
#if defined(GLFW_INCLUDE_GLU)
|
143
|
-
#include <OpenGL/glu.h>
|
144
|
-
#endif
|
145
|
-
#else
|
146
|
-
#if defined(GLFW_INCLUDE_GLCOREARB)
|
147
|
-
#include <GL/glcorearb.h>
|
148
|
-
#elif defined(GLFW_INCLUDE_ES1)
|
149
|
-
#include <GLES/gl.h>
|
150
|
-
#if defined(GLFW_INCLUDE_GLEXT)
|
151
|
-
#include <GLES/glext.h>
|
152
|
-
#endif
|
153
|
-
#elif defined(GLFW_INCLUDE_ES2)
|
154
|
-
#include <GLES2/gl2.h>
|
155
|
-
#if defined(GLFW_INCLUDE_GLEXT)
|
156
|
-
#include <GLES2/gl2ext.h>
|
157
|
-
#endif
|
158
|
-
#elif defined(GLFW_INCLUDE_ES3)
|
159
|
-
#include <GLES3/gl3.h>
|
160
|
-
#if defined(GLFW_INCLUDE_GLEXT)
|
161
|
-
#include <GLES2/gl2ext.h>
|
162
|
-
#endif
|
163
|
-
#elif defined(GLFW_INCLUDE_ES31)
|
164
|
-
#include <GLES3/gl31.h>
|
165
|
-
#if defined(GLFW_INCLUDE_GLEXT)
|
166
|
-
#include <GLES2/gl2ext.h>
|
167
|
-
#endif
|
168
|
-
#elif defined(GLFW_INCLUDE_VULKAN)
|
169
|
-
#include <vulkan/vulkan.h>
|
170
|
-
#elif !defined(GLFW_INCLUDE_NONE)
|
171
|
-
#include <GL/gl.h>
|
172
|
-
#if defined(GLFW_INCLUDE_GLEXT)
|
173
|
-
#include <GL/glext.h>
|
174
|
-
#endif
|
175
|
-
#endif
|
176
|
-
#if defined(GLFW_INCLUDE_GLU)
|
177
|
-
#include <GL/glu.h>
|
178
|
-
#endif
|
179
|
-
#endif
|
180
|
-
|
181
|
-
#if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
|
182
|
-
/* GLFW_DLL must be defined by applications that are linking against the DLL
|
183
|
-
* version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
|
184
|
-
* configuration header when compiling the DLL version of the library.
|
185
|
-
*/
|
186
|
-
#error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
|
187
|
-
#endif
|
188
|
-
|
189
|
-
/* GLFWAPI is used to declare public API functions for export
|
190
|
-
* from the DLL / shared library / dynamic library.
|
191
|
-
*/
|
192
|
-
#if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
|
193
|
-
/* We are building GLFW as a Win32 DLL */
|
194
|
-
#define GLFWAPI __declspec(dllexport)
|
195
|
-
#elif defined(_WIN32) && defined(GLFW_DLL)
|
196
|
-
/* We are calling GLFW as a Win32 DLL */
|
197
|
-
#define GLFWAPI __declspec(dllimport)
|
198
|
-
#elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
|
199
|
-
/* We are building GLFW as a shared / dynamic library */
|
200
|
-
#define GLFWAPI __attribute__((visibility("default")))
|
201
|
-
#else
|
202
|
-
/* We are building or calling GLFW as a static library */
|
203
|
-
#define GLFWAPI
|
204
|
-
#endif
|
205
|
-
|
206
|
-
|
207
|
-
/*************************************************************************
|
208
|
-
* GLFW API tokens
|
209
|
-
*************************************************************************/
|
210
|
-
|
211
|
-
/*! @name GLFW version macros
|
212
|
-
* @{ */
|
213
|
-
/*! @brief The major version number of the GLFW library.
|
214
|
-
*
|
215
|
-
* This is incremented when the API is changed in non-compatible ways.
|
216
|
-
* @ingroup init
|
217
|
-
*/
|
218
|
-
#define GLFW_VERSION_MAJOR 3
|
219
|
-
/*! @brief The minor version number of the GLFW library.
|
220
|
-
*
|
221
|
-
* This is incremented when features are added to the API but it remains
|
222
|
-
* backward-compatible.
|
223
|
-
* @ingroup init
|
224
|
-
*/
|
225
|
-
#define GLFW_VERSION_MINOR 2
|
226
|
-
/*! @brief The revision number of the GLFW library.
|
227
|
-
*
|
228
|
-
* This is incremented when a bug fix release is made that does not contain any
|
229
|
-
* API changes.
|
230
|
-
* @ingroup init
|
231
|
-
*/
|
232
|
-
#define GLFW_VERSION_REVISION 1
|
233
|
-
/*! @} */
|
234
|
-
|
235
|
-
/*! @name Boolean values
|
236
|
-
* @{ */
|
237
|
-
/*! @brief One.
|
238
|
-
*
|
239
|
-
* One. Seriously. You don't _need_ to use this symbol in your code. It's
|
240
|
-
* just semantic sugar for the number 1. You can use `1` or `true` or `_True`
|
241
|
-
* or `GL_TRUE` or whatever you want.
|
242
|
-
*/
|
243
|
-
#define GLFW_TRUE 1
|
244
|
-
/*! @brief Zero.
|
245
|
-
*
|
246
|
-
* Zero. Seriously. You don't _need_ to use this symbol in your code. It's
|
247
|
-
* just just semantic sugar for the number 0. You can use `0` or `false` or
|
248
|
-
* `_False` or `GL_FALSE` or whatever you want.
|
249
|
-
*/
|
250
|
-
#define GLFW_FALSE 0
|
251
|
-
/*! @} */
|
252
|
-
|
253
|
-
/*! @name Key and button actions
|
254
|
-
* @{ */
|
255
|
-
/*! @brief The key or mouse button was released.
|
256
|
-
*
|
257
|
-
* The key or mouse button was released.
|
258
|
-
*
|
259
|
-
* @ingroup input
|
260
|
-
*/
|
261
|
-
#define GLFW_RELEASE 0
|
262
|
-
/*! @brief The key or mouse button was pressed.
|
263
|
-
*
|
264
|
-
* The key or mouse button was pressed.
|
265
|
-
*
|
266
|
-
* @ingroup input
|
267
|
-
*/
|
268
|
-
#define GLFW_PRESS 1
|
269
|
-
/*! @brief The key was held down until it repeated.
|
270
|
-
*
|
271
|
-
* The key was held down until it repeated.
|
272
|
-
*
|
273
|
-
* @ingroup input
|
274
|
-
*/
|
275
|
-
#define GLFW_REPEAT 2
|
276
|
-
/*! @} */
|
277
|
-
|
278
|
-
/*! @defgroup keys Keyboard keys
|
279
|
-
*
|
280
|
-
* See [key input](@ref input_key) for how these are used.
|
281
|
-
*
|
282
|
-
* These key codes are inspired by the _USB HID Usage Tables v1.12_ (p. 53-60),
|
283
|
-
* but re-arranged to map to 7-bit ASCII for printable keys (function keys are
|
284
|
-
* put in the 256+ range).
|
285
|
-
*
|
286
|
-
* The naming of the key codes follow these rules:
|
287
|
-
* - The US keyboard layout is used
|
288
|
-
* - Names of printable alpha-numeric characters are used (e.g. "A", "R",
|
289
|
-
* "3", etc.)
|
290
|
-
* - For non-alphanumeric characters, Unicode:ish names are used (e.g.
|
291
|
-
* "COMMA", "LEFT_SQUARE_BRACKET", etc.). Note that some names do not
|
292
|
-
* correspond to the Unicode standard (usually for brevity)
|
293
|
-
* - Keys that lack a clear US mapping are named "WORLD_x"
|
294
|
-
* - For non-printable keys, custom names are used (e.g. "F4",
|
295
|
-
* "BACKSPACE", etc.)
|
296
|
-
*
|
297
|
-
* @ingroup input
|
298
|
-
* @{
|
299
|
-
*/
|
300
|
-
|
301
|
-
/* The unknown key */
|
302
|
-
#define GLFW_KEY_UNKNOWN -1
|
303
|
-
|
304
|
-
/* Printable keys */
|
305
|
-
#define GLFW_KEY_SPACE 32
|
306
|
-
#define GLFW_KEY_APOSTROPHE 39 /* ' */
|
307
|
-
#define GLFW_KEY_COMMA 44 /* , */
|
308
|
-
#define GLFW_KEY_MINUS 45 /* - */
|
309
|
-
#define GLFW_KEY_PERIOD 46 /* . */
|
310
|
-
#define GLFW_KEY_SLASH 47 /* / */
|
311
|
-
#define GLFW_KEY_0 48
|
312
|
-
#define GLFW_KEY_1 49
|
313
|
-
#define GLFW_KEY_2 50
|
314
|
-
#define GLFW_KEY_3 51
|
315
|
-
#define GLFW_KEY_4 52
|
316
|
-
#define GLFW_KEY_5 53
|
317
|
-
#define GLFW_KEY_6 54
|
318
|
-
#define GLFW_KEY_7 55
|
319
|
-
#define GLFW_KEY_8 56
|
320
|
-
#define GLFW_KEY_9 57
|
321
|
-
#define GLFW_KEY_SEMICOLON 59 /* ; */
|
322
|
-
#define GLFW_KEY_EQUAL 61 /* = */
|
323
|
-
#define GLFW_KEY_A 65
|
324
|
-
#define GLFW_KEY_B 66
|
325
|
-
#define GLFW_KEY_C 67
|
326
|
-
#define GLFW_KEY_D 68
|
327
|
-
#define GLFW_KEY_E 69
|
328
|
-
#define GLFW_KEY_F 70
|
329
|
-
#define GLFW_KEY_G 71
|
330
|
-
#define GLFW_KEY_H 72
|
331
|
-
#define GLFW_KEY_I 73
|
332
|
-
#define GLFW_KEY_J 74
|
333
|
-
#define GLFW_KEY_K 75
|
334
|
-
#define GLFW_KEY_L 76
|
335
|
-
#define GLFW_KEY_M 77
|
336
|
-
#define GLFW_KEY_N 78
|
337
|
-
#define GLFW_KEY_O 79
|
338
|
-
#define GLFW_KEY_P 80
|
339
|
-
#define GLFW_KEY_Q 81
|
340
|
-
#define GLFW_KEY_R 82
|
341
|
-
#define GLFW_KEY_S 83
|
342
|
-
#define GLFW_KEY_T 84
|
343
|
-
#define GLFW_KEY_U 85
|
344
|
-
#define GLFW_KEY_V 86
|
345
|
-
#define GLFW_KEY_W 87
|
346
|
-
#define GLFW_KEY_X 88
|
347
|
-
#define GLFW_KEY_Y 89
|
348
|
-
#define GLFW_KEY_Z 90
|
349
|
-
#define GLFW_KEY_LEFT_BRACKET 91 /* [ */
|
350
|
-
#define GLFW_KEY_BACKSLASH 92 /* \ */
|
351
|
-
#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
|
352
|
-
#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
|
353
|
-
#define GLFW_KEY_WORLD_1 161 /* non-US #1 */
|
354
|
-
#define GLFW_KEY_WORLD_2 162 /* non-US #2 */
|
355
|
-
|
356
|
-
/* Function keys */
|
357
|
-
#define GLFW_KEY_ESCAPE 256
|
358
|
-
#define GLFW_KEY_ENTER 257
|
359
|
-
#define GLFW_KEY_TAB 258
|
360
|
-
#define GLFW_KEY_BACKSPACE 259
|
361
|
-
#define GLFW_KEY_INSERT 260
|
362
|
-
#define GLFW_KEY_DELETE 261
|
363
|
-
#define GLFW_KEY_RIGHT 262
|
364
|
-
#define GLFW_KEY_LEFT 263
|
365
|
-
#define GLFW_KEY_DOWN 264
|
366
|
-
#define GLFW_KEY_UP 265
|
367
|
-
#define GLFW_KEY_PAGE_UP 266
|
368
|
-
#define GLFW_KEY_PAGE_DOWN 267
|
369
|
-
#define GLFW_KEY_HOME 268
|
370
|
-
#define GLFW_KEY_END 269
|
371
|
-
#define GLFW_KEY_CAPS_LOCK 280
|
372
|
-
#define GLFW_KEY_SCROLL_LOCK 281
|
373
|
-
#define GLFW_KEY_NUM_LOCK 282
|
374
|
-
#define GLFW_KEY_PRINT_SCREEN 283
|
375
|
-
#define GLFW_KEY_PAUSE 284
|
376
|
-
#define GLFW_KEY_F1 290
|
377
|
-
#define GLFW_KEY_F2 291
|
378
|
-
#define GLFW_KEY_F3 292
|
379
|
-
#define GLFW_KEY_F4 293
|
380
|
-
#define GLFW_KEY_F5 294
|
381
|
-
#define GLFW_KEY_F6 295
|
382
|
-
#define GLFW_KEY_F7 296
|
383
|
-
#define GLFW_KEY_F8 297
|
384
|
-
#define GLFW_KEY_F9 298
|
385
|
-
#define GLFW_KEY_F10 299
|
386
|
-
#define GLFW_KEY_F11 300
|
387
|
-
#define GLFW_KEY_F12 301
|
388
|
-
#define GLFW_KEY_F13 302
|
389
|
-
#define GLFW_KEY_F14 303
|
390
|
-
#define GLFW_KEY_F15 304
|
391
|
-
#define GLFW_KEY_F16 305
|
392
|
-
#define GLFW_KEY_F17 306
|
393
|
-
#define GLFW_KEY_F18 307
|
394
|
-
#define GLFW_KEY_F19 308
|
395
|
-
#define GLFW_KEY_F20 309
|
396
|
-
#define GLFW_KEY_F21 310
|
397
|
-
#define GLFW_KEY_F22 311
|
398
|
-
#define GLFW_KEY_F23 312
|
399
|
-
#define GLFW_KEY_F24 313
|
400
|
-
#define GLFW_KEY_F25 314
|
401
|
-
#define GLFW_KEY_KP_0 320
|
402
|
-
#define GLFW_KEY_KP_1 321
|
403
|
-
#define GLFW_KEY_KP_2 322
|
404
|
-
#define GLFW_KEY_KP_3 323
|
405
|
-
#define GLFW_KEY_KP_4 324
|
406
|
-
#define GLFW_KEY_KP_5 325
|
407
|
-
#define GLFW_KEY_KP_6 326
|
408
|
-
#define GLFW_KEY_KP_7 327
|
409
|
-
#define GLFW_KEY_KP_8 328
|
410
|
-
#define GLFW_KEY_KP_9 329
|
411
|
-
#define GLFW_KEY_KP_DECIMAL 330
|
412
|
-
#define GLFW_KEY_KP_DIVIDE 331
|
413
|
-
#define GLFW_KEY_KP_MULTIPLY 332
|
414
|
-
#define GLFW_KEY_KP_SUBTRACT 333
|
415
|
-
#define GLFW_KEY_KP_ADD 334
|
416
|
-
#define GLFW_KEY_KP_ENTER 335
|
417
|
-
#define GLFW_KEY_KP_EQUAL 336
|
418
|
-
#define GLFW_KEY_LEFT_SHIFT 340
|
419
|
-
#define GLFW_KEY_LEFT_CONTROL 341
|
420
|
-
#define GLFW_KEY_LEFT_ALT 342
|
421
|
-
#define GLFW_KEY_LEFT_SUPER 343
|
422
|
-
#define GLFW_KEY_RIGHT_SHIFT 344
|
423
|
-
#define GLFW_KEY_RIGHT_CONTROL 345
|
424
|
-
#define GLFW_KEY_RIGHT_ALT 346
|
425
|
-
#define GLFW_KEY_RIGHT_SUPER 347
|
426
|
-
#define GLFW_KEY_MENU 348
|
427
|
-
|
428
|
-
#define GLFW_KEY_LAST GLFW_KEY_MENU
|
429
|
-
|
430
|
-
/*! @} */
|
431
|
-
|
432
|
-
/*! @defgroup mods Modifier key flags
|
433
|
-
*
|
434
|
-
* See [key input](@ref input_key) for how these are used.
|
435
|
-
*
|
436
|
-
* @ingroup input
|
437
|
-
* @{ */
|
438
|
-
|
439
|
-
/*! @brief If this bit is set one or more Shift keys were held down.
|
440
|
-
*/
|
441
|
-
#define GLFW_MOD_SHIFT 0x0001
|
442
|
-
/*! @brief If this bit is set one or more Control keys were held down.
|
443
|
-
*/
|
444
|
-
#define GLFW_MOD_CONTROL 0x0002
|
445
|
-
/*! @brief If this bit is set one or more Alt keys were held down.
|
446
|
-
*/
|
447
|
-
#define GLFW_MOD_ALT 0x0004
|
448
|
-
/*! @brief If this bit is set one or more Super keys were held down.
|
449
|
-
*/
|
450
|
-
#define GLFW_MOD_SUPER 0x0008
|
451
|
-
|
452
|
-
/*! @} */
|
453
|
-
|
454
|
-
/*! @defgroup buttons Mouse buttons
|
455
|
-
*
|
456
|
-
* See [mouse button input](@ref input_mouse_button) for how these are used.
|
457
|
-
*
|
458
|
-
* @ingroup input
|
459
|
-
* @{ */
|
460
|
-
#define GLFW_MOUSE_BUTTON_1 0
|
461
|
-
#define GLFW_MOUSE_BUTTON_2 1
|
462
|
-
#define GLFW_MOUSE_BUTTON_3 2
|
463
|
-
#define GLFW_MOUSE_BUTTON_4 3
|
464
|
-
#define GLFW_MOUSE_BUTTON_5 4
|
465
|
-
#define GLFW_MOUSE_BUTTON_6 5
|
466
|
-
#define GLFW_MOUSE_BUTTON_7 6
|
467
|
-
#define GLFW_MOUSE_BUTTON_8 7
|
468
|
-
#define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
|
469
|
-
#define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
|
470
|
-
#define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
|
471
|
-
#define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
|
472
|
-
/*! @} */
|
473
|
-
|
474
|
-
/*! @defgroup joysticks Joysticks
|
475
|
-
*
|
476
|
-
* See [joystick input](@ref joystick) for how these are used.
|
477
|
-
*
|
478
|
-
* @ingroup input
|
479
|
-
* @{ */
|
480
|
-
#define GLFW_JOYSTICK_1 0
|
481
|
-
#define GLFW_JOYSTICK_2 1
|
482
|
-
#define GLFW_JOYSTICK_3 2
|
483
|
-
#define GLFW_JOYSTICK_4 3
|
484
|
-
#define GLFW_JOYSTICK_5 4
|
485
|
-
#define GLFW_JOYSTICK_6 5
|
486
|
-
#define GLFW_JOYSTICK_7 6
|
487
|
-
#define GLFW_JOYSTICK_8 7
|
488
|
-
#define GLFW_JOYSTICK_9 8
|
489
|
-
#define GLFW_JOYSTICK_10 9
|
490
|
-
#define GLFW_JOYSTICK_11 10
|
491
|
-
#define GLFW_JOYSTICK_12 11
|
492
|
-
#define GLFW_JOYSTICK_13 12
|
493
|
-
#define GLFW_JOYSTICK_14 13
|
494
|
-
#define GLFW_JOYSTICK_15 14
|
495
|
-
#define GLFW_JOYSTICK_16 15
|
496
|
-
#define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
|
497
|
-
/*! @} */
|
498
|
-
|
499
|
-
/*! @defgroup errors Error codes
|
500
|
-
*
|
501
|
-
* See [error handling](@ref error_handling) for how these are used.
|
502
|
-
*
|
503
|
-
* @ingroup init
|
504
|
-
* @{ */
|
505
|
-
/*! @brief GLFW has not been initialized.
|
506
|
-
*
|
507
|
-
* This occurs if a GLFW function was called that must not be called unless the
|
508
|
-
* library is [initialized](@ref intro_init).
|
509
|
-
*
|
510
|
-
* @analysis Application programmer error. Initialize GLFW before calling any
|
511
|
-
* function that requires initialization.
|
512
|
-
*/
|
513
|
-
#define GLFW_NOT_INITIALIZED 0x00010001
|
514
|
-
/*! @brief No context is current for this thread.
|
515
|
-
*
|
516
|
-
* This occurs if a GLFW function was called that needs and operates on the
|
517
|
-
* current OpenGL or OpenGL ES context but no context is current on the calling
|
518
|
-
* thread. One such function is @ref glfwSwapInterval.
|
519
|
-
*
|
520
|
-
* @analysis Application programmer error. Ensure a context is current before
|
521
|
-
* calling functions that require a current context.
|
522
|
-
*/
|
523
|
-
#define GLFW_NO_CURRENT_CONTEXT 0x00010002
|
524
|
-
/*! @brief One of the arguments to the function was an invalid enum value.
|
525
|
-
*
|
526
|
-
* One of the arguments to the function was an invalid enum value, for example
|
527
|
-
* requesting [GLFW_RED_BITS](@ref window_hints_fb) with @ref
|
528
|
-
* glfwGetWindowAttrib.
|
529
|
-
*
|
530
|
-
* @analysis Application programmer error. Fix the offending call.
|
531
|
-
*/
|
532
|
-
#define GLFW_INVALID_ENUM 0x00010003
|
533
|
-
/*! @brief One of the arguments to the function was an invalid value.
|
534
|
-
*
|
535
|
-
* One of the arguments to the function was an invalid value, for example
|
536
|
-
* requesting a non-existent OpenGL or OpenGL ES version like 2.7.
|
537
|
-
*
|
538
|
-
* Requesting a valid but unavailable OpenGL or OpenGL ES version will instead
|
539
|
-
* result in a @ref GLFW_VERSION_UNAVAILABLE error.
|
540
|
-
*
|
541
|
-
* @analysis Application programmer error. Fix the offending call.
|
542
|
-
*/
|
543
|
-
#define GLFW_INVALID_VALUE 0x00010004
|
544
|
-
/*! @brief A memory allocation failed.
|
545
|
-
*
|
546
|
-
* A memory allocation failed.
|
547
|
-
*
|
548
|
-
* @analysis A bug in GLFW or the underlying operating system. Report the bug
|
549
|
-
* to our [issue tracker](https://github.com/glfw/glfw/issues).
|
550
|
-
*/
|
551
|
-
#define GLFW_OUT_OF_MEMORY 0x00010005
|
552
|
-
/*! @brief GLFW could not find support for the requested API on the system.
|
553
|
-
*
|
554
|
-
* GLFW could not find support for the requested API on the system.
|
555
|
-
*
|
556
|
-
* @analysis The installed graphics driver does not support the requested
|
557
|
-
* API, or does not support it via the chosen context creation backend.
|
558
|
-
* Below are a few examples.
|
559
|
-
*
|
560
|
-
* @par
|
561
|
-
* Some pre-installed Windows graphics drivers do not support OpenGL. AMD only
|
562
|
-
* supports OpenGL ES via EGL, while Nvidia and Intel only support it via
|
563
|
-
* a WGL or GLX extension. OS X does not provide OpenGL ES at all. The Mesa
|
564
|
-
* EGL, OpenGL and OpenGL ES libraries do not interface with the Nvidia binary
|
565
|
-
* driver. Older graphics drivers do not support Vulkan.
|
566
|
-
*/
|
567
|
-
#define GLFW_API_UNAVAILABLE 0x00010006
|
568
|
-
/*! @brief The requested OpenGL or OpenGL ES version is not available.
|
569
|
-
*
|
570
|
-
* The requested OpenGL or OpenGL ES version (including any requested context
|
571
|
-
* or framebuffer hints) is not available on this machine.
|
572
|
-
*
|
573
|
-
* @analysis The machine does not support your requirements. If your
|
574
|
-
* application is sufficiently flexible, downgrade your requirements and try
|
575
|
-
* again. Otherwise, inform the user that their machine does not match your
|
576
|
-
* requirements.
|
577
|
-
*
|
578
|
-
* @par
|
579
|
-
* Future invalid OpenGL and OpenGL ES versions, for example OpenGL 4.8 if 5.0
|
580
|
-
* comes out before the 4.x series gets that far, also fail with this error and
|
581
|
-
* not @ref GLFW_INVALID_VALUE, because GLFW cannot know what future versions
|
582
|
-
* will exist.
|
583
|
-
*/
|
584
|
-
#define GLFW_VERSION_UNAVAILABLE 0x00010007
|
585
|
-
/*! @brief A platform-specific error occurred that does not match any of the
|
586
|
-
* more specific categories.
|
587
|
-
*
|
588
|
-
* A platform-specific error occurred that does not match any of the more
|
589
|
-
* specific categories.
|
590
|
-
*
|
591
|
-
* @analysis A bug or configuration error in GLFW, the underlying operating
|
592
|
-
* system or its drivers, or a lack of required resources. Report the issue to
|
593
|
-
* our [issue tracker](https://github.com/glfw/glfw/issues).
|
594
|
-
*/
|
595
|
-
#define GLFW_PLATFORM_ERROR 0x00010008
|
596
|
-
/*! @brief The requested format is not supported or available.
|
597
|
-
*
|
598
|
-
* If emitted during window creation, the requested pixel format is not
|
599
|
-
* supported.
|
600
|
-
*
|
601
|
-
* If emitted when querying the clipboard, the contents of the clipboard could
|
602
|
-
* not be converted to the requested format.
|
603
|
-
*
|
604
|
-
* @analysis If emitted during window creation, one or more
|
605
|
-
* [hard constraints](@ref window_hints_hard) did not match any of the
|
606
|
-
* available pixel formats. If your application is sufficiently flexible,
|
607
|
-
* downgrade your requirements and try again. Otherwise, inform the user that
|
608
|
-
* their machine does not match your requirements.
|
609
|
-
*
|
610
|
-
* @par
|
611
|
-
* If emitted when querying the clipboard, ignore the error or report it to
|
612
|
-
* the user, as appropriate.
|
613
|
-
*/
|
614
|
-
#define GLFW_FORMAT_UNAVAILABLE 0x00010009
|
615
|
-
/*! @brief The specified window does not have an OpenGL or OpenGL ES context.
|
616
|
-
*
|
617
|
-
* A window that does not have an OpenGL or OpenGL ES context was passed to
|
618
|
-
* a function that requires it to have one.
|
619
|
-
*
|
620
|
-
* @analysis Application programmer error. Fix the offending call.
|
621
|
-
*/
|
622
|
-
#define GLFW_NO_WINDOW_CONTEXT 0x0001000A
|
623
|
-
/*! @} */
|
624
|
-
|
625
|
-
#define GLFW_FOCUSED 0x00020001
|
626
|
-
#define GLFW_ICONIFIED 0x00020002
|
627
|
-
#define GLFW_RESIZABLE 0x00020003
|
628
|
-
#define GLFW_VISIBLE 0x00020004
|
629
|
-
#define GLFW_DECORATED 0x00020005
|
630
|
-
#define GLFW_AUTO_ICONIFY 0x00020006
|
631
|
-
#define GLFW_FLOATING 0x00020007
|
632
|
-
#define GLFW_MAXIMIZED 0x00020008
|
633
|
-
|
634
|
-
#define GLFW_RED_BITS 0x00021001
|
635
|
-
#define GLFW_GREEN_BITS 0x00021002
|
636
|
-
#define GLFW_BLUE_BITS 0x00021003
|
637
|
-
#define GLFW_ALPHA_BITS 0x00021004
|
638
|
-
#define GLFW_DEPTH_BITS 0x00021005
|
639
|
-
#define GLFW_STENCIL_BITS 0x00021006
|
640
|
-
#define GLFW_ACCUM_RED_BITS 0x00021007
|
641
|
-
#define GLFW_ACCUM_GREEN_BITS 0x00021008
|
642
|
-
#define GLFW_ACCUM_BLUE_BITS 0x00021009
|
643
|
-
#define GLFW_ACCUM_ALPHA_BITS 0x0002100A
|
644
|
-
#define GLFW_AUX_BUFFERS 0x0002100B
|
645
|
-
#define GLFW_STEREO 0x0002100C
|
646
|
-
#define GLFW_SAMPLES 0x0002100D
|
647
|
-
#define GLFW_SRGB_CAPABLE 0x0002100E
|
648
|
-
#define GLFW_REFRESH_RATE 0x0002100F
|
649
|
-
#define GLFW_DOUBLEBUFFER 0x00021010
|
650
|
-
|
651
|
-
#define GLFW_CLIENT_API 0x00022001
|
652
|
-
#define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
|
653
|
-
#define GLFW_CONTEXT_VERSION_MINOR 0x00022003
|
654
|
-
#define GLFW_CONTEXT_REVISION 0x00022004
|
655
|
-
#define GLFW_CONTEXT_ROBUSTNESS 0x00022005
|
656
|
-
#define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
|
657
|
-
#define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
|
658
|
-
#define GLFW_OPENGL_PROFILE 0x00022008
|
659
|
-
#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
|
660
|
-
#define GLFW_CONTEXT_NO_ERROR 0x0002200A
|
661
|
-
#define GLFW_CONTEXT_CREATION_API 0x0002200B
|
662
|
-
|
663
|
-
#define GLFW_NO_API 0
|
664
|
-
#define GLFW_OPENGL_API 0x00030001
|
665
|
-
#define GLFW_OPENGL_ES_API 0x00030002
|
666
|
-
|
667
|
-
#define GLFW_NO_ROBUSTNESS 0
|
668
|
-
#define GLFW_NO_RESET_NOTIFICATION 0x00031001
|
669
|
-
#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
|
670
|
-
|
671
|
-
#define GLFW_OPENGL_ANY_PROFILE 0
|
672
|
-
#define GLFW_OPENGL_CORE_PROFILE 0x00032001
|
673
|
-
#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
|
674
|
-
|
675
|
-
#define GLFW_CURSOR 0x00033001
|
676
|
-
#define GLFW_STICKY_KEYS 0x00033002
|
677
|
-
#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
|
678
|
-
|
679
|
-
#define GLFW_CURSOR_NORMAL 0x00034001
|
680
|
-
#define GLFW_CURSOR_HIDDEN 0x00034002
|
681
|
-
#define GLFW_CURSOR_DISABLED 0x00034003
|
682
|
-
|
683
|
-
#define GLFW_ANY_RELEASE_BEHAVIOR 0
|
684
|
-
#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
|
685
|
-
#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
|
686
|
-
|
687
|
-
#define GLFW_NATIVE_CONTEXT_API 0x00036001
|
688
|
-
#define GLFW_EGL_CONTEXT_API 0x00036002
|
689
|
-
|
690
|
-
/*! @defgroup shapes Standard cursor shapes
|
691
|
-
*
|
692
|
-
* See [standard cursor creation](@ref cursor_standard) for how these are used.
|
693
|
-
*
|
694
|
-
* @ingroup input
|
695
|
-
* @{ */
|
696
|
-
|
697
|
-
/*! @brief The regular arrow cursor shape.
|
698
|
-
*
|
699
|
-
* The regular arrow cursor.
|
700
|
-
*/
|
701
|
-
#define GLFW_ARROW_CURSOR 0x00036001
|
702
|
-
/*! @brief The text input I-beam cursor shape.
|
703
|
-
*
|
704
|
-
* The text input I-beam cursor shape.
|
705
|
-
*/
|
706
|
-
#define GLFW_IBEAM_CURSOR 0x00036002
|
707
|
-
/*! @brief The crosshair shape.
|
708
|
-
*
|
709
|
-
* The crosshair shape.
|
710
|
-
*/
|
711
|
-
#define GLFW_CROSSHAIR_CURSOR 0x00036003
|
712
|
-
/*! @brief The hand shape.
|
713
|
-
*
|
714
|
-
* The hand shape.
|
715
|
-
*/
|
716
|
-
#define GLFW_HAND_CURSOR 0x00036004
|
717
|
-
/*! @brief The horizontal resize arrow shape.
|
718
|
-
*
|
719
|
-
* The horizontal resize arrow shape.
|
720
|
-
*/
|
721
|
-
#define GLFW_HRESIZE_CURSOR 0x00036005
|
722
|
-
/*! @brief The vertical resize arrow shape.
|
723
|
-
*
|
724
|
-
* The vertical resize arrow shape.
|
725
|
-
*/
|
726
|
-
#define GLFW_VRESIZE_CURSOR 0x00036006
|
727
|
-
/*! @} */
|
728
|
-
|
729
|
-
#define GLFW_CONNECTED 0x00040001
|
730
|
-
#define GLFW_DISCONNECTED 0x00040002
|
731
|
-
|
732
|
-
#define GLFW_DONT_CARE -1
|
733
|
-
|
734
|
-
|
735
|
-
/*************************************************************************
|
736
|
-
* GLFW API types
|
737
|
-
*************************************************************************/
|
738
|
-
|
739
|
-
/*! @brief Client API function pointer type.
|
740
|
-
*
|
741
|
-
* Generic function pointer used for returning client API function pointers
|
742
|
-
* without forcing a cast from a regular pointer.
|
743
|
-
*
|
744
|
-
* @sa @ref context_glext
|
745
|
-
* @sa glfwGetProcAddress
|
746
|
-
*
|
747
|
-
* @since Added in version 3.0.
|
748
|
-
|
749
|
-
* @ingroup context
|
750
|
-
*/
|
751
|
-
typedef void (*GLFWglproc)(void);
|
752
|
-
|
753
|
-
/*! @brief Vulkan API function pointer type.
|
754
|
-
*
|
755
|
-
* Generic function pointer used for returning Vulkan API function pointers
|
756
|
-
* without forcing a cast from a regular pointer.
|
757
|
-
*
|
758
|
-
* @sa @ref vulkan_proc
|
759
|
-
* @sa glfwGetInstanceProcAddress
|
760
|
-
*
|
761
|
-
* @since Added in version 3.2.
|
762
|
-
*
|
763
|
-
* @ingroup vulkan
|
764
|
-
*/
|
765
|
-
typedef void (*GLFWvkproc)(void);
|
766
|
-
|
767
|
-
/*! @brief Opaque monitor object.
|
768
|
-
*
|
769
|
-
* Opaque monitor object.
|
770
|
-
*
|
771
|
-
* @see @ref monitor_object
|
772
|
-
*
|
773
|
-
* @since Added in version 3.0.
|
774
|
-
*
|
775
|
-
* @ingroup monitor
|
776
|
-
*/
|
777
|
-
typedef struct GLFWmonitor GLFWmonitor;
|
778
|
-
|
779
|
-
/*! @brief Opaque window object.
|
780
|
-
*
|
781
|
-
* Opaque window object.
|
782
|
-
*
|
783
|
-
* @see @ref window_object
|
784
|
-
*
|
785
|
-
* @since Added in version 3.0.
|
786
|
-
*
|
787
|
-
* @ingroup window
|
788
|
-
*/
|
789
|
-
typedef struct GLFWwindow GLFWwindow;
|
790
|
-
|
791
|
-
/*! @brief Opaque cursor object.
|
792
|
-
*
|
793
|
-
* Opaque cursor object.
|
794
|
-
*
|
795
|
-
* @see @ref cursor_object
|
796
|
-
*
|
797
|
-
* @since Added in version 3.1.
|
798
|
-
*
|
799
|
-
* @ingroup cursor
|
800
|
-
*/
|
801
|
-
typedef struct GLFWcursor GLFWcursor;
|
802
|
-
|
803
|
-
/*! @brief The function signature for error callbacks.
|
804
|
-
*
|
805
|
-
* This is the function signature for error callback functions.
|
806
|
-
*
|
807
|
-
* @param[in] error An [error code](@ref errors).
|
808
|
-
* @param[in] description A UTF-8 encoded string describing the error.
|
809
|
-
*
|
810
|
-
* @sa @ref error_handling
|
811
|
-
* @sa glfwSetErrorCallback
|
812
|
-
*
|
813
|
-
* @since Added in version 3.0.
|
814
|
-
*
|
815
|
-
* @ingroup init
|
816
|
-
*/
|
817
|
-
typedef void (* GLFWerrorfun)(int,const char*);
|
818
|
-
|
819
|
-
/*! @brief The function signature for window position callbacks.
|
820
|
-
*
|
821
|
-
* This is the function signature for window position callback functions.
|
822
|
-
*
|
823
|
-
* @param[in] window The window that was moved.
|
824
|
-
* @param[in] xpos The new x-coordinate, in screen coordinates, of the
|
825
|
-
* upper-left corner of the client area of the window.
|
826
|
-
* @param[in] ypos The new y-coordinate, in screen coordinates, of the
|
827
|
-
* upper-left corner of the client area of the window.
|
828
|
-
*
|
829
|
-
* @sa @ref window_pos
|
830
|
-
* @sa glfwSetWindowPosCallback
|
831
|
-
*
|
832
|
-
* @since Added in version 3.0.
|
833
|
-
*
|
834
|
-
* @ingroup window
|
835
|
-
*/
|
836
|
-
typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int);
|
837
|
-
|
838
|
-
/*! @brief The function signature for window resize callbacks.
|
839
|
-
*
|
840
|
-
* This is the function signature for window size callback functions.
|
841
|
-
*
|
842
|
-
* @param[in] window The window that was resized.
|
843
|
-
* @param[in] width The new width, in screen coordinates, of the window.
|
844
|
-
* @param[in] height The new height, in screen coordinates, of the window.
|
845
|
-
*
|
846
|
-
* @sa @ref window_size
|
847
|
-
* @sa glfwSetWindowSizeCallback
|
848
|
-
*
|
849
|
-
* @since Added in version 1.0.
|
850
|
-
* @glfw3 Added window handle parameter.
|
851
|
-
*
|
852
|
-
* @ingroup window
|
853
|
-
*/
|
854
|
-
typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int);
|
855
|
-
|
856
|
-
/*! @brief The function signature for window close callbacks.
|
857
|
-
*
|
858
|
-
* This is the function signature for window close callback functions.
|
859
|
-
*
|
860
|
-
* @param[in] window The window that the user attempted to close.
|
861
|
-
*
|
862
|
-
* @sa @ref window_close
|
863
|
-
* @sa glfwSetWindowCloseCallback
|
864
|
-
*
|
865
|
-
* @since Added in version 2.5.
|
866
|
-
* @glfw3 Added window handle parameter.
|
867
|
-
*
|
868
|
-
* @ingroup window
|
869
|
-
*/
|
870
|
-
typedef void (* GLFWwindowclosefun)(GLFWwindow*);
|
871
|
-
|
872
|
-
/*! @brief The function signature for window content refresh callbacks.
|
873
|
-
*
|
874
|
-
* This is the function signature for window refresh callback functions.
|
875
|
-
*
|
876
|
-
* @param[in] window The window whose content needs to be refreshed.
|
877
|
-
*
|
878
|
-
* @sa @ref window_refresh
|
879
|
-
* @sa glfwSetWindowRefreshCallback
|
880
|
-
*
|
881
|
-
* @since Added in version 2.5.
|
882
|
-
* @glfw3 Added window handle parameter.
|
883
|
-
*
|
884
|
-
* @ingroup window
|
885
|
-
*/
|
886
|
-
typedef void (* GLFWwindowrefreshfun)(GLFWwindow*);
|
887
|
-
|
888
|
-
/*! @brief The function signature for window focus/defocus callbacks.
|
889
|
-
*
|
890
|
-
* This is the function signature for window focus callback functions.
|
891
|
-
*
|
892
|
-
* @param[in] window The window that gained or lost input focus.
|
893
|
-
* @param[in] focused `GLFW_TRUE` if the window was given input focus, or
|
894
|
-
* `GLFW_FALSE` if it lost it.
|
895
|
-
*
|
896
|
-
* @sa @ref window_focus
|
897
|
-
* @sa glfwSetWindowFocusCallback
|
898
|
-
*
|
899
|
-
* @since Added in version 3.0.
|
900
|
-
*
|
901
|
-
* @ingroup window
|
902
|
-
*/
|
903
|
-
typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int);
|
904
|
-
|
905
|
-
/*! @brief The function signature for window iconify/restore callbacks.
|
906
|
-
*
|
907
|
-
* This is the function signature for window iconify/restore callback
|
908
|
-
* functions.
|
909
|
-
*
|
910
|
-
* @param[in] window The window that was iconified or restored.
|
911
|
-
* @param[in] iconified `GLFW_TRUE` if the window was iconified, or
|
912
|
-
* `GLFW_FALSE` if it was restored.
|
913
|
-
*
|
914
|
-
* @sa @ref window_iconify
|
915
|
-
* @sa glfwSetWindowIconifyCallback
|
916
|
-
*
|
917
|
-
* @since Added in version 3.0.
|
918
|
-
*
|
919
|
-
* @ingroup window
|
920
|
-
*/
|
921
|
-
typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int);
|
922
|
-
|
923
|
-
/*! @brief The function signature for framebuffer resize callbacks.
|
924
|
-
*
|
925
|
-
* This is the function signature for framebuffer resize callback
|
926
|
-
* functions.
|
927
|
-
*
|
928
|
-
* @param[in] window The window whose framebuffer was resized.
|
929
|
-
* @param[in] width The new width, in pixels, of the framebuffer.
|
930
|
-
* @param[in] height The new height, in pixels, of the framebuffer.
|
931
|
-
*
|
932
|
-
* @sa @ref window_fbsize
|
933
|
-
* @sa glfwSetFramebufferSizeCallback
|
934
|
-
*
|
935
|
-
* @since Added in version 3.0.
|
936
|
-
*
|
937
|
-
* @ingroup window
|
938
|
-
*/
|
939
|
-
typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int);
|
940
|
-
|
941
|
-
/*! @brief The function signature for mouse button callbacks.
|
942
|
-
*
|
943
|
-
* This is the function signature for mouse button callback functions.
|
944
|
-
*
|
945
|
-
* @param[in] window The window that received the event.
|
946
|
-
* @param[in] button The [mouse button](@ref buttons) that was pressed or
|
947
|
-
* released.
|
948
|
-
* @param[in] action One of `GLFW_PRESS` or `GLFW_RELEASE`.
|
949
|
-
* @param[in] mods Bit field describing which [modifier keys](@ref mods) were
|
950
|
-
* held down.
|
951
|
-
*
|
952
|
-
* @sa @ref input_mouse_button
|
953
|
-
* @sa glfwSetMouseButtonCallback
|
954
|
-
*
|
955
|
-
* @since Added in version 1.0.
|
956
|
-
* @glfw3 Added window handle and modifier mask parameters.
|
957
|
-
*
|
958
|
-
* @ingroup input
|
959
|
-
*/
|
960
|
-
typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int);
|
961
|
-
|
962
|
-
/*! @brief The function signature for cursor position callbacks.
|
963
|
-
*
|
964
|
-
* This is the function signature for cursor position callback functions.
|
965
|
-
*
|
966
|
-
* @param[in] window The window that received the event.
|
967
|
-
* @param[in] xpos The new cursor x-coordinate, relative to the left edge of
|
968
|
-
* the client area.
|
969
|
-
* @param[in] ypos The new cursor y-coordinate, relative to the top edge of the
|
970
|
-
* client area.
|
971
|
-
*
|
972
|
-
* @sa @ref cursor_pos
|
973
|
-
* @sa glfwSetCursorPosCallback
|
974
|
-
*
|
975
|
-
* @since Added in version 3.0. Replaces `GLFWmouseposfun`.
|
976
|
-
*
|
977
|
-
* @ingroup input
|
978
|
-
*/
|
979
|
-
typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double);
|
980
|
-
|
981
|
-
/*! @brief The function signature for cursor enter/leave callbacks.
|
982
|
-
*
|
983
|
-
* This is the function signature for cursor enter/leave callback functions.
|
984
|
-
*
|
985
|
-
* @param[in] window The window that received the event.
|
986
|
-
* @param[in] entered `GLFW_TRUE` if the cursor entered the window's client
|
987
|
-
* area, or `GLFW_FALSE` if it left it.
|
988
|
-
*
|
989
|
-
* @sa @ref cursor_enter
|
990
|
-
* @sa glfwSetCursorEnterCallback
|
991
|
-
*
|
992
|
-
* @since Added in version 3.0.
|
993
|
-
*
|
994
|
-
* @ingroup input
|
995
|
-
*/
|
996
|
-
typedef void (* GLFWcursorenterfun)(GLFWwindow*,int);
|
997
|
-
|
998
|
-
/*! @brief The function signature for scroll callbacks.
|
999
|
-
*
|
1000
|
-
* This is the function signature for scroll callback functions.
|
1001
|
-
*
|
1002
|
-
* @param[in] window The window that received the event.
|
1003
|
-
* @param[in] xoffset The scroll offset along the x-axis.
|
1004
|
-
* @param[in] yoffset The scroll offset along the y-axis.
|
1005
|
-
*
|
1006
|
-
* @sa @ref scrolling
|
1007
|
-
* @sa glfwSetScrollCallback
|
1008
|
-
*
|
1009
|
-
* @since Added in version 3.0. Replaces `GLFWmousewheelfun`.
|
1010
|
-
*
|
1011
|
-
* @ingroup input
|
1012
|
-
*/
|
1013
|
-
typedef void (* GLFWscrollfun)(GLFWwindow*,double,double);
|
1014
|
-
|
1015
|
-
/*! @brief The function signature for keyboard key callbacks.
|
1016
|
-
*
|
1017
|
-
* This is the function signature for keyboard key callback functions.
|
1018
|
-
*
|
1019
|
-
* @param[in] window The window that received the event.
|
1020
|
-
* @param[in] key The [keyboard key](@ref keys) that was pressed or released.
|
1021
|
-
* @param[in] scancode The system-specific scancode of the key.
|
1022
|
-
* @param[in] action `GLFW_PRESS`, `GLFW_RELEASE` or `GLFW_REPEAT`.
|
1023
|
-
* @param[in] mods Bit field describing which [modifier keys](@ref mods) were
|
1024
|
-
* held down.
|
1025
|
-
*
|
1026
|
-
* @sa @ref input_key
|
1027
|
-
* @sa glfwSetKeyCallback
|
1028
|
-
*
|
1029
|
-
* @since Added in version 1.0.
|
1030
|
-
* @glfw3 Added window handle, scancode and modifier mask parameters.
|
1031
|
-
*
|
1032
|
-
* @ingroup input
|
1033
|
-
*/
|
1034
|
-
typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int);
|
1035
|
-
|
1036
|
-
/*! @brief The function signature for Unicode character callbacks.
|
1037
|
-
*
|
1038
|
-
* This is the function signature for Unicode character callback functions.
|
1039
|
-
*
|
1040
|
-
* @param[in] window The window that received the event.
|
1041
|
-
* @param[in] codepoint The Unicode code point of the character.
|
1042
|
-
*
|
1043
|
-
* @sa @ref input_char
|
1044
|
-
* @sa glfwSetCharCallback
|
1045
|
-
*
|
1046
|
-
* @since Added in version 2.4.
|
1047
|
-
* @glfw3 Added window handle parameter.
|
1048
|
-
*
|
1049
|
-
* @ingroup input
|
1050
|
-
*/
|
1051
|
-
typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int);
|
1052
|
-
|
1053
|
-
/*! @brief The function signature for Unicode character with modifiers
|
1054
|
-
* callbacks.
|
1055
|
-
*
|
1056
|
-
* This is the function signature for Unicode character with modifiers callback
|
1057
|
-
* functions. It is called for each input character, regardless of what
|
1058
|
-
* modifier keys are held down.
|
1059
|
-
*
|
1060
|
-
* @param[in] window The window that received the event.
|
1061
|
-
* @param[in] codepoint The Unicode code point of the character.
|
1062
|
-
* @param[in] mods Bit field describing which [modifier keys](@ref mods) were
|
1063
|
-
* held down.
|
1064
|
-
*
|
1065
|
-
* @sa @ref input_char
|
1066
|
-
* @sa glfwSetCharModsCallback
|
1067
|
-
*
|
1068
|
-
* @since Added in version 3.1.
|
1069
|
-
*
|
1070
|
-
* @ingroup input
|
1071
|
-
*/
|
1072
|
-
typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int);
|
1073
|
-
|
1074
|
-
/*! @brief The function signature for file drop callbacks.
|
1075
|
-
*
|
1076
|
-
* This is the function signature for file drop callbacks.
|
1077
|
-
*
|
1078
|
-
* @param[in] window The window that received the event.
|
1079
|
-
* @param[in] count The number of dropped files.
|
1080
|
-
* @param[in] paths The UTF-8 encoded file and/or directory path names.
|
1081
|
-
*
|
1082
|
-
* @sa @ref path_drop
|
1083
|
-
* @sa glfwSetDropCallback
|
1084
|
-
*
|
1085
|
-
* @since Added in version 3.1.
|
1086
|
-
*
|
1087
|
-
* @ingroup input
|
1088
|
-
*/
|
1089
|
-
typedef void (* GLFWdropfun)(GLFWwindow*,int,const char**);
|
1090
|
-
|
1091
|
-
/*! @brief The function signature for monitor configuration callbacks.
|
1092
|
-
*
|
1093
|
-
* This is the function signature for monitor configuration callback functions.
|
1094
|
-
*
|
1095
|
-
* @param[in] monitor The monitor that was connected or disconnected.
|
1096
|
-
* @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`.
|
1097
|
-
*
|
1098
|
-
* @sa @ref monitor_event
|
1099
|
-
* @sa glfwSetMonitorCallback
|
1100
|
-
*
|
1101
|
-
* @since Added in version 3.0.
|
1102
|
-
*
|
1103
|
-
* @ingroup monitor
|
1104
|
-
*/
|
1105
|
-
typedef void (* GLFWmonitorfun)(GLFWmonitor*,int);
|
1106
|
-
|
1107
|
-
/*! @brief The function signature for joystick configuration callbacks.
|
1108
|
-
*
|
1109
|
-
* This is the function signature for joystick configuration callback
|
1110
|
-
* functions.
|
1111
|
-
*
|
1112
|
-
* @param[in] joy The joystick that was connected or disconnected.
|
1113
|
-
* @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`.
|
1114
|
-
*
|
1115
|
-
* @sa @ref joystick_event
|
1116
|
-
* @sa glfwSetJoystickCallback
|
1117
|
-
*
|
1118
|
-
* @since Added in version 3.2.
|
1119
|
-
*
|
1120
|
-
* @ingroup input
|
1121
|
-
*/
|
1122
|
-
typedef void (* GLFWjoystickfun)(int,int);
|
1123
|
-
|
1124
|
-
/*! @brief Video mode type.
|
1125
|
-
*
|
1126
|
-
* This describes a single video mode.
|
1127
|
-
*
|
1128
|
-
* @sa @ref monitor_modes
|
1129
|
-
* @sa glfwGetVideoMode glfwGetVideoModes
|
1130
|
-
*
|
1131
|
-
* @since Added in version 1.0.
|
1132
|
-
* @glfw3 Added refresh rate member.
|
1133
|
-
*
|
1134
|
-
* @ingroup monitor
|
1135
|
-
*/
|
1136
|
-
typedef struct GLFWvidmode
|
1137
|
-
{
|
1138
|
-
/*! The width, in screen coordinates, of the video mode.
|
1139
|
-
*/
|
1140
|
-
int width;
|
1141
|
-
/*! The height, in screen coordinates, of the video mode.
|
1142
|
-
*/
|
1143
|
-
int height;
|
1144
|
-
/*! The bit depth of the red channel of the video mode.
|
1145
|
-
*/
|
1146
|
-
int redBits;
|
1147
|
-
/*! The bit depth of the green channel of the video mode.
|
1148
|
-
*/
|
1149
|
-
int greenBits;
|
1150
|
-
/*! The bit depth of the blue channel of the video mode.
|
1151
|
-
*/
|
1152
|
-
int blueBits;
|
1153
|
-
/*! The refresh rate, in Hz, of the video mode.
|
1154
|
-
*/
|
1155
|
-
int refreshRate;
|
1156
|
-
} GLFWvidmode;
|
1157
|
-
|
1158
|
-
/*! @brief Gamma ramp.
|
1159
|
-
*
|
1160
|
-
* This describes the gamma ramp for a monitor.
|
1161
|
-
*
|
1162
|
-
* @sa @ref monitor_gamma
|
1163
|
-
* @sa glfwGetGammaRamp glfwSetGammaRamp
|
1164
|
-
*
|
1165
|
-
* @since Added in version 3.0.
|
1166
|
-
*
|
1167
|
-
* @ingroup monitor
|
1168
|
-
*/
|
1169
|
-
typedef struct GLFWgammaramp
|
1170
|
-
{
|
1171
|
-
/*! An array of value describing the response of the red channel.
|
1172
|
-
*/
|
1173
|
-
unsigned short* red;
|
1174
|
-
/*! An array of value describing the response of the green channel.
|
1175
|
-
*/
|
1176
|
-
unsigned short* green;
|
1177
|
-
/*! An array of value describing the response of the blue channel.
|
1178
|
-
*/
|
1179
|
-
unsigned short* blue;
|
1180
|
-
/*! The number of elements in each array.
|
1181
|
-
*/
|
1182
|
-
unsigned int size;
|
1183
|
-
} GLFWgammaramp;
|
1184
|
-
|
1185
|
-
/*! @brief Image data.
|
1186
|
-
*
|
1187
|
-
* @sa @ref cursor_custom
|
1188
|
-
* @sa @ref window_icon
|
1189
|
-
*
|
1190
|
-
* @since Added in version 2.1.
|
1191
|
-
* @glfw3 Removed format and bytes-per-pixel members.
|
1192
|
-
*/
|
1193
|
-
typedef struct GLFWimage
|
1194
|
-
{
|
1195
|
-
/*! The width, in pixels, of this image.
|
1196
|
-
*/
|
1197
|
-
int width;
|
1198
|
-
/*! The height, in pixels, of this image.
|
1199
|
-
*/
|
1200
|
-
int height;
|
1201
|
-
/*! The pixel data of this image, arranged left-to-right, top-to-bottom.
|
1202
|
-
*/
|
1203
|
-
unsigned char* pixels;
|
1204
|
-
} GLFWimage;
|
1205
|
-
|
1206
|
-
|
1207
|
-
/*************************************************************************
|
1208
|
-
* GLFW API functions
|
1209
|
-
*************************************************************************/
|
1210
|
-
|
1211
|
-
/*! @brief Initializes the GLFW library.
|
1212
|
-
*
|
1213
|
-
* This function initializes the GLFW library. Before most GLFW functions can
|
1214
|
-
* be used, GLFW must be initialized, and before an application terminates GLFW
|
1215
|
-
* should be terminated in order to free any resources allocated during or
|
1216
|
-
* after initialization.
|
1217
|
-
*
|
1218
|
-
* If this function fails, it calls @ref glfwTerminate before returning. If it
|
1219
|
-
* succeeds, you should call @ref glfwTerminate before the application exits.
|
1220
|
-
*
|
1221
|
-
* Additional calls to this function after successful initialization but before
|
1222
|
-
* termination will return `GLFW_TRUE` immediately.
|
1223
|
-
*
|
1224
|
-
* @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
|
1225
|
-
* [error](@ref error_handling) occurred.
|
1226
|
-
*
|
1227
|
-
* @errors Possible errors include @ref GLFW_PLATFORM_ERROR.
|
1228
|
-
*
|
1229
|
-
* @remark @osx This function will change the current directory of the
|
1230
|
-
* application to the `Contents/Resources` subdirectory of the application's
|
1231
|
-
* bundle, if present. This can be disabled with a
|
1232
|
-
* [compile-time option](@ref compile_options_osx).
|
1233
|
-
*
|
1234
|
-
* @thread_safety This function must only be called from the main thread.
|
1235
|
-
*
|
1236
|
-
* @sa @ref intro_init
|
1237
|
-
* @sa glfwTerminate
|
1238
|
-
*
|
1239
|
-
* @since Added in version 1.0.
|
1240
|
-
*
|
1241
|
-
* @ingroup init
|
1242
|
-
*/
|
1243
|
-
GLFWAPI int glfwInit(void);
|
1244
|
-
|
1245
|
-
/*! @brief Terminates the GLFW library.
|
1246
|
-
*
|
1247
|
-
* This function destroys all remaining windows and cursors, restores any
|
1248
|
-
* modified gamma ramps and frees any other allocated resources. Once this
|
1249
|
-
* function is called, you must again call @ref glfwInit successfully before
|
1250
|
-
* you will be able to use most GLFW functions.
|
1251
|
-
*
|
1252
|
-
* If GLFW has been successfully initialized, this function should be called
|
1253
|
-
* before the application exits. If initialization fails, there is no need to
|
1254
|
-
* call this function, as it is called by @ref glfwInit before it returns
|
1255
|
-
* failure.
|
1256
|
-
*
|
1257
|
-
* @errors Possible errors include @ref GLFW_PLATFORM_ERROR.
|
1258
|
-
*
|
1259
|
-
* @remark This function may be called before @ref glfwInit.
|
1260
|
-
*
|
1261
|
-
* @warning The contexts of any remaining windows must not be current on any
|
1262
|
-
* other thread when this function is called.
|
1263
|
-
*
|
1264
|
-
* @reentrancy This function must not be called from a callback.
|
1265
|
-
*
|
1266
|
-
* @thread_safety This function must only be called from the main thread.
|
1267
|
-
*
|
1268
|
-
* @sa @ref intro_init
|
1269
|
-
* @sa glfwInit
|
1270
|
-
*
|
1271
|
-
* @since Added in version 1.0.
|
1272
|
-
*
|
1273
|
-
* @ingroup init
|
1274
|
-
*/
|
1275
|
-
GLFWAPI void glfwTerminate(void);
|
1276
|
-
|
1277
|
-
/*! @brief Retrieves the version of the GLFW library.
|
1278
|
-
*
|
1279
|
-
* This function retrieves the major, minor and revision numbers of the GLFW
|
1280
|
-
* library. It is intended for when you are using GLFW as a shared library and
|
1281
|
-
* want to ensure that you are using the minimum required version.
|
1282
|
-
*
|
1283
|
-
* Any or all of the version arguments may be `NULL`.
|
1284
|
-
*
|
1285
|
-
* @param[out] major Where to store the major version number, or `NULL`.
|
1286
|
-
* @param[out] minor Where to store the minor version number, or `NULL`.
|
1287
|
-
* @param[out] rev Where to store the revision number, or `NULL`.
|
1288
|
-
*
|
1289
|
-
* @errors None.
|
1290
|
-
*
|
1291
|
-
* @remark This function may be called before @ref glfwInit.
|
1292
|
-
*
|
1293
|
-
* @thread_safety This function may be called from any thread.
|
1294
|
-
*
|
1295
|
-
* @sa @ref intro_version
|
1296
|
-
* @sa glfwGetVersionString
|
1297
|
-
*
|
1298
|
-
* @since Added in version 1.0.
|
1299
|
-
*
|
1300
|
-
* @ingroup init
|
1301
|
-
*/
|
1302
|
-
GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
|
1303
|
-
|
1304
|
-
/*! @brief Returns a string describing the compile-time configuration.
|
1305
|
-
*
|
1306
|
-
* This function returns the compile-time generated
|
1307
|
-
* [version string](@ref intro_version_string) of the GLFW library binary. It
|
1308
|
-
* describes the version, platform, compiler and any platform-specific
|
1309
|
-
* compile-time options. It should not be confused with the OpenGL or OpenGL
|
1310
|
-
* ES version string, queried with `glGetString`.
|
1311
|
-
*
|
1312
|
-
* __Do not use the version string__ to parse the GLFW library version. The
|
1313
|
-
* @ref glfwGetVersion function provides the version of the running library
|
1314
|
-
* binary in numerical format.
|
1315
|
-
*
|
1316
|
-
* @return The ASCII encoded GLFW version string.
|
1317
|
-
*
|
1318
|
-
* @errors None.
|
1319
|
-
*
|
1320
|
-
* @remark This function may be called before @ref glfwInit.
|
1321
|
-
*
|
1322
|
-
* @pointer_lifetime The returned string is static and compile-time generated.
|
1323
|
-
*
|
1324
|
-
* @thread_safety This function may be called from any thread.
|
1325
|
-
*
|
1326
|
-
* @sa @ref intro_version
|
1327
|
-
* @sa glfwGetVersion
|
1328
|
-
*
|
1329
|
-
* @since Added in version 3.0.
|
1330
|
-
*
|
1331
|
-
* @ingroup init
|
1332
|
-
*/
|
1333
|
-
GLFWAPI const char* glfwGetVersionString(void);
|
1334
|
-
|
1335
|
-
/*! @brief Sets the error callback.
|
1336
|
-
*
|
1337
|
-
* This function sets the error callback, which is called with an error code
|
1338
|
-
* and a human-readable description each time a GLFW error occurs.
|
1339
|
-
*
|
1340
|
-
* The error callback is called on the thread where the error occurred. If you
|
1341
|
-
* are using GLFW from multiple threads, your error callback needs to be
|
1342
|
-
* written accordingly.
|
1343
|
-
*
|
1344
|
-
* Because the description string may have been generated specifically for that
|
1345
|
-
* error, it is not guaranteed to be valid after the callback has returned. If
|
1346
|
-
* you wish to use it after the callback returns, you need to make a copy.
|
1347
|
-
*
|
1348
|
-
* Once set, the error callback remains set even after the library has been
|
1349
|
-
* terminated.
|
1350
|
-
*
|
1351
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
1352
|
-
* callback.
|
1353
|
-
* @return The previously set callback, or `NULL` if no callback was set.
|
1354
|
-
*
|
1355
|
-
* @errors None.
|
1356
|
-
*
|
1357
|
-
* @remark This function may be called before @ref glfwInit.
|
1358
|
-
*
|
1359
|
-
* @thread_safety This function must only be called from the main thread.
|
1360
|
-
*
|
1361
|
-
* @sa @ref error_handling
|
1362
|
-
*
|
1363
|
-
* @since Added in version 3.0.
|
1364
|
-
*
|
1365
|
-
* @ingroup init
|
1366
|
-
*/
|
1367
|
-
GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun);
|
1368
|
-
|
1369
|
-
/*! @brief Returns the currently connected monitors.
|
1370
|
-
*
|
1371
|
-
* This function returns an array of handles for all currently connected
|
1372
|
-
* monitors. The primary monitor is always first in the returned array. If no
|
1373
|
-
* monitors were found, this function returns `NULL`.
|
1374
|
-
*
|
1375
|
-
* @param[out] count Where to store the number of monitors in the returned
|
1376
|
-
* array. This is set to zero if an error occurred.
|
1377
|
-
* @return An array of monitor handles, or `NULL` if no monitors were found or
|
1378
|
-
* if an [error](@ref error_handling) occurred.
|
1379
|
-
*
|
1380
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
1381
|
-
*
|
1382
|
-
* @pointer_lifetime The returned array is allocated and freed by GLFW. You
|
1383
|
-
* should not free it yourself. It is guaranteed to be valid only until the
|
1384
|
-
* monitor configuration changes or the library is terminated.
|
1385
|
-
*
|
1386
|
-
* @thread_safety This function must only be called from the main thread.
|
1387
|
-
*
|
1388
|
-
* @sa @ref monitor_monitors
|
1389
|
-
* @sa @ref monitor_event
|
1390
|
-
* @sa glfwGetPrimaryMonitor
|
1391
|
-
*
|
1392
|
-
* @since Added in version 3.0.
|
1393
|
-
*
|
1394
|
-
* @ingroup monitor
|
1395
|
-
*/
|
1396
|
-
GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
|
1397
|
-
|
1398
|
-
/*! @brief Returns the primary monitor.
|
1399
|
-
*
|
1400
|
-
* This function returns the primary monitor. This is usually the monitor
|
1401
|
-
* where elements like the task bar or global menu bar are located.
|
1402
|
-
*
|
1403
|
-
* @return The primary monitor, or `NULL` if no monitors were found or if an
|
1404
|
-
* [error](@ref error_handling) occurred.
|
1405
|
-
*
|
1406
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
1407
|
-
*
|
1408
|
-
* @thread_safety This function must only be called from the main thread.
|
1409
|
-
*
|
1410
|
-
* @remark The primary monitor is always first in the array returned by @ref
|
1411
|
-
* glfwGetMonitors.
|
1412
|
-
*
|
1413
|
-
* @sa @ref monitor_monitors
|
1414
|
-
* @sa glfwGetMonitors
|
1415
|
-
*
|
1416
|
-
* @since Added in version 3.0.
|
1417
|
-
*
|
1418
|
-
* @ingroup monitor
|
1419
|
-
*/
|
1420
|
-
GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
|
1421
|
-
|
1422
|
-
/*! @brief Returns the position of the monitor's viewport on the virtual screen.
|
1423
|
-
*
|
1424
|
-
* This function returns the position, in screen coordinates, of the upper-left
|
1425
|
-
* corner of the specified monitor.
|
1426
|
-
*
|
1427
|
-
* Any or all of the position arguments may be `NULL`. If an error occurs, all
|
1428
|
-
* non-`NULL` position arguments will be set to zero.
|
1429
|
-
*
|
1430
|
-
* @param[in] monitor The monitor to query.
|
1431
|
-
* @param[out] xpos Where to store the monitor x-coordinate, or `NULL`.
|
1432
|
-
* @param[out] ypos Where to store the monitor y-coordinate, or `NULL`.
|
1433
|
-
*
|
1434
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
1435
|
-
* GLFW_PLATFORM_ERROR.
|
1436
|
-
*
|
1437
|
-
* @thread_safety This function must only be called from the main thread.
|
1438
|
-
*
|
1439
|
-
* @sa @ref monitor_properties
|
1440
|
-
*
|
1441
|
-
* @since Added in version 3.0.
|
1442
|
-
*
|
1443
|
-
* @ingroup monitor
|
1444
|
-
*/
|
1445
|
-
GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
|
1446
|
-
|
1447
|
-
/*! @brief Returns the physical size of the monitor.
|
1448
|
-
*
|
1449
|
-
* This function returns the size, in millimetres, of the display area of the
|
1450
|
-
* specified monitor.
|
1451
|
-
*
|
1452
|
-
* Some systems do not provide accurate monitor size information, either
|
1453
|
-
* because the monitor
|
1454
|
-
* [EDID](https://en.wikipedia.org/wiki/Extended_display_identification_data)
|
1455
|
-
* data is incorrect or because the driver does not report it accurately.
|
1456
|
-
*
|
1457
|
-
* Any or all of the size arguments may be `NULL`. If an error occurs, all
|
1458
|
-
* non-`NULL` size arguments will be set to zero.
|
1459
|
-
*
|
1460
|
-
* @param[in] monitor The monitor to query.
|
1461
|
-
* @param[out] widthMM Where to store the width, in millimetres, of the
|
1462
|
-
* monitor's display area, or `NULL`.
|
1463
|
-
* @param[out] heightMM Where to store the height, in millimetres, of the
|
1464
|
-
* monitor's display area, or `NULL`.
|
1465
|
-
*
|
1466
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
1467
|
-
*
|
1468
|
-
* @remark @win32 calculates the returned physical size from the
|
1469
|
-
* current resolution and system DPI instead of querying the monitor EDID data.
|
1470
|
-
*
|
1471
|
-
* @thread_safety This function must only be called from the main thread.
|
1472
|
-
*
|
1473
|
-
* @sa @ref monitor_properties
|
1474
|
-
*
|
1475
|
-
* @since Added in version 3.0.
|
1476
|
-
*
|
1477
|
-
* @ingroup monitor
|
1478
|
-
*/
|
1479
|
-
GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
1480
|
-
|
1481
|
-
/*! @brief Returns the name of the specified monitor.
|
1482
|
-
*
|
1483
|
-
* This function returns a human-readable name, encoded as UTF-8, of the
|
1484
|
-
* specified monitor. The name typically reflects the make and model of the
|
1485
|
-
* monitor and is not guaranteed to be unique among the connected monitors.
|
1486
|
-
*
|
1487
|
-
* @param[in] monitor The monitor to query.
|
1488
|
-
* @return The UTF-8 encoded name of the monitor, or `NULL` if an
|
1489
|
-
* [error](@ref error_handling) occurred.
|
1490
|
-
*
|
1491
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
1492
|
-
*
|
1493
|
-
* @pointer_lifetime The returned string is allocated and freed by GLFW. You
|
1494
|
-
* should not free it yourself. It is valid until the specified monitor is
|
1495
|
-
* disconnected or the library is terminated.
|
1496
|
-
*
|
1497
|
-
* @thread_safety This function must only be called from the main thread.
|
1498
|
-
*
|
1499
|
-
* @sa @ref monitor_properties
|
1500
|
-
*
|
1501
|
-
* @since Added in version 3.0.
|
1502
|
-
*
|
1503
|
-
* @ingroup monitor
|
1504
|
-
*/
|
1505
|
-
GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
|
1506
|
-
|
1507
|
-
/*! @brief Sets the monitor configuration callback.
|
1508
|
-
*
|
1509
|
-
* This function sets the monitor configuration callback, or removes the
|
1510
|
-
* currently set callback. This is called when a monitor is connected to or
|
1511
|
-
* disconnected from the system.
|
1512
|
-
*
|
1513
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
1514
|
-
* callback.
|
1515
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
1516
|
-
* library had not been [initialized](@ref intro_init).
|
1517
|
-
*
|
1518
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
1519
|
-
*
|
1520
|
-
* @thread_safety This function must only be called from the main thread.
|
1521
|
-
*
|
1522
|
-
* @sa @ref monitor_event
|
1523
|
-
*
|
1524
|
-
* @since Added in version 3.0.
|
1525
|
-
*
|
1526
|
-
* @ingroup monitor
|
1527
|
-
*/
|
1528
|
-
GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun);
|
1529
|
-
|
1530
|
-
/*! @brief Returns the available video modes for the specified monitor.
|
1531
|
-
*
|
1532
|
-
* This function returns an array of all video modes supported by the specified
|
1533
|
-
* monitor. The returned array is sorted in ascending order, first by color
|
1534
|
-
* bit depth (the sum of all channel depths) and then by resolution area (the
|
1535
|
-
* product of width and height).
|
1536
|
-
*
|
1537
|
-
* @param[in] monitor The monitor to query.
|
1538
|
-
* @param[out] count Where to store the number of video modes in the returned
|
1539
|
-
* array. This is set to zero if an error occurred.
|
1540
|
-
* @return An array of video modes, or `NULL` if an
|
1541
|
-
* [error](@ref error_handling) occurred.
|
1542
|
-
*
|
1543
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
1544
|
-
* GLFW_PLATFORM_ERROR.
|
1545
|
-
*
|
1546
|
-
* @pointer_lifetime The returned array is allocated and freed by GLFW. You
|
1547
|
-
* should not free it yourself. It is valid until the specified monitor is
|
1548
|
-
* disconnected, this function is called again for that monitor or the library
|
1549
|
-
* is terminated.
|
1550
|
-
*
|
1551
|
-
* @thread_safety This function must only be called from the main thread.
|
1552
|
-
*
|
1553
|
-
* @sa @ref monitor_modes
|
1554
|
-
* @sa glfwGetVideoMode
|
1555
|
-
*
|
1556
|
-
* @since Added in version 1.0.
|
1557
|
-
* @glfw3 Changed to return an array of modes for a specific monitor.
|
1558
|
-
*
|
1559
|
-
* @ingroup monitor
|
1560
|
-
*/
|
1561
|
-
GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
|
1562
|
-
|
1563
|
-
/*! @brief Returns the current mode of the specified monitor.
|
1564
|
-
*
|
1565
|
-
* This function returns the current video mode of the specified monitor. If
|
1566
|
-
* you have created a full screen window for that monitor, the return value
|
1567
|
-
* will depend on whether that window is iconified.
|
1568
|
-
*
|
1569
|
-
* @param[in] monitor The monitor to query.
|
1570
|
-
* @return The current mode of the monitor, or `NULL` if an
|
1571
|
-
* [error](@ref error_handling) occurred.
|
1572
|
-
*
|
1573
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
1574
|
-
* GLFW_PLATFORM_ERROR.
|
1575
|
-
*
|
1576
|
-
* @pointer_lifetime The returned array is allocated and freed by GLFW. You
|
1577
|
-
* should not free it yourself. It is valid until the specified monitor is
|
1578
|
-
* disconnected or the library is terminated.
|
1579
|
-
*
|
1580
|
-
* @thread_safety This function must only be called from the main thread.
|
1581
|
-
*
|
1582
|
-
* @sa @ref monitor_modes
|
1583
|
-
* @sa glfwGetVideoModes
|
1584
|
-
*
|
1585
|
-
* @since Added in version 3.0. Replaces `glfwGetDesktopMode`.
|
1586
|
-
*
|
1587
|
-
* @ingroup monitor
|
1588
|
-
*/
|
1589
|
-
GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
|
1590
|
-
|
1591
|
-
/*! @brief Generates a gamma ramp and sets it for the specified monitor.
|
1592
|
-
*
|
1593
|
-
* This function generates a 256-element gamma ramp from the specified exponent
|
1594
|
-
* and then calls @ref glfwSetGammaRamp with it. The value must be a finite
|
1595
|
-
* number greater than zero.
|
1596
|
-
*
|
1597
|
-
* @param[in] monitor The monitor whose gamma ramp to set.
|
1598
|
-
* @param[in] gamma The desired exponent.
|
1599
|
-
*
|
1600
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
1601
|
-
* GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
|
1602
|
-
*
|
1603
|
-
* @thread_safety This function must only be called from the main thread.
|
1604
|
-
*
|
1605
|
-
* @sa @ref monitor_gamma
|
1606
|
-
*
|
1607
|
-
* @since Added in version 3.0.
|
1608
|
-
*
|
1609
|
-
* @ingroup monitor
|
1610
|
-
*/
|
1611
|
-
GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
|
1612
|
-
|
1613
|
-
/*! @brief Returns the current gamma ramp for the specified monitor.
|
1614
|
-
*
|
1615
|
-
* This function returns the current gamma ramp of the specified monitor.
|
1616
|
-
*
|
1617
|
-
* @param[in] monitor The monitor to query.
|
1618
|
-
* @return The current gamma ramp, or `NULL` if an
|
1619
|
-
* [error](@ref error_handling) occurred.
|
1620
|
-
*
|
1621
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
1622
|
-
* GLFW_PLATFORM_ERROR.
|
1623
|
-
*
|
1624
|
-
* @pointer_lifetime The returned structure and its arrays are allocated and
|
1625
|
-
* freed by GLFW. You should not free them yourself. They are valid until the
|
1626
|
-
* specified monitor is disconnected, this function is called again for that
|
1627
|
-
* monitor or the library is terminated.
|
1628
|
-
*
|
1629
|
-
* @thread_safety This function must only be called from the main thread.
|
1630
|
-
*
|
1631
|
-
* @sa @ref monitor_gamma
|
1632
|
-
*
|
1633
|
-
* @since Added in version 3.0.
|
1634
|
-
*
|
1635
|
-
* @ingroup monitor
|
1636
|
-
*/
|
1637
|
-
GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
|
1638
|
-
|
1639
|
-
/*! @brief Sets the current gamma ramp for the specified monitor.
|
1640
|
-
*
|
1641
|
-
* This function sets the current gamma ramp for the specified monitor. The
|
1642
|
-
* original gamma ramp for that monitor is saved by GLFW the first time this
|
1643
|
-
* function is called and is restored by @ref glfwTerminate.
|
1644
|
-
*
|
1645
|
-
* @param[in] monitor The monitor whose gamma ramp to set.
|
1646
|
-
* @param[in] ramp The gamma ramp to use.
|
1647
|
-
*
|
1648
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
1649
|
-
* GLFW_PLATFORM_ERROR.
|
1650
|
-
*
|
1651
|
-
* @remark Gamma ramp sizes other than 256 are not supported by all platforms
|
1652
|
-
* or graphics hardware.
|
1653
|
-
*
|
1654
|
-
* @remark @win32 The gamma ramp size must be 256.
|
1655
|
-
*
|
1656
|
-
* @pointer_lifetime The specified gamma ramp is copied before this function
|
1657
|
-
* returns.
|
1658
|
-
*
|
1659
|
-
* @thread_safety This function must only be called from the main thread.
|
1660
|
-
*
|
1661
|
-
* @sa @ref monitor_gamma
|
1662
|
-
*
|
1663
|
-
* @since Added in version 3.0.
|
1664
|
-
*
|
1665
|
-
* @ingroup monitor
|
1666
|
-
*/
|
1667
|
-
GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
1668
|
-
|
1669
|
-
/*! @brief Resets all window hints to their default values.
|
1670
|
-
*
|
1671
|
-
* This function resets all window hints to their
|
1672
|
-
* [default values](@ref window_hints_values).
|
1673
|
-
*
|
1674
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
1675
|
-
*
|
1676
|
-
* @thread_safety This function must only be called from the main thread.
|
1677
|
-
*
|
1678
|
-
* @sa @ref window_hints
|
1679
|
-
* @sa glfwWindowHint
|
1680
|
-
*
|
1681
|
-
* @since Added in version 3.0.
|
1682
|
-
*
|
1683
|
-
* @ingroup window
|
1684
|
-
*/
|
1685
|
-
GLFWAPI void glfwDefaultWindowHints(void);
|
1686
|
-
|
1687
|
-
/*! @brief Sets the specified window hint to the desired value.
|
1688
|
-
*
|
1689
|
-
* This function sets hints for the next call to @ref glfwCreateWindow. The
|
1690
|
-
* hints, once set, retain their values until changed by a call to @ref
|
1691
|
-
* glfwWindowHint or @ref glfwDefaultWindowHints, or until the library is
|
1692
|
-
* terminated.
|
1693
|
-
*
|
1694
|
-
* This function does not check whether the specified hint values are valid.
|
1695
|
-
* If you set hints to invalid values this will instead be reported by the next
|
1696
|
-
* call to @ref glfwCreateWindow.
|
1697
|
-
*
|
1698
|
-
* @param[in] hint The [window hint](@ref window_hints) to set.
|
1699
|
-
* @param[in] value The new value of the window hint.
|
1700
|
-
*
|
1701
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
1702
|
-
* GLFW_INVALID_ENUM.
|
1703
|
-
*
|
1704
|
-
* @thread_safety This function must only be called from the main thread.
|
1705
|
-
*
|
1706
|
-
* @sa @ref window_hints
|
1707
|
-
* @sa glfwDefaultWindowHints
|
1708
|
-
*
|
1709
|
-
* @since Added in version 3.0. Replaces `glfwOpenWindowHint`.
|
1710
|
-
*
|
1711
|
-
* @ingroup window
|
1712
|
-
*/
|
1713
|
-
GLFWAPI void glfwWindowHint(int hint, int value);
|
1714
|
-
|
1715
|
-
/*! @brief Creates a window and its associated context.
|
1716
|
-
*
|
1717
|
-
* This function creates a window and its associated OpenGL or OpenGL ES
|
1718
|
-
* context. Most of the options controlling how the window and its context
|
1719
|
-
* should be created are specified with [window hints](@ref window_hints).
|
1720
|
-
*
|
1721
|
-
* Successful creation does not change which context is current. Before you
|
1722
|
-
* can use the newly created context, you need to
|
1723
|
-
* [make it current](@ref context_current). For information about the `share`
|
1724
|
-
* parameter, see @ref context_sharing.
|
1725
|
-
*
|
1726
|
-
* The created window, framebuffer and context may differ from what you
|
1727
|
-
* requested, as not all parameters and hints are
|
1728
|
-
* [hard constraints](@ref window_hints_hard). This includes the size of the
|
1729
|
-
* window, especially for full screen windows. To query the actual attributes
|
1730
|
-
* of the created window, framebuffer and context, see @ref
|
1731
|
-
* glfwGetWindowAttrib, @ref glfwGetWindowSize and @ref glfwGetFramebufferSize.
|
1732
|
-
*
|
1733
|
-
* To create a full screen window, you need to specify the monitor the window
|
1734
|
-
* will cover. If no monitor is specified, the window will be windowed mode.
|
1735
|
-
* Unless you have a way for the user to choose a specific monitor, it is
|
1736
|
-
* recommended that you pick the primary monitor. For more information on how
|
1737
|
-
* to query connected monitors, see @ref monitor_monitors.
|
1738
|
-
*
|
1739
|
-
* For full screen windows, the specified size becomes the resolution of the
|
1740
|
-
* window's _desired video mode_. As long as a full screen window is not
|
1741
|
-
* iconified, the supported video mode most closely matching the desired video
|
1742
|
-
* mode is set for the specified monitor. For more information about full
|
1743
|
-
* screen windows, including the creation of so called _windowed full screen_
|
1744
|
-
* or _borderless full screen_ windows, see @ref window_windowed_full_screen.
|
1745
|
-
*
|
1746
|
-
* Once you have created the window, you can switch it between windowed and
|
1747
|
-
* full screen mode with @ref glfwSetWindowMonitor. If the window has an
|
1748
|
-
* OpenGL or OpenGL ES context, it will be unaffected.
|
1749
|
-
*
|
1750
|
-
* By default, newly created windows use the placement recommended by the
|
1751
|
-
* window system. To create the window at a specific position, make it
|
1752
|
-
* initially invisible using the [GLFW_VISIBLE](@ref window_hints_wnd) window
|
1753
|
-
* hint, set its [position](@ref window_pos) and then [show](@ref window_hide)
|
1754
|
-
* it.
|
1755
|
-
*
|
1756
|
-
* As long as at least one full screen window is not iconified, the screensaver
|
1757
|
-
* is prohibited from starting.
|
1758
|
-
*
|
1759
|
-
* Window systems put limits on window sizes. Very large or very small window
|
1760
|
-
* dimensions may be overridden by the window system on creation. Check the
|
1761
|
-
* actual [size](@ref window_size) after creation.
|
1762
|
-
*
|
1763
|
-
* The [swap interval](@ref buffer_swap) is not set during window creation and
|
1764
|
-
* the initial value may vary depending on driver settings and defaults.
|
1765
|
-
*
|
1766
|
-
* @param[in] width The desired width, in screen coordinates, of the window.
|
1767
|
-
* This must be greater than zero.
|
1768
|
-
* @param[in] height The desired height, in screen coordinates, of the window.
|
1769
|
-
* This must be greater than zero.
|
1770
|
-
* @param[in] title The initial, UTF-8 encoded window title.
|
1771
|
-
* @param[in] monitor The monitor to use for full screen mode, or `NULL` for
|
1772
|
-
* windowed mode.
|
1773
|
-
* @param[in] share The window whose context to share resources with, or `NULL`
|
1774
|
-
* to not share resources.
|
1775
|
-
* @return The handle of the created window, or `NULL` if an
|
1776
|
-
* [error](@ref error_handling) occurred.
|
1777
|
-
*
|
1778
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
1779
|
-
* GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_API_UNAVAILABLE, @ref
|
1780
|
-
* GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE and @ref
|
1781
|
-
* GLFW_PLATFORM_ERROR.
|
1782
|
-
*
|
1783
|
-
* @remark @win32 Window creation will fail if the Microsoft GDI software
|
1784
|
-
* OpenGL implementation is the only one available.
|
1785
|
-
*
|
1786
|
-
* @remark @win32 If the executable has an icon resource named `GLFW_ICON,` it
|
1787
|
-
* will be set as the initial icon for the window. If no such icon is present,
|
1788
|
-
* the `IDI_WINLOGO` icon will be used instead. To set a different icon, see
|
1789
|
-
* @ref glfwSetWindowIcon.
|
1790
|
-
*
|
1791
|
-
* @remark @win32 The context to share resources with must not be current on
|
1792
|
-
* any other thread.
|
1793
|
-
*
|
1794
|
-
* @remark @osx The GLFW window has no icon, as it is not a document
|
1795
|
-
* window, but the dock icon will be the same as the application bundle's icon.
|
1796
|
-
* For more information on bundles, see the
|
1797
|
-
* [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
|
1798
|
-
* in the Mac Developer Library.
|
1799
|
-
*
|
1800
|
-
* @remark @osx The first time a window is created the menu bar is populated
|
1801
|
-
* with common commands like Hide, Quit and About. The About entry opens
|
1802
|
-
* a minimal about dialog with information from the application's bundle. The
|
1803
|
-
* menu bar can be disabled with a
|
1804
|
-
* [compile-time option](@ref compile_options_osx).
|
1805
|
-
*
|
1806
|
-
* @remark @osx On OS X 10.10 and later the window frame will not be rendered
|
1807
|
-
* at full resolution on Retina displays unless the `NSHighResolutionCapable`
|
1808
|
-
* key is enabled in the application bundle's `Info.plist`. For more
|
1809
|
-
* information, see
|
1810
|
-
* [High Resolution Guidelines for OS X](https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html)
|
1811
|
-
* in the Mac Developer Library. The GLFW test and example programs use
|
1812
|
-
* a custom `Info.plist` template for this, which can be found as
|
1813
|
-
* `CMake/MacOSXBundleInfo.plist.in` in the source tree.
|
1814
|
-
*
|
1815
|
-
* @remark @x11 Some window managers will not respect the placement of
|
1816
|
-
* initially hidden windows.
|
1817
|
-
*
|
1818
|
-
* @remark @x11 Due to the asynchronous nature of X11, it may take a moment for
|
1819
|
-
* a window to reach its requested state. This means you may not be able to
|
1820
|
-
* query the final size, position or other attributes directly after window
|
1821
|
-
* creation.
|
1822
|
-
*
|
1823
|
-
* @reentrancy This function must not be called from a callback.
|
1824
|
-
*
|
1825
|
-
* @thread_safety This function must only be called from the main thread.
|
1826
|
-
*
|
1827
|
-
* @sa @ref window_creation
|
1828
|
-
* @sa glfwDestroyWindow
|
1829
|
-
*
|
1830
|
-
* @since Added in version 3.0. Replaces `glfwOpenWindow`.
|
1831
|
-
*
|
1832
|
-
* @ingroup window
|
1833
|
-
*/
|
1834
|
-
GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
1835
|
-
|
1836
|
-
/*! @brief Destroys the specified window and its context.
|
1837
|
-
*
|
1838
|
-
* This function destroys the specified window and its context. On calling
|
1839
|
-
* this function, no further callbacks will be called for that window.
|
1840
|
-
*
|
1841
|
-
* If the context of the specified window is current on the main thread, it is
|
1842
|
-
* detached before being destroyed.
|
1843
|
-
*
|
1844
|
-
* @param[in] window The window to destroy.
|
1845
|
-
*
|
1846
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
1847
|
-
* GLFW_PLATFORM_ERROR.
|
1848
|
-
*
|
1849
|
-
* @note The context of the specified window must not be current on any other
|
1850
|
-
* thread when this function is called.
|
1851
|
-
*
|
1852
|
-
* @reentrancy This function must not be called from a callback.
|
1853
|
-
*
|
1854
|
-
* @thread_safety This function must only be called from the main thread.
|
1855
|
-
*
|
1856
|
-
* @sa @ref window_creation
|
1857
|
-
* @sa glfwCreateWindow
|
1858
|
-
*
|
1859
|
-
* @since Added in version 3.0. Replaces `glfwCloseWindow`.
|
1860
|
-
*
|
1861
|
-
* @ingroup window
|
1862
|
-
*/
|
1863
|
-
GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
|
1864
|
-
|
1865
|
-
/*! @brief Checks the close flag of the specified window.
|
1866
|
-
*
|
1867
|
-
* This function returns the value of the close flag of the specified window.
|
1868
|
-
*
|
1869
|
-
* @param[in] window The window to query.
|
1870
|
-
* @return The value of the close flag.
|
1871
|
-
*
|
1872
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
1873
|
-
*
|
1874
|
-
* @thread_safety This function may be called from any thread. Access is not
|
1875
|
-
* synchronized.
|
1876
|
-
*
|
1877
|
-
* @sa @ref window_close
|
1878
|
-
*
|
1879
|
-
* @since Added in version 3.0.
|
1880
|
-
*
|
1881
|
-
* @ingroup window
|
1882
|
-
*/
|
1883
|
-
GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
|
1884
|
-
|
1885
|
-
/*! @brief Sets the close flag of the specified window.
|
1886
|
-
*
|
1887
|
-
* This function sets the value of the close flag of the specified window.
|
1888
|
-
* This can be used to override the user's attempt to close the window, or
|
1889
|
-
* to signal that it should be closed.
|
1890
|
-
*
|
1891
|
-
* @param[in] window The window whose flag to change.
|
1892
|
-
* @param[in] value The new value.
|
1893
|
-
*
|
1894
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
1895
|
-
*
|
1896
|
-
* @thread_safety This function may be called from any thread. Access is not
|
1897
|
-
* synchronized.
|
1898
|
-
*
|
1899
|
-
* @sa @ref window_close
|
1900
|
-
*
|
1901
|
-
* @since Added in version 3.0.
|
1902
|
-
*
|
1903
|
-
* @ingroup window
|
1904
|
-
*/
|
1905
|
-
GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
|
1906
|
-
|
1907
|
-
/*! @brief Sets the title of the specified window.
|
1908
|
-
*
|
1909
|
-
* This function sets the window title, encoded as UTF-8, of the specified
|
1910
|
-
* window.
|
1911
|
-
*
|
1912
|
-
* @param[in] window The window whose title to change.
|
1913
|
-
* @param[in] title The UTF-8 encoded window title.
|
1914
|
-
*
|
1915
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
1916
|
-
* GLFW_PLATFORM_ERROR.
|
1917
|
-
*
|
1918
|
-
* @remark @osx The window title will not be updated until the next time you
|
1919
|
-
* process events.
|
1920
|
-
*
|
1921
|
-
* @thread_safety This function must only be called from the main thread.
|
1922
|
-
*
|
1923
|
-
* @sa @ref window_title
|
1924
|
-
*
|
1925
|
-
* @since Added in version 1.0.
|
1926
|
-
* @glfw3 Added window handle parameter.
|
1927
|
-
*
|
1928
|
-
* @ingroup window
|
1929
|
-
*/
|
1930
|
-
GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
|
1931
|
-
|
1932
|
-
/*! @brief Sets the icon for the specified window.
|
1933
|
-
*
|
1934
|
-
* This function sets the icon of the specified window. If passed an array of
|
1935
|
-
* candidate images, those of or closest to the sizes desired by the system are
|
1936
|
-
* selected. If no images are specified, the window reverts to its default
|
1937
|
-
* icon.
|
1938
|
-
*
|
1939
|
-
* The desired image sizes varies depending on platform and system settings.
|
1940
|
-
* The selected images will be rescaled as needed. Good sizes include 16x16,
|
1941
|
-
* 32x32 and 48x48.
|
1942
|
-
*
|
1943
|
-
* @param[in] window The window whose icon to set.
|
1944
|
-
* @param[in] count The number of images in the specified array, or zero to
|
1945
|
-
* revert to the default window icon.
|
1946
|
-
* @param[in] images The images to create the icon from. This is ignored if
|
1947
|
-
* count is zero.
|
1948
|
-
*
|
1949
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
1950
|
-
* GLFW_PLATFORM_ERROR.
|
1951
|
-
*
|
1952
|
-
* @pointer_lifetime The specified image data is copied before this function
|
1953
|
-
* returns.
|
1954
|
-
*
|
1955
|
-
* @remark @osx The GLFW window has no icon, as it is not a document
|
1956
|
-
* window, so this function does nothing. The dock icon will be the same as
|
1957
|
-
* the application bundle's icon. For more information on bundles, see the
|
1958
|
-
* [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
|
1959
|
-
* in the Mac Developer Library.
|
1960
|
-
*
|
1961
|
-
* @thread_safety This function must only be called from the main thread.
|
1962
|
-
*
|
1963
|
-
* @sa @ref window_icon
|
1964
|
-
*
|
1965
|
-
* @since Added in version 3.2.
|
1966
|
-
*
|
1967
|
-
* @ingroup window
|
1968
|
-
*/
|
1969
|
-
GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
|
1970
|
-
|
1971
|
-
/*! @brief Retrieves the position of the client area of the specified window.
|
1972
|
-
*
|
1973
|
-
* This function retrieves the position, in screen coordinates, of the
|
1974
|
-
* upper-left corner of the client area of the specified window.
|
1975
|
-
*
|
1976
|
-
* Any or all of the position arguments may be `NULL`. If an error occurs, all
|
1977
|
-
* non-`NULL` position arguments will be set to zero.
|
1978
|
-
*
|
1979
|
-
* @param[in] window The window to query.
|
1980
|
-
* @param[out] xpos Where to store the x-coordinate of the upper-left corner of
|
1981
|
-
* the client area, or `NULL`.
|
1982
|
-
* @param[out] ypos Where to store the y-coordinate of the upper-left corner of
|
1983
|
-
* the client area, or `NULL`.
|
1984
|
-
*
|
1985
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
1986
|
-
* GLFW_PLATFORM_ERROR.
|
1987
|
-
*
|
1988
|
-
* @thread_safety This function must only be called from the main thread.
|
1989
|
-
*
|
1990
|
-
* @sa @ref window_pos
|
1991
|
-
* @sa glfwSetWindowPos
|
1992
|
-
*
|
1993
|
-
* @since Added in version 3.0.
|
1994
|
-
*
|
1995
|
-
* @ingroup window
|
1996
|
-
*/
|
1997
|
-
GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
|
1998
|
-
|
1999
|
-
/*! @brief Sets the position of the client area of the specified window.
|
2000
|
-
*
|
2001
|
-
* This function sets the position, in screen coordinates, of the upper-left
|
2002
|
-
* corner of the client area of the specified windowed mode window. If the
|
2003
|
-
* window is a full screen window, this function does nothing.
|
2004
|
-
*
|
2005
|
-
* __Do not use this function__ to move an already visible window unless you
|
2006
|
-
* have very good reasons for doing so, as it will confuse and annoy the user.
|
2007
|
-
*
|
2008
|
-
* The window manager may put limits on what positions are allowed. GLFW
|
2009
|
-
* cannot and should not override these limits.
|
2010
|
-
*
|
2011
|
-
* @param[in] window The window to query.
|
2012
|
-
* @param[in] xpos The x-coordinate of the upper-left corner of the client area.
|
2013
|
-
* @param[in] ypos The y-coordinate of the upper-left corner of the client area.
|
2014
|
-
*
|
2015
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2016
|
-
* GLFW_PLATFORM_ERROR.
|
2017
|
-
*
|
2018
|
-
* @thread_safety This function must only be called from the main thread.
|
2019
|
-
*
|
2020
|
-
* @sa @ref window_pos
|
2021
|
-
* @sa glfwGetWindowPos
|
2022
|
-
*
|
2023
|
-
* @since Added in version 1.0.
|
2024
|
-
* @glfw3 Added window handle parameter.
|
2025
|
-
*
|
2026
|
-
* @ingroup window
|
2027
|
-
*/
|
2028
|
-
GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
|
2029
|
-
|
2030
|
-
/*! @brief Retrieves the size of the client area of the specified window.
|
2031
|
-
*
|
2032
|
-
* This function retrieves the size, in screen coordinates, of the client area
|
2033
|
-
* of the specified window. If you wish to retrieve the size of the
|
2034
|
-
* framebuffer of the window in pixels, see @ref glfwGetFramebufferSize.
|
2035
|
-
*
|
2036
|
-
* Any or all of the size arguments may be `NULL`. If an error occurs, all
|
2037
|
-
* non-`NULL` size arguments will be set to zero.
|
2038
|
-
*
|
2039
|
-
* @param[in] window The window whose size to retrieve.
|
2040
|
-
* @param[out] width Where to store the width, in screen coordinates, of the
|
2041
|
-
* client area, or `NULL`.
|
2042
|
-
* @param[out] height Where to store the height, in screen coordinates, of the
|
2043
|
-
* client area, or `NULL`.
|
2044
|
-
*
|
2045
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2046
|
-
* GLFW_PLATFORM_ERROR.
|
2047
|
-
*
|
2048
|
-
* @thread_safety This function must only be called from the main thread.
|
2049
|
-
*
|
2050
|
-
* @sa @ref window_size
|
2051
|
-
* @sa glfwSetWindowSize
|
2052
|
-
*
|
2053
|
-
* @since Added in version 1.0.
|
2054
|
-
* @glfw3 Added window handle parameter.
|
2055
|
-
*
|
2056
|
-
* @ingroup window
|
2057
|
-
*/
|
2058
|
-
GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
|
2059
|
-
|
2060
|
-
/*! @brief Sets the size limits of the specified window.
|
2061
|
-
*
|
2062
|
-
* This function sets the size limits of the client area of the specified
|
2063
|
-
* window. If the window is full screen, the size limits only take effect
|
2064
|
-
* once it is made windowed. If the window is not resizable, this function
|
2065
|
-
* does nothing.
|
2066
|
-
*
|
2067
|
-
* The size limits are applied immediately to a windowed mode window and may
|
2068
|
-
* cause it to be resized.
|
2069
|
-
*
|
2070
|
-
* The maximum dimensions must be greater than or equal to the minimum
|
2071
|
-
* dimensions and all must be greater than or equal to zero.
|
2072
|
-
*
|
2073
|
-
* @param[in] window The window to set limits for.
|
2074
|
-
* @param[in] minwidth The minimum width, in screen coordinates, of the client
|
2075
|
-
* area, or `GLFW_DONT_CARE`.
|
2076
|
-
* @param[in] minheight The minimum height, in screen coordinates, of the
|
2077
|
-
* client area, or `GLFW_DONT_CARE`.
|
2078
|
-
* @param[in] maxwidth The maximum width, in screen coordinates, of the client
|
2079
|
-
* area, or `GLFW_DONT_CARE`.
|
2080
|
-
* @param[in] maxheight The maximum height, in screen coordinates, of the
|
2081
|
-
* client area, or `GLFW_DONT_CARE`.
|
2082
|
-
*
|
2083
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
2084
|
-
* GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
|
2085
|
-
*
|
2086
|
-
* @remark If you set size limits and an aspect ratio that conflict, the
|
2087
|
-
* results are undefined.
|
2088
|
-
*
|
2089
|
-
* @thread_safety This function must only be called from the main thread.
|
2090
|
-
*
|
2091
|
-
* @sa @ref window_sizelimits
|
2092
|
-
* @sa glfwSetWindowAspectRatio
|
2093
|
-
*
|
2094
|
-
* @since Added in version 3.2.
|
2095
|
-
*
|
2096
|
-
* @ingroup window
|
2097
|
-
*/
|
2098
|
-
GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
2099
|
-
|
2100
|
-
/*! @brief Sets the aspect ratio of the specified window.
|
2101
|
-
*
|
2102
|
-
* This function sets the required aspect ratio of the client area of the
|
2103
|
-
* specified window. If the window is full screen, the aspect ratio only takes
|
2104
|
-
* effect once it is made windowed. If the window is not resizable, this
|
2105
|
-
* function does nothing.
|
2106
|
-
*
|
2107
|
-
* The aspect ratio is specified as a numerator and a denominator and both
|
2108
|
-
* values must be greater than zero. For example, the common 16:9 aspect ratio
|
2109
|
-
* is specified as 16 and 9, respectively.
|
2110
|
-
*
|
2111
|
-
* If the numerator and denominator is set to `GLFW_DONT_CARE` then the aspect
|
2112
|
-
* ratio limit is disabled.
|
2113
|
-
*
|
2114
|
-
* The aspect ratio is applied immediately to a windowed mode window and may
|
2115
|
-
* cause it to be resized.
|
2116
|
-
*
|
2117
|
-
* @param[in] window The window to set limits for.
|
2118
|
-
* @param[in] numer The numerator of the desired aspect ratio, or
|
2119
|
-
* `GLFW_DONT_CARE`.
|
2120
|
-
* @param[in] denom The denominator of the desired aspect ratio, or
|
2121
|
-
* `GLFW_DONT_CARE`.
|
2122
|
-
*
|
2123
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
2124
|
-
* GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
|
2125
|
-
*
|
2126
|
-
* @remark If you set size limits and an aspect ratio that conflict, the
|
2127
|
-
* results are undefined.
|
2128
|
-
*
|
2129
|
-
* @thread_safety This function must only be called from the main thread.
|
2130
|
-
*
|
2131
|
-
* @sa @ref window_sizelimits
|
2132
|
-
* @sa glfwSetWindowSizeLimits
|
2133
|
-
*
|
2134
|
-
* @since Added in version 3.2.
|
2135
|
-
*
|
2136
|
-
* @ingroup window
|
2137
|
-
*/
|
2138
|
-
GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
|
2139
|
-
|
2140
|
-
/*! @brief Sets the size of the client area of the specified window.
|
2141
|
-
*
|
2142
|
-
* This function sets the size, in screen coordinates, of the client area of
|
2143
|
-
* the specified window.
|
2144
|
-
*
|
2145
|
-
* For full screen windows, this function updates the resolution of its desired
|
2146
|
-
* video mode and switches to the video mode closest to it, without affecting
|
2147
|
-
* the window's context. As the context is unaffected, the bit depths of the
|
2148
|
-
* framebuffer remain unchanged.
|
2149
|
-
*
|
2150
|
-
* If you wish to update the refresh rate of the desired video mode in addition
|
2151
|
-
* to its resolution, see @ref glfwSetWindowMonitor.
|
2152
|
-
*
|
2153
|
-
* The window manager may put limits on what sizes are allowed. GLFW cannot
|
2154
|
-
* and should not override these limits.
|
2155
|
-
*
|
2156
|
-
* @param[in] window The window to resize.
|
2157
|
-
* @param[in] width The desired width, in screen coordinates, of the window
|
2158
|
-
* client area.
|
2159
|
-
* @param[in] height The desired height, in screen coordinates, of the window
|
2160
|
-
* client area.
|
2161
|
-
*
|
2162
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2163
|
-
* GLFW_PLATFORM_ERROR.
|
2164
|
-
*
|
2165
|
-
* @thread_safety This function must only be called from the main thread.
|
2166
|
-
*
|
2167
|
-
* @sa @ref window_size
|
2168
|
-
* @sa glfwGetWindowSize
|
2169
|
-
* @sa glfwSetWindowMonitor
|
2170
|
-
*
|
2171
|
-
* @since Added in version 1.0.
|
2172
|
-
* @glfw3 Added window handle parameter.
|
2173
|
-
*
|
2174
|
-
* @ingroup window
|
2175
|
-
*/
|
2176
|
-
GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
|
2177
|
-
|
2178
|
-
/*! @brief Retrieves the size of the framebuffer of the specified window.
|
2179
|
-
*
|
2180
|
-
* This function retrieves the size, in pixels, of the framebuffer of the
|
2181
|
-
* specified window. If you wish to retrieve the size of the window in screen
|
2182
|
-
* coordinates, see @ref glfwGetWindowSize.
|
2183
|
-
*
|
2184
|
-
* Any or all of the size arguments may be `NULL`. If an error occurs, all
|
2185
|
-
* non-`NULL` size arguments will be set to zero.
|
2186
|
-
*
|
2187
|
-
* @param[in] window The window whose framebuffer to query.
|
2188
|
-
* @param[out] width Where to store the width, in pixels, of the framebuffer,
|
2189
|
-
* or `NULL`.
|
2190
|
-
* @param[out] height Where to store the height, in pixels, of the framebuffer,
|
2191
|
-
* or `NULL`.
|
2192
|
-
*
|
2193
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2194
|
-
* GLFW_PLATFORM_ERROR.
|
2195
|
-
*
|
2196
|
-
* @thread_safety This function must only be called from the main thread.
|
2197
|
-
*
|
2198
|
-
* @sa @ref window_fbsize
|
2199
|
-
* @sa glfwSetFramebufferSizeCallback
|
2200
|
-
*
|
2201
|
-
* @since Added in version 3.0.
|
2202
|
-
*
|
2203
|
-
* @ingroup window
|
2204
|
-
*/
|
2205
|
-
GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
|
2206
|
-
|
2207
|
-
/*! @brief Retrieves the size of the frame of the window.
|
2208
|
-
*
|
2209
|
-
* This function retrieves the size, in screen coordinates, of each edge of the
|
2210
|
-
* frame of the specified window. This size includes the title bar, if the
|
2211
|
-
* window has one. The size of the frame may vary depending on the
|
2212
|
-
* [window-related hints](@ref window_hints_wnd) used to create it.
|
2213
|
-
*
|
2214
|
-
* Because this function retrieves the size of each window frame edge and not
|
2215
|
-
* the offset along a particular coordinate axis, the retrieved values will
|
2216
|
-
* always be zero or positive.
|
2217
|
-
*
|
2218
|
-
* Any or all of the size arguments may be `NULL`. If an error occurs, all
|
2219
|
-
* non-`NULL` size arguments will be set to zero.
|
2220
|
-
*
|
2221
|
-
* @param[in] window The window whose frame size to query.
|
2222
|
-
* @param[out] left Where to store the size, in screen coordinates, of the left
|
2223
|
-
* edge of the window frame, or `NULL`.
|
2224
|
-
* @param[out] top Where to store the size, in screen coordinates, of the top
|
2225
|
-
* edge of the window frame, or `NULL`.
|
2226
|
-
* @param[out] right Where to store the size, in screen coordinates, of the
|
2227
|
-
* right edge of the window frame, or `NULL`.
|
2228
|
-
* @param[out] bottom Where to store the size, in screen coordinates, of the
|
2229
|
-
* bottom edge of the window frame, or `NULL`.
|
2230
|
-
*
|
2231
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2232
|
-
* GLFW_PLATFORM_ERROR.
|
2233
|
-
*
|
2234
|
-
* @thread_safety This function must only be called from the main thread.
|
2235
|
-
*
|
2236
|
-
* @sa @ref window_size
|
2237
|
-
*
|
2238
|
-
* @since Added in version 3.1.
|
2239
|
-
*
|
2240
|
-
* @ingroup window
|
2241
|
-
*/
|
2242
|
-
GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
2243
|
-
|
2244
|
-
/*! @brief Iconifies the specified window.
|
2245
|
-
*
|
2246
|
-
* This function iconifies (minimizes) the specified window if it was
|
2247
|
-
* previously restored. If the window is already iconified, this function does
|
2248
|
-
* nothing.
|
2249
|
-
*
|
2250
|
-
* If the specified window is a full screen window, the original monitor
|
2251
|
-
* resolution is restored until the window is restored.
|
2252
|
-
*
|
2253
|
-
* @param[in] window The window to iconify.
|
2254
|
-
*
|
2255
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2256
|
-
* GLFW_PLATFORM_ERROR.
|
2257
|
-
*
|
2258
|
-
* @thread_safety This function must only be called from the main thread.
|
2259
|
-
*
|
2260
|
-
* @sa @ref window_iconify
|
2261
|
-
* @sa glfwRestoreWindow
|
2262
|
-
* @sa glfwMaximizeWindow
|
2263
|
-
*
|
2264
|
-
* @since Added in version 2.1.
|
2265
|
-
* @glfw3 Added window handle parameter.
|
2266
|
-
*
|
2267
|
-
* @ingroup window
|
2268
|
-
*/
|
2269
|
-
GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
|
2270
|
-
|
2271
|
-
/*! @brief Restores the specified window.
|
2272
|
-
*
|
2273
|
-
* This function restores the specified window if it was previously iconified
|
2274
|
-
* (minimized) or maximized. If the window is already restored, this function
|
2275
|
-
* does nothing.
|
2276
|
-
*
|
2277
|
-
* If the specified window is a full screen window, the resolution chosen for
|
2278
|
-
* the window is restored on the selected monitor.
|
2279
|
-
*
|
2280
|
-
* @param[in] window The window to restore.
|
2281
|
-
*
|
2282
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2283
|
-
* GLFW_PLATFORM_ERROR.
|
2284
|
-
*
|
2285
|
-
* @thread_safety This function must only be called from the main thread.
|
2286
|
-
*
|
2287
|
-
* @sa @ref window_iconify
|
2288
|
-
* @sa glfwIconifyWindow
|
2289
|
-
* @sa glfwMaximizeWindow
|
2290
|
-
*
|
2291
|
-
* @since Added in version 2.1.
|
2292
|
-
* @glfw3 Added window handle parameter.
|
2293
|
-
*
|
2294
|
-
* @ingroup window
|
2295
|
-
*/
|
2296
|
-
GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
|
2297
|
-
|
2298
|
-
/*! @brief Maximizes the specified window.
|
2299
|
-
*
|
2300
|
-
* This function maximizes the specified window if it was previously not
|
2301
|
-
* maximized. If the window is already maximized, this function does nothing.
|
2302
|
-
*
|
2303
|
-
* If the specified window is a full screen window, this function does nothing.
|
2304
|
-
*
|
2305
|
-
* @param[in] window The window to maximize.
|
2306
|
-
*
|
2307
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2308
|
-
* GLFW_PLATFORM_ERROR.
|
2309
|
-
*
|
2310
|
-
* @par Thread Safety
|
2311
|
-
* This function may only be called from the main thread.
|
2312
|
-
*
|
2313
|
-
* @sa @ref window_iconify
|
2314
|
-
* @sa glfwIconifyWindow
|
2315
|
-
* @sa glfwRestoreWindow
|
2316
|
-
*
|
2317
|
-
* @since Added in GLFW 3.2.
|
2318
|
-
*
|
2319
|
-
* @ingroup window
|
2320
|
-
*/
|
2321
|
-
GLFWAPI void glfwMaximizeWindow(GLFWwindow* window);
|
2322
|
-
|
2323
|
-
/*! @brief Makes the specified window visible.
|
2324
|
-
*
|
2325
|
-
* This function makes the specified window visible if it was previously
|
2326
|
-
* hidden. If the window is already visible or is in full screen mode, this
|
2327
|
-
* function does nothing.
|
2328
|
-
*
|
2329
|
-
* @param[in] window The window to make visible.
|
2330
|
-
*
|
2331
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2332
|
-
* GLFW_PLATFORM_ERROR.
|
2333
|
-
*
|
2334
|
-
* @thread_safety This function must only be called from the main thread.
|
2335
|
-
*
|
2336
|
-
* @sa @ref window_hide
|
2337
|
-
* @sa glfwHideWindow
|
2338
|
-
*
|
2339
|
-
* @since Added in version 3.0.
|
2340
|
-
*
|
2341
|
-
* @ingroup window
|
2342
|
-
*/
|
2343
|
-
GLFWAPI void glfwShowWindow(GLFWwindow* window);
|
2344
|
-
|
2345
|
-
/*! @brief Hides the specified window.
|
2346
|
-
*
|
2347
|
-
* This function hides the specified window if it was previously visible. If
|
2348
|
-
* the window is already hidden or is in full screen mode, this function does
|
2349
|
-
* nothing.
|
2350
|
-
*
|
2351
|
-
* @param[in] window The window to hide.
|
2352
|
-
*
|
2353
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2354
|
-
* GLFW_PLATFORM_ERROR.
|
2355
|
-
*
|
2356
|
-
* @thread_safety This function must only be called from the main thread.
|
2357
|
-
*
|
2358
|
-
* @sa @ref window_hide
|
2359
|
-
* @sa glfwShowWindow
|
2360
|
-
*
|
2361
|
-
* @since Added in version 3.0.
|
2362
|
-
*
|
2363
|
-
* @ingroup window
|
2364
|
-
*/
|
2365
|
-
GLFWAPI void glfwHideWindow(GLFWwindow* window);
|
2366
|
-
|
2367
|
-
/*! @brief Brings the specified window to front and sets input focus.
|
2368
|
-
*
|
2369
|
-
* This function brings the specified window to front and sets input focus.
|
2370
|
-
* The window should already be visible and not iconified.
|
2371
|
-
*
|
2372
|
-
* By default, both windowed and full screen mode windows are focused when
|
2373
|
-
* initially created. Set the [GLFW_FOCUSED](@ref window_hints_wnd) to disable
|
2374
|
-
* this behavior.
|
2375
|
-
*
|
2376
|
-
* __Do not use this function__ to steal focus from other applications unless
|
2377
|
-
* you are certain that is what the user wants. Focus stealing can be
|
2378
|
-
* extremely disruptive.
|
2379
|
-
*
|
2380
|
-
* @param[in] window The window to give input focus.
|
2381
|
-
*
|
2382
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2383
|
-
* GLFW_PLATFORM_ERROR.
|
2384
|
-
*
|
2385
|
-
* @thread_safety This function must only be called from the main thread.
|
2386
|
-
*
|
2387
|
-
* @sa @ref window_focus
|
2388
|
-
*
|
2389
|
-
* @since Added in version 3.2.
|
2390
|
-
*
|
2391
|
-
* @ingroup window
|
2392
|
-
*/
|
2393
|
-
GLFWAPI void glfwFocusWindow(GLFWwindow* window);
|
2394
|
-
|
2395
|
-
/*! @brief Returns the monitor that the window uses for full screen mode.
|
2396
|
-
*
|
2397
|
-
* This function returns the handle of the monitor that the specified window is
|
2398
|
-
* in full screen on.
|
2399
|
-
*
|
2400
|
-
* @param[in] window The window to query.
|
2401
|
-
* @return The monitor, or `NULL` if the window is in windowed mode or an
|
2402
|
-
* [error](@ref error_handling) occurred.
|
2403
|
-
*
|
2404
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
2405
|
-
*
|
2406
|
-
* @thread_safety This function must only be called from the main thread.
|
2407
|
-
*
|
2408
|
-
* @sa @ref window_monitor
|
2409
|
-
* @sa glfwSetWindowMonitor
|
2410
|
-
*
|
2411
|
-
* @since Added in version 3.0.
|
2412
|
-
*
|
2413
|
-
* @ingroup window
|
2414
|
-
*/
|
2415
|
-
GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
|
2416
|
-
|
2417
|
-
/*! @brief Sets the mode, monitor, video mode and placement of a window.
|
2418
|
-
*
|
2419
|
-
* This function sets the monitor that the window uses for full screen mode or,
|
2420
|
-
* if the monitor is `NULL`, makes it windowed mode.
|
2421
|
-
*
|
2422
|
-
* When setting a monitor, this function updates the width, height and refresh
|
2423
|
-
* rate of the desired video mode and switches to the video mode closest to it.
|
2424
|
-
* The window position is ignored when setting a monitor.
|
2425
|
-
*
|
2426
|
-
* When the monitor is `NULL`, the position, width and height are used to
|
2427
|
-
* place the window client area. The refresh rate is ignored when no monitor
|
2428
|
-
* is specified.
|
2429
|
-
*
|
2430
|
-
* If you only wish to update the resolution of a full screen window or the
|
2431
|
-
* size of a windowed mode window, see @ref glfwSetWindowSize.
|
2432
|
-
*
|
2433
|
-
* When a window transitions from full screen to windowed mode, this function
|
2434
|
-
* restores any previous window settings such as whether it is decorated,
|
2435
|
-
* floating, resizable, has size or aspect ratio limits, etc..
|
2436
|
-
*
|
2437
|
-
* @param[in] window The window whose monitor, size or video mode to set.
|
2438
|
-
* @param[in] monitor The desired monitor, or `NULL` to set windowed mode.
|
2439
|
-
* @param[in] xpos The desired x-coordinate of the upper-left corner of the
|
2440
|
-
* client area.
|
2441
|
-
* @param[in] ypos The desired y-coordinate of the upper-left corner of the
|
2442
|
-
* client area.
|
2443
|
-
* @param[in] width The desired with, in screen coordinates, of the client area
|
2444
|
-
* or video mode.
|
2445
|
-
* @param[in] height The desired height, in screen coordinates, of the client
|
2446
|
-
* area or video mode.
|
2447
|
-
* @param[in] refreshRate The desired refresh rate, in Hz, of the video mode,
|
2448
|
-
* or `GLFW_DONT_CARE`.
|
2449
|
-
*
|
2450
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2451
|
-
* GLFW_PLATFORM_ERROR.
|
2452
|
-
*
|
2453
|
-
* @thread_safety This function must only be called from the main thread.
|
2454
|
-
*
|
2455
|
-
* @sa @ref window_monitor
|
2456
|
-
* @sa @ref window_full_screen
|
2457
|
-
* @sa glfwGetWindowMonitor
|
2458
|
-
* @sa glfwSetWindowSize
|
2459
|
-
*
|
2460
|
-
* @since Added in version 3.2.
|
2461
|
-
*
|
2462
|
-
* @ingroup window
|
2463
|
-
*/
|
2464
|
-
GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
2465
|
-
|
2466
|
-
/*! @brief Returns an attribute of the specified window.
|
2467
|
-
*
|
2468
|
-
* This function returns the value of an attribute of the specified window or
|
2469
|
-
* its OpenGL or OpenGL ES context.
|
2470
|
-
*
|
2471
|
-
* @param[in] window The window to query.
|
2472
|
-
* @param[in] attrib The [window attribute](@ref window_attribs) whose value to
|
2473
|
-
* return.
|
2474
|
-
* @return The value of the attribute, or zero if an
|
2475
|
-
* [error](@ref error_handling) occurred.
|
2476
|
-
*
|
2477
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
2478
|
-
* GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
|
2479
|
-
*
|
2480
|
-
* @remark Framebuffer related hints are not window attributes. See @ref
|
2481
|
-
* window_attribs_fb for more information.
|
2482
|
-
*
|
2483
|
-
* @remark Zero is a valid value for many window and context related
|
2484
|
-
* attributes so you cannot use a return value of zero as an indication of
|
2485
|
-
* errors. However, this function should not fail as long as it is passed
|
2486
|
-
* valid arguments and the library has been [initialized](@ref intro_init).
|
2487
|
-
*
|
2488
|
-
* @thread_safety This function must only be called from the main thread.
|
2489
|
-
*
|
2490
|
-
* @sa @ref window_attribs
|
2491
|
-
*
|
2492
|
-
* @since Added in version 3.0. Replaces `glfwGetWindowParam` and
|
2493
|
-
* `glfwGetGLVersion`.
|
2494
|
-
*
|
2495
|
-
* @ingroup window
|
2496
|
-
*/
|
2497
|
-
GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
|
2498
|
-
|
2499
|
-
/*! @brief Sets the user pointer of the specified window.
|
2500
|
-
*
|
2501
|
-
* This function sets the user-defined pointer of the specified window. The
|
2502
|
-
* current value is retained until the window is destroyed. The initial value
|
2503
|
-
* is `NULL`.
|
2504
|
-
*
|
2505
|
-
* @param[in] window The window whose pointer to set.
|
2506
|
-
* @param[in] pointer The new value.
|
2507
|
-
*
|
2508
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
2509
|
-
*
|
2510
|
-
* @thread_safety This function may be called from any thread. Access is not
|
2511
|
-
* synchronized.
|
2512
|
-
*
|
2513
|
-
* @sa @ref window_userptr
|
2514
|
-
* @sa glfwGetWindowUserPointer
|
2515
|
-
*
|
2516
|
-
* @since Added in version 3.0.
|
2517
|
-
*
|
2518
|
-
* @ingroup window
|
2519
|
-
*/
|
2520
|
-
GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
|
2521
|
-
|
2522
|
-
/*! @brief Returns the user pointer of the specified window.
|
2523
|
-
*
|
2524
|
-
* This function returns the current value of the user-defined pointer of the
|
2525
|
-
* specified window. The initial value is `NULL`.
|
2526
|
-
*
|
2527
|
-
* @param[in] window The window whose pointer to return.
|
2528
|
-
*
|
2529
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
2530
|
-
*
|
2531
|
-
* @thread_safety This function may be called from any thread. Access is not
|
2532
|
-
* synchronized.
|
2533
|
-
*
|
2534
|
-
* @sa @ref window_userptr
|
2535
|
-
* @sa glfwSetWindowUserPointer
|
2536
|
-
*
|
2537
|
-
* @since Added in version 3.0.
|
2538
|
-
*
|
2539
|
-
* @ingroup window
|
2540
|
-
*/
|
2541
|
-
GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
|
2542
|
-
|
2543
|
-
/*! @brief Sets the position callback for the specified window.
|
2544
|
-
*
|
2545
|
-
* This function sets the position callback of the specified window, which is
|
2546
|
-
* called when the window is moved. The callback is provided with the screen
|
2547
|
-
* position of the upper-left corner of the client area of the window.
|
2548
|
-
*
|
2549
|
-
* @param[in] window The window whose callback to set.
|
2550
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
2551
|
-
* callback.
|
2552
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
2553
|
-
* library had not been [initialized](@ref intro_init).
|
2554
|
-
*
|
2555
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
2556
|
-
*
|
2557
|
-
* @thread_safety This function must only be called from the main thread.
|
2558
|
-
*
|
2559
|
-
* @sa @ref window_pos
|
2560
|
-
*
|
2561
|
-
* @since Added in version 3.0.
|
2562
|
-
*
|
2563
|
-
* @ingroup window
|
2564
|
-
*/
|
2565
|
-
GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun cbfun);
|
2566
|
-
|
2567
|
-
/*! @brief Sets the size callback for the specified window.
|
2568
|
-
*
|
2569
|
-
* This function sets the size callback of the specified window, which is
|
2570
|
-
* called when the window is resized. The callback is provided with the size,
|
2571
|
-
* in screen coordinates, of the client area of the window.
|
2572
|
-
*
|
2573
|
-
* @param[in] window The window whose callback to set.
|
2574
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
2575
|
-
* callback.
|
2576
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
2577
|
-
* library had not been [initialized](@ref intro_init).
|
2578
|
-
*
|
2579
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
2580
|
-
*
|
2581
|
-
* @thread_safety This function must only be called from the main thread.
|
2582
|
-
*
|
2583
|
-
* @sa @ref window_size
|
2584
|
-
*
|
2585
|
-
* @since Added in version 1.0.
|
2586
|
-
* @glfw3 Added window handle parameter and return value.
|
2587
|
-
*
|
2588
|
-
* @ingroup window
|
2589
|
-
*/
|
2590
|
-
GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun cbfun);
|
2591
|
-
|
2592
|
-
/*! @brief Sets the close callback for the specified window.
|
2593
|
-
*
|
2594
|
-
* This function sets the close callback of the specified window, which is
|
2595
|
-
* called when the user attempts to close the window, for example by clicking
|
2596
|
-
* the close widget in the title bar.
|
2597
|
-
*
|
2598
|
-
* The close flag is set before this callback is called, but you can modify it
|
2599
|
-
* at any time with @ref glfwSetWindowShouldClose.
|
2600
|
-
*
|
2601
|
-
* The close callback is not triggered by @ref glfwDestroyWindow.
|
2602
|
-
*
|
2603
|
-
* @param[in] window The window whose callback to set.
|
2604
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
2605
|
-
* callback.
|
2606
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
2607
|
-
* library had not been [initialized](@ref intro_init).
|
2608
|
-
*
|
2609
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
2610
|
-
*
|
2611
|
-
* @remark @osx Selecting Quit from the application menu will trigger the close
|
2612
|
-
* callback for all windows.
|
2613
|
-
*
|
2614
|
-
* @thread_safety This function must only be called from the main thread.
|
2615
|
-
*
|
2616
|
-
* @sa @ref window_close
|
2617
|
-
*
|
2618
|
-
* @since Added in version 2.5.
|
2619
|
-
* @glfw3 Added window handle parameter and return value.
|
2620
|
-
*
|
2621
|
-
* @ingroup window
|
2622
|
-
*/
|
2623
|
-
GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun cbfun);
|
2624
|
-
|
2625
|
-
/*! @brief Sets the refresh callback for the specified window.
|
2626
|
-
*
|
2627
|
-
* This function sets the refresh callback of the specified window, which is
|
2628
|
-
* called when the client area of the window needs to be redrawn, for example
|
2629
|
-
* if the window has been exposed after having been covered by another window.
|
2630
|
-
*
|
2631
|
-
* On compositing window systems such as Aero, Compiz or Aqua, where the window
|
2632
|
-
* contents are saved off-screen, this callback may be called only very
|
2633
|
-
* infrequently or never at all.
|
2634
|
-
*
|
2635
|
-
* @param[in] window The window whose callback to set.
|
2636
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
2637
|
-
* callback.
|
2638
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
2639
|
-
* library had not been [initialized](@ref intro_init).
|
2640
|
-
*
|
2641
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
2642
|
-
*
|
2643
|
-
* @thread_safety This function must only be called from the main thread.
|
2644
|
-
*
|
2645
|
-
* @sa @ref window_refresh
|
2646
|
-
*
|
2647
|
-
* @since Added in version 2.5.
|
2648
|
-
* @glfw3 Added window handle parameter and return value.
|
2649
|
-
*
|
2650
|
-
* @ingroup window
|
2651
|
-
*/
|
2652
|
-
GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun cbfun);
|
2653
|
-
|
2654
|
-
/*! @brief Sets the focus callback for the specified window.
|
2655
|
-
*
|
2656
|
-
* This function sets the focus callback of the specified window, which is
|
2657
|
-
* called when the window gains or loses input focus.
|
2658
|
-
*
|
2659
|
-
* After the focus callback is called for a window that lost input focus,
|
2660
|
-
* synthetic key and mouse button release events will be generated for all such
|
2661
|
-
* that had been pressed. For more information, see @ref glfwSetKeyCallback
|
2662
|
-
* and @ref glfwSetMouseButtonCallback.
|
2663
|
-
*
|
2664
|
-
* @param[in] window The window whose callback to set.
|
2665
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
2666
|
-
* callback.
|
2667
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
2668
|
-
* library had not been [initialized](@ref intro_init).
|
2669
|
-
*
|
2670
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
2671
|
-
*
|
2672
|
-
* @thread_safety This function must only be called from the main thread.
|
2673
|
-
*
|
2674
|
-
* @sa @ref window_focus
|
2675
|
-
*
|
2676
|
-
* @since Added in version 3.0.
|
2677
|
-
*
|
2678
|
-
* @ingroup window
|
2679
|
-
*/
|
2680
|
-
GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun cbfun);
|
2681
|
-
|
2682
|
-
/*! @brief Sets the iconify callback for the specified window.
|
2683
|
-
*
|
2684
|
-
* This function sets the iconification callback of the specified window, which
|
2685
|
-
* is called when the window is iconified or restored.
|
2686
|
-
*
|
2687
|
-
* @param[in] window The window whose callback to set.
|
2688
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
2689
|
-
* callback.
|
2690
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
2691
|
-
* library had not been [initialized](@ref intro_init).
|
2692
|
-
*
|
2693
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
2694
|
-
*
|
2695
|
-
* @thread_safety This function must only be called from the main thread.
|
2696
|
-
*
|
2697
|
-
* @sa @ref window_iconify
|
2698
|
-
*
|
2699
|
-
* @since Added in version 3.0.
|
2700
|
-
*
|
2701
|
-
* @ingroup window
|
2702
|
-
*/
|
2703
|
-
GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun cbfun);
|
2704
|
-
|
2705
|
-
/*! @brief Sets the framebuffer resize callback for the specified window.
|
2706
|
-
*
|
2707
|
-
* This function sets the framebuffer resize callback of the specified window,
|
2708
|
-
* which is called when the framebuffer of the specified window is resized.
|
2709
|
-
*
|
2710
|
-
* @param[in] window The window whose callback to set.
|
2711
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
2712
|
-
* callback.
|
2713
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
2714
|
-
* library had not been [initialized](@ref intro_init).
|
2715
|
-
*
|
2716
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
2717
|
-
*
|
2718
|
-
* @thread_safety This function must only be called from the main thread.
|
2719
|
-
*
|
2720
|
-
* @sa @ref window_fbsize
|
2721
|
-
*
|
2722
|
-
* @since Added in version 3.0.
|
2723
|
-
*
|
2724
|
-
* @ingroup window
|
2725
|
-
*/
|
2726
|
-
GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun cbfun);
|
2727
|
-
|
2728
|
-
/*! @brief Processes all pending events.
|
2729
|
-
*
|
2730
|
-
* This function processes only those events that are already in the event
|
2731
|
-
* queue and then returns immediately. Processing events will cause the window
|
2732
|
-
* and input callbacks associated with those events to be called.
|
2733
|
-
*
|
2734
|
-
* On some platforms, a window move, resize or menu operation will cause event
|
2735
|
-
* processing to block. This is due to how event processing is designed on
|
2736
|
-
* those platforms. You can use the
|
2737
|
-
* [window refresh callback](@ref window_refresh) to redraw the contents of
|
2738
|
-
* your window when necessary during such operations.
|
2739
|
-
*
|
2740
|
-
* On some platforms, certain events are sent directly to the application
|
2741
|
-
* without going through the event queue, causing callbacks to be called
|
2742
|
-
* outside of a call to one of the event processing functions.
|
2743
|
-
*
|
2744
|
-
* Event processing is not required for joystick input to work.
|
2745
|
-
*
|
2746
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2747
|
-
* GLFW_PLATFORM_ERROR.
|
2748
|
-
*
|
2749
|
-
* @reentrancy This function must not be called from a callback.
|
2750
|
-
*
|
2751
|
-
* @thread_safety This function must only be called from the main thread.
|
2752
|
-
*
|
2753
|
-
* @sa @ref events
|
2754
|
-
* @sa glfwWaitEvents
|
2755
|
-
* @sa glfwWaitEventsTimeout
|
2756
|
-
*
|
2757
|
-
* @since Added in version 1.0.
|
2758
|
-
*
|
2759
|
-
* @ingroup window
|
2760
|
-
*/
|
2761
|
-
GLFWAPI void glfwPollEvents(void);
|
2762
|
-
|
2763
|
-
/*! @brief Waits until events are queued and processes them.
|
2764
|
-
*
|
2765
|
-
* This function puts the calling thread to sleep until at least one event is
|
2766
|
-
* available in the event queue. Once one or more events are available,
|
2767
|
-
* it behaves exactly like @ref glfwPollEvents, i.e. the events in the queue
|
2768
|
-
* are processed and the function then returns immediately. Processing events
|
2769
|
-
* will cause the window and input callbacks associated with those events to be
|
2770
|
-
* called.
|
2771
|
-
*
|
2772
|
-
* Since not all events are associated with callbacks, this function may return
|
2773
|
-
* without a callback having been called even if you are monitoring all
|
2774
|
-
* callbacks.
|
2775
|
-
*
|
2776
|
-
* On some platforms, a window move, resize or menu operation will cause event
|
2777
|
-
* processing to block. This is due to how event processing is designed on
|
2778
|
-
* those platforms. You can use the
|
2779
|
-
* [window refresh callback](@ref window_refresh) to redraw the contents of
|
2780
|
-
* your window when necessary during such operations.
|
2781
|
-
*
|
2782
|
-
* On some platforms, certain callbacks may be called outside of a call to one
|
2783
|
-
* of the event processing functions.
|
2784
|
-
*
|
2785
|
-
* If no windows exist, this function returns immediately. For synchronization
|
2786
|
-
* of threads in applications that do not create windows, use your threading
|
2787
|
-
* library of choice.
|
2788
|
-
*
|
2789
|
-
* Event processing is not required for joystick input to work.
|
2790
|
-
*
|
2791
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2792
|
-
* GLFW_PLATFORM_ERROR.
|
2793
|
-
*
|
2794
|
-
* @reentrancy This function must not be called from a callback.
|
2795
|
-
*
|
2796
|
-
* @thread_safety This function must only be called from the main thread.
|
2797
|
-
*
|
2798
|
-
* @sa @ref events
|
2799
|
-
* @sa glfwPollEvents
|
2800
|
-
* @sa glfwWaitEventsTimeout
|
2801
|
-
*
|
2802
|
-
* @since Added in version 2.5.
|
2803
|
-
*
|
2804
|
-
* @ingroup window
|
2805
|
-
*/
|
2806
|
-
GLFWAPI void glfwWaitEvents(void);
|
2807
|
-
|
2808
|
-
/*! @brief Waits with timeout until events are queued and processes them.
|
2809
|
-
*
|
2810
|
-
* This function puts the calling thread to sleep until at least one event is
|
2811
|
-
* available in the event queue, or until the specified timeout is reached. If
|
2812
|
-
* one or more events are available, it behaves exactly like @ref
|
2813
|
-
* glfwPollEvents, i.e. the events in the queue are processed and the function
|
2814
|
-
* then returns immediately. Processing events will cause the window and input
|
2815
|
-
* callbacks associated with those events to be called.
|
2816
|
-
*
|
2817
|
-
* The timeout value must be a positive finite number.
|
2818
|
-
*
|
2819
|
-
* Since not all events are associated with callbacks, this function may return
|
2820
|
-
* without a callback having been called even if you are monitoring all
|
2821
|
-
* callbacks.
|
2822
|
-
*
|
2823
|
-
* On some platforms, a window move, resize or menu operation will cause event
|
2824
|
-
* processing to block. This is due to how event processing is designed on
|
2825
|
-
* those platforms. You can use the
|
2826
|
-
* [window refresh callback](@ref window_refresh) to redraw the contents of
|
2827
|
-
* your window when necessary during such operations.
|
2828
|
-
*
|
2829
|
-
* On some platforms, certain callbacks may be called outside of a call to one
|
2830
|
-
* of the event processing functions.
|
2831
|
-
*
|
2832
|
-
* If no windows exist, this function returns immediately. For synchronization
|
2833
|
-
* of threads in applications that do not create windows, use your threading
|
2834
|
-
* library of choice.
|
2835
|
-
*
|
2836
|
-
* Event processing is not required for joystick input to work.
|
2837
|
-
*
|
2838
|
-
* @param[in] timeout The maximum amount of time, in seconds, to wait.
|
2839
|
-
*
|
2840
|
-
* @reentrancy This function must not be called from a callback.
|
2841
|
-
*
|
2842
|
-
* @thread_safety This function must only be called from the main thread.
|
2843
|
-
*
|
2844
|
-
* @sa @ref events
|
2845
|
-
* @sa glfwPollEvents
|
2846
|
-
* @sa glfwWaitEvents
|
2847
|
-
*
|
2848
|
-
* @since Added in version 3.2.
|
2849
|
-
*
|
2850
|
-
* @ingroup window
|
2851
|
-
*/
|
2852
|
-
GLFWAPI void glfwWaitEventsTimeout(double timeout);
|
2853
|
-
|
2854
|
-
/*! @brief Posts an empty event to the event queue.
|
2855
|
-
*
|
2856
|
-
* This function posts an empty event from the current thread to the event
|
2857
|
-
* queue, causing @ref glfwWaitEvents or @ref glfwWaitEventsTimeout to return.
|
2858
|
-
*
|
2859
|
-
* If no windows exist, this function returns immediately. For synchronization
|
2860
|
-
* of threads in applications that do not create windows, use your threading
|
2861
|
-
* library of choice.
|
2862
|
-
*
|
2863
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2864
|
-
* GLFW_PLATFORM_ERROR.
|
2865
|
-
*
|
2866
|
-
* @thread_safety This function may be called from any thread.
|
2867
|
-
*
|
2868
|
-
* @sa @ref events
|
2869
|
-
* @sa glfwWaitEvents
|
2870
|
-
* @sa glfwWaitEventsTimeout
|
2871
|
-
*
|
2872
|
-
* @since Added in version 3.1.
|
2873
|
-
*
|
2874
|
-
* @ingroup window
|
2875
|
-
*/
|
2876
|
-
GLFWAPI void glfwPostEmptyEvent(void);
|
2877
|
-
|
2878
|
-
/*! @brief Returns the value of an input option for the specified window.
|
2879
|
-
*
|
2880
|
-
* This function returns the value of an input option for the specified window.
|
2881
|
-
* The mode must be one of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or
|
2882
|
-
* `GLFW_STICKY_MOUSE_BUTTONS`.
|
2883
|
-
*
|
2884
|
-
* @param[in] window The window to query.
|
2885
|
-
* @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or
|
2886
|
-
* `GLFW_STICKY_MOUSE_BUTTONS`.
|
2887
|
-
*
|
2888
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2889
|
-
* GLFW_INVALID_ENUM.
|
2890
|
-
*
|
2891
|
-
* @thread_safety This function must only be called from the main thread.
|
2892
|
-
*
|
2893
|
-
* @sa glfwSetInputMode
|
2894
|
-
*
|
2895
|
-
* @since Added in version 3.0.
|
2896
|
-
*
|
2897
|
-
* @ingroup input
|
2898
|
-
*/
|
2899
|
-
GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
|
2900
|
-
|
2901
|
-
/*! @brief Sets an input option for the specified window.
|
2902
|
-
*
|
2903
|
-
* This function sets an input mode option for the specified window. The mode
|
2904
|
-
* must be one of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or
|
2905
|
-
* `GLFW_STICKY_MOUSE_BUTTONS`.
|
2906
|
-
*
|
2907
|
-
* If the mode is `GLFW_CURSOR`, the value must be one of the following cursor
|
2908
|
-
* modes:
|
2909
|
-
* - `GLFW_CURSOR_NORMAL` makes the cursor visible and behaving normally.
|
2910
|
-
* - `GLFW_CURSOR_HIDDEN` makes the cursor invisible when it is over the client
|
2911
|
-
* area of the window but does not restrict the cursor from leaving.
|
2912
|
-
* - `GLFW_CURSOR_DISABLED` hides and grabs the cursor, providing virtual
|
2913
|
-
* and unlimited cursor movement. This is useful for implementing for
|
2914
|
-
* example 3D camera controls.
|
2915
|
-
*
|
2916
|
-
* If the mode is `GLFW_STICKY_KEYS`, the value must be either `GLFW_TRUE` to
|
2917
|
-
* enable sticky keys, or `GLFW_FALSE` to disable it. If sticky keys are
|
2918
|
-
* enabled, a key press will ensure that @ref glfwGetKey returns `GLFW_PRESS`
|
2919
|
-
* the next time it is called even if the key had been released before the
|
2920
|
-
* call. This is useful when you are only interested in whether keys have been
|
2921
|
-
* pressed but not when or in which order.
|
2922
|
-
*
|
2923
|
-
* If the mode is `GLFW_STICKY_MOUSE_BUTTONS`, the value must be either
|
2924
|
-
* `GLFW_TRUE` to enable sticky mouse buttons, or `GLFW_FALSE` to disable it.
|
2925
|
-
* If sticky mouse buttons are enabled, a mouse button press will ensure that
|
2926
|
-
* @ref glfwGetMouseButton returns `GLFW_PRESS` the next time it is called even
|
2927
|
-
* if the mouse button had been released before the call. This is useful when
|
2928
|
-
* you are only interested in whether mouse buttons have been pressed but not
|
2929
|
-
* when or in which order.
|
2930
|
-
*
|
2931
|
-
* @param[in] window The window whose input mode to set.
|
2932
|
-
* @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or
|
2933
|
-
* `GLFW_STICKY_MOUSE_BUTTONS`.
|
2934
|
-
* @param[in] value The new value of the specified input mode.
|
2935
|
-
*
|
2936
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
2937
|
-
* GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
|
2938
|
-
*
|
2939
|
-
* @thread_safety This function must only be called from the main thread.
|
2940
|
-
*
|
2941
|
-
* @sa glfwGetInputMode
|
2942
|
-
*
|
2943
|
-
* @since Added in version 3.0. Replaces `glfwEnable` and `glfwDisable`.
|
2944
|
-
*
|
2945
|
-
* @ingroup input
|
2946
|
-
*/
|
2947
|
-
GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
|
2948
|
-
|
2949
|
-
/*! @brief Returns the localized name of the specified printable key.
|
2950
|
-
*
|
2951
|
-
* This function returns the localized name of the specified printable key.
|
2952
|
-
* This is intended for displaying key bindings to the user.
|
2953
|
-
*
|
2954
|
-
* If the key is `GLFW_KEY_UNKNOWN`, the scancode is used instead, otherwise
|
2955
|
-
* the scancode is ignored. If a non-printable key or (if the key is
|
2956
|
-
* `GLFW_KEY_UNKNOWN`) a scancode that maps to a non-printable key is
|
2957
|
-
* specified, this function returns `NULL`.
|
2958
|
-
*
|
2959
|
-
* This behavior allows you to pass in the arguments passed to the
|
2960
|
-
* [key callback](@ref input_key) without modification.
|
2961
|
-
*
|
2962
|
-
* The printable keys are:
|
2963
|
-
* - `GLFW_KEY_APOSTROPHE`
|
2964
|
-
* - `GLFW_KEY_COMMA`
|
2965
|
-
* - `GLFW_KEY_MINUS`
|
2966
|
-
* - `GLFW_KEY_PERIOD`
|
2967
|
-
* - `GLFW_KEY_SLASH`
|
2968
|
-
* - `GLFW_KEY_SEMICOLON`
|
2969
|
-
* - `GLFW_KEY_EQUAL`
|
2970
|
-
* - `GLFW_KEY_LEFT_BRACKET`
|
2971
|
-
* - `GLFW_KEY_RIGHT_BRACKET`
|
2972
|
-
* - `GLFW_KEY_BACKSLASH`
|
2973
|
-
* - `GLFW_KEY_WORLD_1`
|
2974
|
-
* - `GLFW_KEY_WORLD_2`
|
2975
|
-
* - `GLFW_KEY_0` to `GLFW_KEY_9`
|
2976
|
-
* - `GLFW_KEY_A` to `GLFW_KEY_Z`
|
2977
|
-
* - `GLFW_KEY_KP_0` to `GLFW_KEY_KP_9`
|
2978
|
-
* - `GLFW_KEY_KP_DECIMAL`
|
2979
|
-
* - `GLFW_KEY_KP_DIVIDE`
|
2980
|
-
* - `GLFW_KEY_KP_MULTIPLY`
|
2981
|
-
* - `GLFW_KEY_KP_SUBTRACT`
|
2982
|
-
* - `GLFW_KEY_KP_ADD`
|
2983
|
-
* - `GLFW_KEY_KP_EQUAL`
|
2984
|
-
*
|
2985
|
-
* @param[in] key The key to query, or `GLFW_KEY_UNKNOWN`.
|
2986
|
-
* @param[in] scancode The scancode of the key to query.
|
2987
|
-
* @return The localized name of the key, or `NULL`.
|
2988
|
-
*
|
2989
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
2990
|
-
* GLFW_PLATFORM_ERROR.
|
2991
|
-
*
|
2992
|
-
* @pointer_lifetime The returned string is allocated and freed by GLFW. You
|
2993
|
-
* should not free it yourself. It is valid until the next call to @ref
|
2994
|
-
* glfwGetKeyName, or until the library is terminated.
|
2995
|
-
*
|
2996
|
-
* @thread_safety This function must only be called from the main thread.
|
2997
|
-
*
|
2998
|
-
* @sa @ref input_key_name
|
2999
|
-
*
|
3000
|
-
* @since Added in version 3.2.
|
3001
|
-
*
|
3002
|
-
* @ingroup input
|
3003
|
-
*/
|
3004
|
-
GLFWAPI const char* glfwGetKeyName(int key, int scancode);
|
3005
|
-
|
3006
|
-
/*! @brief Returns the last reported state of a keyboard key for the specified
|
3007
|
-
* window.
|
3008
|
-
*
|
3009
|
-
* This function returns the last state reported for the specified key to the
|
3010
|
-
* specified window. The returned state is one of `GLFW_PRESS` or
|
3011
|
-
* `GLFW_RELEASE`. The higher-level action `GLFW_REPEAT` is only reported to
|
3012
|
-
* the key callback.
|
3013
|
-
*
|
3014
|
-
* If the `GLFW_STICKY_KEYS` input mode is enabled, this function returns
|
3015
|
-
* `GLFW_PRESS` the first time you call it for a key that was pressed, even if
|
3016
|
-
* that key has already been released.
|
3017
|
-
*
|
3018
|
-
* The key functions deal with physical keys, with [key tokens](@ref keys)
|
3019
|
-
* named after their use on the standard US keyboard layout. If you want to
|
3020
|
-
* input text, use the Unicode character callback instead.
|
3021
|
-
*
|
3022
|
-
* The [modifier key bit masks](@ref mods) are not key tokens and cannot be
|
3023
|
-
* used with this function.
|
3024
|
-
*
|
3025
|
-
* __Do not use this function__ to implement [text input](@ref input_char).
|
3026
|
-
*
|
3027
|
-
* @param[in] window The desired window.
|
3028
|
-
* @param[in] key The desired [keyboard key](@ref keys). `GLFW_KEY_UNKNOWN` is
|
3029
|
-
* not a valid key for this function.
|
3030
|
-
* @return One of `GLFW_PRESS` or `GLFW_RELEASE`.
|
3031
|
-
*
|
3032
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
3033
|
-
* GLFW_INVALID_ENUM.
|
3034
|
-
*
|
3035
|
-
* @thread_safety This function must only be called from the main thread.
|
3036
|
-
*
|
3037
|
-
* @sa @ref input_key
|
3038
|
-
*
|
3039
|
-
* @since Added in version 1.0.
|
3040
|
-
* @glfw3 Added window handle parameter.
|
3041
|
-
*
|
3042
|
-
* @ingroup input
|
3043
|
-
*/
|
3044
|
-
GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
|
3045
|
-
|
3046
|
-
/*! @brief Returns the last reported state of a mouse button for the specified
|
3047
|
-
* window.
|
3048
|
-
*
|
3049
|
-
* This function returns the last state reported for the specified mouse button
|
3050
|
-
* to the specified window. The returned state is one of `GLFW_PRESS` or
|
3051
|
-
* `GLFW_RELEASE`.
|
3052
|
-
*
|
3053
|
-
* If the `GLFW_STICKY_MOUSE_BUTTONS` input mode is enabled, this function
|
3054
|
-
* `GLFW_PRESS` the first time you call it for a mouse button that was pressed,
|
3055
|
-
* even if that mouse button has already been released.
|
3056
|
-
*
|
3057
|
-
* @param[in] window The desired window.
|
3058
|
-
* @param[in] button The desired [mouse button](@ref buttons).
|
3059
|
-
* @return One of `GLFW_PRESS` or `GLFW_RELEASE`.
|
3060
|
-
*
|
3061
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
3062
|
-
* GLFW_INVALID_ENUM.
|
3063
|
-
*
|
3064
|
-
* @thread_safety This function must only be called from the main thread.
|
3065
|
-
*
|
3066
|
-
* @sa @ref input_mouse_button
|
3067
|
-
*
|
3068
|
-
* @since Added in version 1.0.
|
3069
|
-
* @glfw3 Added window handle parameter.
|
3070
|
-
*
|
3071
|
-
* @ingroup input
|
3072
|
-
*/
|
3073
|
-
GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
|
3074
|
-
|
3075
|
-
/*! @brief Retrieves the position of the cursor relative to the client area of
|
3076
|
-
* the window.
|
3077
|
-
*
|
3078
|
-
* This function returns the position of the cursor, in screen coordinates,
|
3079
|
-
* relative to the upper-left corner of the client area of the specified
|
3080
|
-
* window.
|
3081
|
-
*
|
3082
|
-
* If the cursor is disabled (with `GLFW_CURSOR_DISABLED`) then the cursor
|
3083
|
-
* position is unbounded and limited only by the minimum and maximum values of
|
3084
|
-
* a `double`.
|
3085
|
-
*
|
3086
|
-
* The coordinate can be converted to their integer equivalents with the
|
3087
|
-
* `floor` function. Casting directly to an integer type works for positive
|
3088
|
-
* coordinates, but fails for negative ones.
|
3089
|
-
*
|
3090
|
-
* Any or all of the position arguments may be `NULL`. If an error occurs, all
|
3091
|
-
* non-`NULL` position arguments will be set to zero.
|
3092
|
-
*
|
3093
|
-
* @param[in] window The desired window.
|
3094
|
-
* @param[out] xpos Where to store the cursor x-coordinate, relative to the
|
3095
|
-
* left edge of the client area, or `NULL`.
|
3096
|
-
* @param[out] ypos Where to store the cursor y-coordinate, relative to the to
|
3097
|
-
* top edge of the client area, or `NULL`.
|
3098
|
-
*
|
3099
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
3100
|
-
* GLFW_PLATFORM_ERROR.
|
3101
|
-
*
|
3102
|
-
* @thread_safety This function must only be called from the main thread.
|
3103
|
-
*
|
3104
|
-
* @sa @ref cursor_pos
|
3105
|
-
* @sa glfwSetCursorPos
|
3106
|
-
*
|
3107
|
-
* @since Added in version 3.0. Replaces `glfwGetMousePos`.
|
3108
|
-
*
|
3109
|
-
* @ingroup input
|
3110
|
-
*/
|
3111
|
-
GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
|
3112
|
-
|
3113
|
-
/*! @brief Sets the position of the cursor, relative to the client area of the
|
3114
|
-
* window.
|
3115
|
-
*
|
3116
|
-
* This function sets the position, in screen coordinates, of the cursor
|
3117
|
-
* relative to the upper-left corner of the client area of the specified
|
3118
|
-
* window. The window must have input focus. If the window does not have
|
3119
|
-
* input focus when this function is called, it fails silently.
|
3120
|
-
*
|
3121
|
-
* __Do not use this function__ to implement things like camera controls. GLFW
|
3122
|
-
* already provides the `GLFW_CURSOR_DISABLED` cursor mode that hides the
|
3123
|
-
* cursor, transparently re-centers it and provides unconstrained cursor
|
3124
|
-
* motion. See @ref glfwSetInputMode for more information.
|
3125
|
-
*
|
3126
|
-
* If the cursor mode is `GLFW_CURSOR_DISABLED` then the cursor position is
|
3127
|
-
* unconstrained and limited only by the minimum and maximum values of
|
3128
|
-
* a `double`.
|
3129
|
-
*
|
3130
|
-
* @param[in] window The desired window.
|
3131
|
-
* @param[in] xpos The desired x-coordinate, relative to the left edge of the
|
3132
|
-
* client area.
|
3133
|
-
* @param[in] ypos The desired y-coordinate, relative to the top edge of the
|
3134
|
-
* client area.
|
3135
|
-
*
|
3136
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
3137
|
-
* GLFW_PLATFORM_ERROR.
|
3138
|
-
*
|
3139
|
-
* @thread_safety This function must only be called from the main thread.
|
3140
|
-
*
|
3141
|
-
* @sa @ref cursor_pos
|
3142
|
-
* @sa glfwGetCursorPos
|
3143
|
-
*
|
3144
|
-
* @since Added in version 3.0. Replaces `glfwSetMousePos`.
|
3145
|
-
*
|
3146
|
-
* @ingroup input
|
3147
|
-
*/
|
3148
|
-
GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
|
3149
|
-
|
3150
|
-
/*! @brief Creates a custom cursor.
|
3151
|
-
*
|
3152
|
-
* Creates a new custom cursor image that can be set for a window with @ref
|
3153
|
-
* glfwSetCursor. The cursor can be destroyed with @ref glfwDestroyCursor.
|
3154
|
-
* Any remaining cursors are destroyed by @ref glfwTerminate.
|
3155
|
-
*
|
3156
|
-
* The pixels are 32-bit, little-endian, non-premultiplied RGBA, i.e. eight
|
3157
|
-
* bits per channel. They are arranged canonically as packed sequential rows,
|
3158
|
-
* starting from the top-left corner.
|
3159
|
-
*
|
3160
|
-
* The cursor hotspot is specified in pixels, relative to the upper-left corner
|
3161
|
-
* of the cursor image. Like all other coordinate systems in GLFW, the X-axis
|
3162
|
-
* points to the right and the Y-axis points down.
|
3163
|
-
*
|
3164
|
-
* @param[in] image The desired cursor image.
|
3165
|
-
* @param[in] xhot The desired x-coordinate, in pixels, of the cursor hotspot.
|
3166
|
-
* @param[in] yhot The desired y-coordinate, in pixels, of the cursor hotspot.
|
3167
|
-
* @return The handle of the created cursor, or `NULL` if an
|
3168
|
-
* [error](@ref error_handling) occurred.
|
3169
|
-
*
|
3170
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
3171
|
-
* GLFW_PLATFORM_ERROR.
|
3172
|
-
*
|
3173
|
-
* @pointer_lifetime The specified image data is copied before this function
|
3174
|
-
* returns.
|
3175
|
-
*
|
3176
|
-
* @reentrancy This function must not be called from a callback.
|
3177
|
-
*
|
3178
|
-
* @thread_safety This function must only be called from the main thread.
|
3179
|
-
*
|
3180
|
-
* @sa @ref cursor_object
|
3181
|
-
* @sa glfwDestroyCursor
|
3182
|
-
* @sa glfwCreateStandardCursor
|
3183
|
-
*
|
3184
|
-
* @since Added in version 3.1.
|
3185
|
-
*
|
3186
|
-
* @ingroup input
|
3187
|
-
*/
|
3188
|
-
GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
|
3189
|
-
|
3190
|
-
/*! @brief Creates a cursor with a standard shape.
|
3191
|
-
*
|
3192
|
-
* Returns a cursor with a [standard shape](@ref shapes), that can be set for
|
3193
|
-
* a window with @ref glfwSetCursor.
|
3194
|
-
*
|
3195
|
-
* @param[in] shape One of the [standard shapes](@ref shapes).
|
3196
|
-
* @return A new cursor ready to use or `NULL` if an
|
3197
|
-
* [error](@ref error_handling) occurred.
|
3198
|
-
*
|
3199
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
3200
|
-
* GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
|
3201
|
-
*
|
3202
|
-
* @reentrancy This function must not be called from a callback.
|
3203
|
-
*
|
3204
|
-
* @thread_safety This function must only be called from the main thread.
|
3205
|
-
*
|
3206
|
-
* @sa @ref cursor_object
|
3207
|
-
* @sa glfwCreateCursor
|
3208
|
-
*
|
3209
|
-
* @since Added in version 3.1.
|
3210
|
-
*
|
3211
|
-
* @ingroup input
|
3212
|
-
*/
|
3213
|
-
GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
|
3214
|
-
|
3215
|
-
/*! @brief Destroys a cursor.
|
3216
|
-
*
|
3217
|
-
* This function destroys a cursor previously created with @ref
|
3218
|
-
* glfwCreateCursor. Any remaining cursors will be destroyed by @ref
|
3219
|
-
* glfwTerminate.
|
3220
|
-
*
|
3221
|
-
* @param[in] cursor The cursor object to destroy.
|
3222
|
-
*
|
3223
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
3224
|
-
* GLFW_PLATFORM_ERROR.
|
3225
|
-
*
|
3226
|
-
* @reentrancy This function must not be called from a callback.
|
3227
|
-
*
|
3228
|
-
* @thread_safety This function must only be called from the main thread.
|
3229
|
-
*
|
3230
|
-
* @sa @ref cursor_object
|
3231
|
-
* @sa glfwCreateCursor
|
3232
|
-
*
|
3233
|
-
* @since Added in version 3.1.
|
3234
|
-
*
|
3235
|
-
* @ingroup input
|
3236
|
-
*/
|
3237
|
-
GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
|
3238
|
-
|
3239
|
-
/*! @brief Sets the cursor for the window.
|
3240
|
-
*
|
3241
|
-
* This function sets the cursor image to be used when the cursor is over the
|
3242
|
-
* client area of the specified window. The set cursor will only be visible
|
3243
|
-
* when the [cursor mode](@ref cursor_mode) of the window is
|
3244
|
-
* `GLFW_CURSOR_NORMAL`.
|
3245
|
-
*
|
3246
|
-
* On some platforms, the set cursor may not be visible unless the window also
|
3247
|
-
* has input focus.
|
3248
|
-
*
|
3249
|
-
* @param[in] window The window to set the cursor for.
|
3250
|
-
* @param[in] cursor The cursor to set, or `NULL` to switch back to the default
|
3251
|
-
* arrow cursor.
|
3252
|
-
*
|
3253
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
3254
|
-
* GLFW_PLATFORM_ERROR.
|
3255
|
-
*
|
3256
|
-
* @thread_safety This function must only be called from the main thread.
|
3257
|
-
*
|
3258
|
-
* @sa @ref cursor_object
|
3259
|
-
*
|
3260
|
-
* @since Added in version 3.1.
|
3261
|
-
*
|
3262
|
-
* @ingroup input
|
3263
|
-
*/
|
3264
|
-
GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
|
3265
|
-
|
3266
|
-
/*! @brief Sets the key callback.
|
3267
|
-
*
|
3268
|
-
* This function sets the key callback of the specified window, which is called
|
3269
|
-
* when a key is pressed, repeated or released.
|
3270
|
-
*
|
3271
|
-
* The key functions deal with physical keys, with layout independent
|
3272
|
-
* [key tokens](@ref keys) named after their values in the standard US keyboard
|
3273
|
-
* layout. If you want to input text, use the
|
3274
|
-
* [character callback](@ref glfwSetCharCallback) instead.
|
3275
|
-
*
|
3276
|
-
* When a window loses input focus, it will generate synthetic key release
|
3277
|
-
* events for all pressed keys. You can tell these events from user-generated
|
3278
|
-
* events by the fact that the synthetic ones are generated after the focus
|
3279
|
-
* loss event has been processed, i.e. after the
|
3280
|
-
* [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
|
3281
|
-
*
|
3282
|
-
* The scancode of a key is specific to that platform or sometimes even to that
|
3283
|
-
* machine. Scancodes are intended to allow users to bind keys that don't have
|
3284
|
-
* a GLFW key token. Such keys have `key` set to `GLFW_KEY_UNKNOWN`, their
|
3285
|
-
* state is not saved and so it cannot be queried with @ref glfwGetKey.
|
3286
|
-
*
|
3287
|
-
* Sometimes GLFW needs to generate synthetic key events, in which case the
|
3288
|
-
* scancode may be zero.
|
3289
|
-
*
|
3290
|
-
* @param[in] window The window whose callback to set.
|
3291
|
-
* @param[in] cbfun The new key callback, or `NULL` to remove the currently
|
3292
|
-
* set callback.
|
3293
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
3294
|
-
* library had not been [initialized](@ref intro_init).
|
3295
|
-
*
|
3296
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3297
|
-
*
|
3298
|
-
* @thread_safety This function must only be called from the main thread.
|
3299
|
-
*
|
3300
|
-
* @sa @ref input_key
|
3301
|
-
*
|
3302
|
-
* @since Added in version 1.0.
|
3303
|
-
* @glfw3 Added window handle parameter and return value.
|
3304
|
-
*
|
3305
|
-
* @ingroup input
|
3306
|
-
*/
|
3307
|
-
GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun);
|
3308
|
-
|
3309
|
-
/*! @brief Sets the Unicode character callback.
|
3310
|
-
*
|
3311
|
-
* This function sets the character callback of the specified window, which is
|
3312
|
-
* called when a Unicode character is input.
|
3313
|
-
*
|
3314
|
-
* The character callback is intended for Unicode text input. As it deals with
|
3315
|
-
* characters, it is keyboard layout dependent, whereas the
|
3316
|
-
* [key callback](@ref glfwSetKeyCallback) is not. Characters do not map 1:1
|
3317
|
-
* to physical keys, as a key may produce zero, one or more characters. If you
|
3318
|
-
* want to know whether a specific physical key was pressed or released, see
|
3319
|
-
* the key callback instead.
|
3320
|
-
*
|
3321
|
-
* The character callback behaves as system text input normally does and will
|
3322
|
-
* not be called if modifier keys are held down that would prevent normal text
|
3323
|
-
* input on that platform, for example a Super (Command) key on OS X or Alt key
|
3324
|
-
* on Windows. There is a
|
3325
|
-
* [character with modifiers callback](@ref glfwSetCharModsCallback) that
|
3326
|
-
* receives these events.
|
3327
|
-
*
|
3328
|
-
* @param[in] window The window whose callback to set.
|
3329
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
3330
|
-
* callback.
|
3331
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
3332
|
-
* library had not been [initialized](@ref intro_init).
|
3333
|
-
*
|
3334
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3335
|
-
*
|
3336
|
-
* @thread_safety This function must only be called from the main thread.
|
3337
|
-
*
|
3338
|
-
* @sa @ref input_char
|
3339
|
-
*
|
3340
|
-
* @since Added in version 2.4.
|
3341
|
-
* @glfw3 Added window handle parameter and return value.
|
3342
|
-
*
|
3343
|
-
* @ingroup input
|
3344
|
-
*/
|
3345
|
-
GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun);
|
3346
|
-
|
3347
|
-
/*! @brief Sets the Unicode character with modifiers callback.
|
3348
|
-
*
|
3349
|
-
* This function sets the character with modifiers callback of the specified
|
3350
|
-
* window, which is called when a Unicode character is input regardless of what
|
3351
|
-
* modifier keys are used.
|
3352
|
-
*
|
3353
|
-
* The character with modifiers callback is intended for implementing custom
|
3354
|
-
* Unicode character input. For regular Unicode text input, see the
|
3355
|
-
* [character callback](@ref glfwSetCharCallback). Like the character
|
3356
|
-
* callback, the character with modifiers callback deals with characters and is
|
3357
|
-
* keyboard layout dependent. Characters do not map 1:1 to physical keys, as
|
3358
|
-
* a key may produce zero, one or more characters. If you want to know whether
|
3359
|
-
* a specific physical key was pressed or released, see the
|
3360
|
-
* [key callback](@ref glfwSetKeyCallback) instead.
|
3361
|
-
*
|
3362
|
-
* @param[in] window The window whose callback to set.
|
3363
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
3364
|
-
* callback.
|
3365
|
-
* @return The previously set callback, or `NULL` if no callback was set or an
|
3366
|
-
* [error](@ref error_handling) occurred.
|
3367
|
-
*
|
3368
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3369
|
-
*
|
3370
|
-
* @thread_safety This function must only be called from the main thread.
|
3371
|
-
*
|
3372
|
-
* @sa @ref input_char
|
3373
|
-
*
|
3374
|
-
* @since Added in version 3.1.
|
3375
|
-
*
|
3376
|
-
* @ingroup input
|
3377
|
-
*/
|
3378
|
-
GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun cbfun);
|
3379
|
-
|
3380
|
-
/*! @brief Sets the mouse button callback.
|
3381
|
-
*
|
3382
|
-
* This function sets the mouse button callback of the specified window, which
|
3383
|
-
* is called when a mouse button is pressed or released.
|
3384
|
-
*
|
3385
|
-
* When a window loses input focus, it will generate synthetic mouse button
|
3386
|
-
* release events for all pressed mouse buttons. You can tell these events
|
3387
|
-
* from user-generated events by the fact that the synthetic ones are generated
|
3388
|
-
* after the focus loss event has been processed, i.e. after the
|
3389
|
-
* [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
|
3390
|
-
*
|
3391
|
-
* @param[in] window The window whose callback to set.
|
3392
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
3393
|
-
* callback.
|
3394
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
3395
|
-
* library had not been [initialized](@ref intro_init).
|
3396
|
-
*
|
3397
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3398
|
-
*
|
3399
|
-
* @thread_safety This function must only be called from the main thread.
|
3400
|
-
*
|
3401
|
-
* @sa @ref input_mouse_button
|
3402
|
-
*
|
3403
|
-
* @since Added in version 1.0.
|
3404
|
-
* @glfw3 Added window handle parameter and return value.
|
3405
|
-
*
|
3406
|
-
* @ingroup input
|
3407
|
-
*/
|
3408
|
-
GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun cbfun);
|
3409
|
-
|
3410
|
-
/*! @brief Sets the cursor position callback.
|
3411
|
-
*
|
3412
|
-
* This function sets the cursor position callback of the specified window,
|
3413
|
-
* which is called when the cursor is moved. The callback is provided with the
|
3414
|
-
* position, in screen coordinates, relative to the upper-left corner of the
|
3415
|
-
* client area of the window.
|
3416
|
-
*
|
3417
|
-
* @param[in] window The window whose callback to set.
|
3418
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
3419
|
-
* callback.
|
3420
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
3421
|
-
* library had not been [initialized](@ref intro_init).
|
3422
|
-
*
|
3423
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3424
|
-
*
|
3425
|
-
* @thread_safety This function must only be called from the main thread.
|
3426
|
-
*
|
3427
|
-
* @sa @ref cursor_pos
|
3428
|
-
*
|
3429
|
-
* @since Added in version 3.0. Replaces `glfwSetMousePosCallback`.
|
3430
|
-
*
|
3431
|
-
* @ingroup input
|
3432
|
-
*/
|
3433
|
-
GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun cbfun);
|
3434
|
-
|
3435
|
-
/*! @brief Sets the cursor enter/exit callback.
|
3436
|
-
*
|
3437
|
-
* This function sets the cursor boundary crossing callback of the specified
|
3438
|
-
* window, which is called when the cursor enters or leaves the client area of
|
3439
|
-
* the window.
|
3440
|
-
*
|
3441
|
-
* @param[in] window The window whose callback to set.
|
3442
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
3443
|
-
* callback.
|
3444
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
3445
|
-
* library had not been [initialized](@ref intro_init).
|
3446
|
-
*
|
3447
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3448
|
-
*
|
3449
|
-
* @thread_safety This function must only be called from the main thread.
|
3450
|
-
*
|
3451
|
-
* @sa @ref cursor_enter
|
3452
|
-
*
|
3453
|
-
* @since Added in version 3.0.
|
3454
|
-
*
|
3455
|
-
* @ingroup input
|
3456
|
-
*/
|
3457
|
-
GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun cbfun);
|
3458
|
-
|
3459
|
-
/*! @brief Sets the scroll callback.
|
3460
|
-
*
|
3461
|
-
* This function sets the scroll callback of the specified window, which is
|
3462
|
-
* called when a scrolling device is used, such as a mouse wheel or scrolling
|
3463
|
-
* area of a touchpad.
|
3464
|
-
*
|
3465
|
-
* The scroll callback receives all scrolling input, like that from a mouse
|
3466
|
-
* wheel or a touchpad scrolling area.
|
3467
|
-
*
|
3468
|
-
* @param[in] window The window whose callback to set.
|
3469
|
-
* @param[in] cbfun The new scroll callback, or `NULL` to remove the currently
|
3470
|
-
* set callback.
|
3471
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
3472
|
-
* library had not been [initialized](@ref intro_init).
|
3473
|
-
*
|
3474
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3475
|
-
*
|
3476
|
-
* @thread_safety This function must only be called from the main thread.
|
3477
|
-
*
|
3478
|
-
* @sa @ref scrolling
|
3479
|
-
*
|
3480
|
-
* @since Added in version 3.0. Replaces `glfwSetMouseWheelCallback`.
|
3481
|
-
*
|
3482
|
-
* @ingroup input
|
3483
|
-
*/
|
3484
|
-
GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun cbfun);
|
3485
|
-
|
3486
|
-
/*! @brief Sets the file drop callback.
|
3487
|
-
*
|
3488
|
-
* This function sets the file drop callback of the specified window, which is
|
3489
|
-
* called when one or more dragged files are dropped on the window.
|
3490
|
-
*
|
3491
|
-
* Because the path array and its strings may have been generated specifically
|
3492
|
-
* for that event, they are not guaranteed to be valid after the callback has
|
3493
|
-
* returned. If you wish to use them after the callback returns, you need to
|
3494
|
-
* make a deep copy.
|
3495
|
-
*
|
3496
|
-
* @param[in] window The window whose callback to set.
|
3497
|
-
* @param[in] cbfun The new file drop callback, or `NULL` to remove the
|
3498
|
-
* currently set callback.
|
3499
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
3500
|
-
* library had not been [initialized](@ref intro_init).
|
3501
|
-
*
|
3502
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3503
|
-
*
|
3504
|
-
* @thread_safety This function must only be called from the main thread.
|
3505
|
-
*
|
3506
|
-
* @sa @ref path_drop
|
3507
|
-
*
|
3508
|
-
* @since Added in version 3.1.
|
3509
|
-
*
|
3510
|
-
* @ingroup input
|
3511
|
-
*/
|
3512
|
-
GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun cbfun);
|
3513
|
-
|
3514
|
-
/*! @brief Returns whether the specified joystick is present.
|
3515
|
-
*
|
3516
|
-
* This function returns whether the specified joystick is present.
|
3517
|
-
*
|
3518
|
-
* @param[in] joy The [joystick](@ref joysticks) to query.
|
3519
|
-
* @return `GLFW_TRUE` if the joystick is present, or `GLFW_FALSE` otherwise.
|
3520
|
-
*
|
3521
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
3522
|
-
* GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
|
3523
|
-
*
|
3524
|
-
* @thread_safety This function must only be called from the main thread.
|
3525
|
-
*
|
3526
|
-
* @sa @ref joystick
|
3527
|
-
*
|
3528
|
-
* @since Added in version 3.0. Replaces `glfwGetJoystickParam`.
|
3529
|
-
*
|
3530
|
-
* @ingroup input
|
3531
|
-
*/
|
3532
|
-
GLFWAPI int glfwJoystickPresent(int joy);
|
3533
|
-
|
3534
|
-
/*! @brief Returns the values of all axes of the specified joystick.
|
3535
|
-
*
|
3536
|
-
* This function returns the values of all axes of the specified joystick.
|
3537
|
-
* Each element in the array is a value between -1.0 and 1.0.
|
3538
|
-
*
|
3539
|
-
* Querying a joystick slot with no device present is not an error, but will
|
3540
|
-
* cause this function to return `NULL`. Call @ref glfwJoystickPresent to
|
3541
|
-
* check device presence.
|
3542
|
-
*
|
3543
|
-
* @param[in] joy The [joystick](@ref joysticks) to query.
|
3544
|
-
* @param[out] count Where to store the number of axis values in the returned
|
3545
|
-
* array. This is set to zero if the joystick is not present or an error
|
3546
|
-
* occurred.
|
3547
|
-
* @return An array of axis values, or `NULL` if the joystick is not present or
|
3548
|
-
* an [error](@ref error_handling) occurred.
|
3549
|
-
*
|
3550
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
3551
|
-
* GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
|
3552
|
-
*
|
3553
|
-
* @pointer_lifetime The returned array is allocated and freed by GLFW. You
|
3554
|
-
* should not free it yourself. It is valid until the specified joystick is
|
3555
|
-
* disconnected, this function is called again for that joystick or the library
|
3556
|
-
* is terminated.
|
3557
|
-
*
|
3558
|
-
* @thread_safety This function must only be called from the main thread.
|
3559
|
-
*
|
3560
|
-
* @sa @ref joystick_axis
|
3561
|
-
*
|
3562
|
-
* @since Added in version 3.0. Replaces `glfwGetJoystickPos`.
|
3563
|
-
*
|
3564
|
-
* @ingroup input
|
3565
|
-
*/
|
3566
|
-
GLFWAPI const float* glfwGetJoystickAxes(int joy, int* count);
|
3567
|
-
|
3568
|
-
/*! @brief Returns the state of all buttons of the specified joystick.
|
3569
|
-
*
|
3570
|
-
* This function returns the state of all buttons of the specified joystick.
|
3571
|
-
* Each element in the array is either `GLFW_PRESS` or `GLFW_RELEASE`.
|
3572
|
-
*
|
3573
|
-
* Querying a joystick slot with no device present is not an error, but will
|
3574
|
-
* cause this function to return `NULL`. Call @ref glfwJoystickPresent to
|
3575
|
-
* check device presence.
|
3576
|
-
*
|
3577
|
-
* @param[in] joy The [joystick](@ref joysticks) to query.
|
3578
|
-
* @param[out] count Where to store the number of button states in the returned
|
3579
|
-
* array. This is set to zero if the joystick is not present or an error
|
3580
|
-
* occurred.
|
3581
|
-
* @return An array of button states, or `NULL` if the joystick is not present
|
3582
|
-
* or an [error](@ref error_handling) occurred.
|
3583
|
-
*
|
3584
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
3585
|
-
* GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
|
3586
|
-
*
|
3587
|
-
* @pointer_lifetime The returned array is allocated and freed by GLFW. You
|
3588
|
-
* should not free it yourself. It is valid until the specified joystick is
|
3589
|
-
* disconnected, this function is called again for that joystick or the library
|
3590
|
-
* is terminated.
|
3591
|
-
*
|
3592
|
-
* @thread_safety This function must only be called from the main thread.
|
3593
|
-
*
|
3594
|
-
* @sa @ref joystick_button
|
3595
|
-
*
|
3596
|
-
* @since Added in version 2.2.
|
3597
|
-
* @glfw3 Changed to return a dynamic array.
|
3598
|
-
*
|
3599
|
-
* @ingroup input
|
3600
|
-
*/
|
3601
|
-
GLFWAPI const unsigned char* glfwGetJoystickButtons(int joy, int* count);
|
3602
|
-
|
3603
|
-
/*! @brief Returns the name of the specified joystick.
|
3604
|
-
*
|
3605
|
-
* This function returns the name, encoded as UTF-8, of the specified joystick.
|
3606
|
-
* The returned string is allocated and freed by GLFW. You should not free it
|
3607
|
-
* yourself.
|
3608
|
-
*
|
3609
|
-
* Querying a joystick slot with no device present is not an error, but will
|
3610
|
-
* cause this function to return `NULL`. Call @ref glfwJoystickPresent to
|
3611
|
-
* check device presence.
|
3612
|
-
*
|
3613
|
-
* @param[in] joy The [joystick](@ref joysticks) to query.
|
3614
|
-
* @return The UTF-8 encoded name of the joystick, or `NULL` if the joystick
|
3615
|
-
* is not present or an [error](@ref error_handling) occurred.
|
3616
|
-
*
|
3617
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
3618
|
-
* GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
|
3619
|
-
*
|
3620
|
-
* @pointer_lifetime The returned string is allocated and freed by GLFW. You
|
3621
|
-
* should not free it yourself. It is valid until the specified joystick is
|
3622
|
-
* disconnected, this function is called again for that joystick or the library
|
3623
|
-
* is terminated.
|
3624
|
-
*
|
3625
|
-
* @thread_safety This function must only be called from the main thread.
|
3626
|
-
*
|
3627
|
-
* @sa @ref joystick_name
|
3628
|
-
*
|
3629
|
-
* @since Added in version 3.0.
|
3630
|
-
*
|
3631
|
-
* @ingroup input
|
3632
|
-
*/
|
3633
|
-
GLFWAPI const char* glfwGetJoystickName(int joy);
|
3634
|
-
|
3635
|
-
/*! @brief Sets the joystick configuration callback.
|
3636
|
-
*
|
3637
|
-
* This function sets the joystick configuration callback, or removes the
|
3638
|
-
* currently set callback. This is called when a joystick is connected to or
|
3639
|
-
* disconnected from the system.
|
3640
|
-
*
|
3641
|
-
* @param[in] cbfun The new callback, or `NULL` to remove the currently set
|
3642
|
-
* callback.
|
3643
|
-
* @return The previously set callback, or `NULL` if no callback was set or the
|
3644
|
-
* library had not been [initialized](@ref intro_init).
|
3645
|
-
*
|
3646
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3647
|
-
*
|
3648
|
-
* @thread_safety This function must only be called from the main thread.
|
3649
|
-
*
|
3650
|
-
* @sa @ref joystick_event
|
3651
|
-
*
|
3652
|
-
* @since Added in version 3.2.
|
3653
|
-
*
|
3654
|
-
* @ingroup input
|
3655
|
-
*/
|
3656
|
-
GLFWAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun cbfun);
|
3657
|
-
|
3658
|
-
/*! @brief Sets the clipboard to the specified string.
|
3659
|
-
*
|
3660
|
-
* This function sets the system clipboard to the specified, UTF-8 encoded
|
3661
|
-
* string.
|
3662
|
-
*
|
3663
|
-
* @param[in] window The window that will own the clipboard contents.
|
3664
|
-
* @param[in] string A UTF-8 encoded string.
|
3665
|
-
*
|
3666
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
3667
|
-
* GLFW_PLATFORM_ERROR.
|
3668
|
-
*
|
3669
|
-
* @pointer_lifetime The specified string is copied before this function
|
3670
|
-
* returns.
|
3671
|
-
*
|
3672
|
-
* @thread_safety This function must only be called from the main thread.
|
3673
|
-
*
|
3674
|
-
* @sa @ref clipboard
|
3675
|
-
* @sa glfwGetClipboardString
|
3676
|
-
*
|
3677
|
-
* @since Added in version 3.0.
|
3678
|
-
*
|
3679
|
-
* @ingroup input
|
3680
|
-
*/
|
3681
|
-
GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
|
3682
|
-
|
3683
|
-
/*! @brief Returns the contents of the clipboard as a string.
|
3684
|
-
*
|
3685
|
-
* This function returns the contents of the system clipboard, if it contains
|
3686
|
-
* or is convertible to a UTF-8 encoded string. If the clipboard is empty or
|
3687
|
-
* if its contents cannot be converted, `NULL` is returned and a @ref
|
3688
|
-
* GLFW_FORMAT_UNAVAILABLE error is generated.
|
3689
|
-
*
|
3690
|
-
* @param[in] window The window that will request the clipboard contents.
|
3691
|
-
* @return The contents of the clipboard as a UTF-8 encoded string, or `NULL`
|
3692
|
-
* if an [error](@ref error_handling) occurred.
|
3693
|
-
*
|
3694
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
3695
|
-
* GLFW_PLATFORM_ERROR.
|
3696
|
-
*
|
3697
|
-
* @pointer_lifetime The returned string is allocated and freed by GLFW. You
|
3698
|
-
* should not free it yourself. It is valid until the next call to @ref
|
3699
|
-
* glfwGetClipboardString or @ref glfwSetClipboardString, or until the library
|
3700
|
-
* is terminated.
|
3701
|
-
*
|
3702
|
-
* @thread_safety This function must only be called from the main thread.
|
3703
|
-
*
|
3704
|
-
* @sa @ref clipboard
|
3705
|
-
* @sa glfwSetClipboardString
|
3706
|
-
*
|
3707
|
-
* @since Added in version 3.0.
|
3708
|
-
*
|
3709
|
-
* @ingroup input
|
3710
|
-
*/
|
3711
|
-
GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
|
3712
|
-
|
3713
|
-
/*! @brief Returns the value of the GLFW timer.
|
3714
|
-
*
|
3715
|
-
* This function returns the value of the GLFW timer. Unless the timer has
|
3716
|
-
* been set using @ref glfwSetTime, the timer measures time elapsed since GLFW
|
3717
|
-
* was initialized.
|
3718
|
-
*
|
3719
|
-
* The resolution of the timer is system dependent, but is usually on the order
|
3720
|
-
* of a few micro- or nanoseconds. It uses the highest-resolution monotonic
|
3721
|
-
* time source on each supported platform.
|
3722
|
-
*
|
3723
|
-
* @return The current value, in seconds, or zero if an
|
3724
|
-
* [error](@ref error_handling) occurred.
|
3725
|
-
*
|
3726
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3727
|
-
*
|
3728
|
-
* @thread_safety This function may be called from any thread. Reading and
|
3729
|
-
* writing of the internal timer offset is not atomic, so it needs to be
|
3730
|
-
* externally synchronized with calls to @ref glfwSetTime.
|
3731
|
-
*
|
3732
|
-
* @sa @ref time
|
3733
|
-
*
|
3734
|
-
* @since Added in version 1.0.
|
3735
|
-
*
|
3736
|
-
* @ingroup input
|
3737
|
-
*/
|
3738
|
-
GLFWAPI double glfwGetTime(void);
|
3739
|
-
|
3740
|
-
/*! @brief Sets the GLFW timer.
|
3741
|
-
*
|
3742
|
-
* This function sets the value of the GLFW timer. It then continues to count
|
3743
|
-
* up from that value. The value must be a positive finite number less than
|
3744
|
-
* or equal to 18446744073.0, which is approximately 584.5 years.
|
3745
|
-
*
|
3746
|
-
* @param[in] time The new value, in seconds.
|
3747
|
-
*
|
3748
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
3749
|
-
* GLFW_INVALID_VALUE.
|
3750
|
-
*
|
3751
|
-
* @remark The upper limit of the timer is calculated as
|
3752
|
-
* floor((2<sup>64</sup> - 1) / 10<sup>9</sup>) and is due to implementations
|
3753
|
-
* storing nanoseconds in 64 bits. The limit may be increased in the future.
|
3754
|
-
*
|
3755
|
-
* @thread_safety This function may be called from any thread. Reading and
|
3756
|
-
* writing of the internal timer offset is not atomic, so it needs to be
|
3757
|
-
* externally synchronized with calls to @ref glfwGetTime.
|
3758
|
-
*
|
3759
|
-
* @sa @ref time
|
3760
|
-
*
|
3761
|
-
* @since Added in version 2.2.
|
3762
|
-
*
|
3763
|
-
* @ingroup input
|
3764
|
-
*/
|
3765
|
-
GLFWAPI void glfwSetTime(double time);
|
3766
|
-
|
3767
|
-
/*! @brief Returns the current value of the raw timer.
|
3768
|
-
*
|
3769
|
-
* This function returns the current value of the raw timer, measured in
|
3770
|
-
* 1 / frequency seconds. To get the frequency, call @ref
|
3771
|
-
* glfwGetTimerFrequency.
|
3772
|
-
*
|
3773
|
-
* @return The value of the timer, or zero if an
|
3774
|
-
* [error](@ref error_handling) occurred.
|
3775
|
-
*
|
3776
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3777
|
-
*
|
3778
|
-
* @thread_safety This function may be called from any thread.
|
3779
|
-
*
|
3780
|
-
* @sa @ref time
|
3781
|
-
* @sa glfwGetTimerFrequency
|
3782
|
-
*
|
3783
|
-
* @since Added in version 3.2.
|
3784
|
-
*
|
3785
|
-
* @ingroup input
|
3786
|
-
*/
|
3787
|
-
GLFWAPI uint64_t glfwGetTimerValue(void);
|
3788
|
-
|
3789
|
-
/*! @brief Returns the frequency, in Hz, of the raw timer.
|
3790
|
-
*
|
3791
|
-
* This function returns the frequency, in Hz, of the raw timer.
|
3792
|
-
*
|
3793
|
-
* @return The frequency of the timer, in Hz, or zero if an
|
3794
|
-
* [error](@ref error_handling) occurred.
|
3795
|
-
*
|
3796
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3797
|
-
*
|
3798
|
-
* @thread_safety This function may be called from any thread.
|
3799
|
-
*
|
3800
|
-
* @sa @ref time
|
3801
|
-
* @sa glfwGetTimerValue
|
3802
|
-
*
|
3803
|
-
* @since Added in version 3.2.
|
3804
|
-
*
|
3805
|
-
* @ingroup input
|
3806
|
-
*/
|
3807
|
-
GLFWAPI uint64_t glfwGetTimerFrequency(void);
|
3808
|
-
|
3809
|
-
/*! @brief Makes the context of the specified window current for the calling
|
3810
|
-
* thread.
|
3811
|
-
*
|
3812
|
-
* This function makes the OpenGL or OpenGL ES context of the specified window
|
3813
|
-
* current on the calling thread. A context can only be made current on
|
3814
|
-
* a single thread at a time and each thread can have only a single current
|
3815
|
-
* context at a time.
|
3816
|
-
*
|
3817
|
-
* By default, making a context non-current implicitly forces a pipeline flush.
|
3818
|
-
* On machines that support `GL_KHR_context_flush_control`, you can control
|
3819
|
-
* whether a context performs this flush by setting the
|
3820
|
-
* [GLFW_CONTEXT_RELEASE_BEHAVIOR](@ref window_hints_ctx) window hint.
|
3821
|
-
*
|
3822
|
-
* The specified window must have an OpenGL or OpenGL ES context. Specifying
|
3823
|
-
* a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT
|
3824
|
-
* error.
|
3825
|
-
*
|
3826
|
-
* @param[in] window The window whose context to make current, or `NULL` to
|
3827
|
-
* detach the current context.
|
3828
|
-
*
|
3829
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
3830
|
-
* GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
|
3831
|
-
*
|
3832
|
-
* @thread_safety This function may be called from any thread.
|
3833
|
-
*
|
3834
|
-
* @sa @ref context_current
|
3835
|
-
* @sa glfwGetCurrentContext
|
3836
|
-
*
|
3837
|
-
* @since Added in version 3.0.
|
3838
|
-
*
|
3839
|
-
* @ingroup context
|
3840
|
-
*/
|
3841
|
-
GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
|
3842
|
-
|
3843
|
-
/*! @brief Returns the window whose context is current on the calling thread.
|
3844
|
-
*
|
3845
|
-
* This function returns the window whose OpenGL or OpenGL ES context is
|
3846
|
-
* current on the calling thread.
|
3847
|
-
*
|
3848
|
-
* @return The window whose context is current, or `NULL` if no window's
|
3849
|
-
* context is current.
|
3850
|
-
*
|
3851
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
3852
|
-
*
|
3853
|
-
* @thread_safety This function may be called from any thread.
|
3854
|
-
*
|
3855
|
-
* @sa @ref context_current
|
3856
|
-
* @sa glfwMakeContextCurrent
|
3857
|
-
*
|
3858
|
-
* @since Added in version 3.0.
|
3859
|
-
*
|
3860
|
-
* @ingroup context
|
3861
|
-
*/
|
3862
|
-
GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
|
3863
|
-
|
3864
|
-
/*! @brief Swaps the front and back buffers of the specified window.
|
3865
|
-
*
|
3866
|
-
* This function swaps the front and back buffers of the specified window when
|
3867
|
-
* rendering with OpenGL or OpenGL ES. If the swap interval is greater than
|
3868
|
-
* zero, the GPU driver waits the specified number of screen updates before
|
3869
|
-
* swapping the buffers.
|
3870
|
-
*
|
3871
|
-
* The specified window must have an OpenGL or OpenGL ES context. Specifying
|
3872
|
-
* a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT
|
3873
|
-
* error.
|
3874
|
-
*
|
3875
|
-
* This function does not apply to Vulkan. If you are rendering with Vulkan,
|
3876
|
-
* see `vkQueuePresentKHR` instead.
|
3877
|
-
*
|
3878
|
-
* @param[in] window The window whose buffers to swap.
|
3879
|
-
*
|
3880
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
3881
|
-
* GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
|
3882
|
-
*
|
3883
|
-
* @remark __EGL:__ The context of the specified window must be current on the
|
3884
|
-
* calling thread.
|
3885
|
-
*
|
3886
|
-
* @thread_safety This function may be called from any thread.
|
3887
|
-
*
|
3888
|
-
* @sa @ref buffer_swap
|
3889
|
-
* @sa glfwSwapInterval
|
3890
|
-
*
|
3891
|
-
* @since Added in version 1.0.
|
3892
|
-
* @glfw3 Added window handle parameter.
|
3893
|
-
*
|
3894
|
-
* @ingroup window
|
3895
|
-
*/
|
3896
|
-
GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
|
3897
|
-
|
3898
|
-
/*! @brief Sets the swap interval for the current context.
|
3899
|
-
*
|
3900
|
-
* This function sets the swap interval for the current OpenGL or OpenGL ES
|
3901
|
-
* context, i.e. the number of screen updates to wait from the time @ref
|
3902
|
-
* glfwSwapBuffers was called before swapping the buffers and returning. This
|
3903
|
-
* is sometimes called _vertical synchronization_, _vertical retrace
|
3904
|
-
* synchronization_ or just _vsync_.
|
3905
|
-
*
|
3906
|
-
* Contexts that support either of the `WGL_EXT_swap_control_tear` and
|
3907
|
-
* `GLX_EXT_swap_control_tear` extensions also accept negative swap intervals,
|
3908
|
-
* which allow the driver to swap even if a frame arrives a little bit late.
|
3909
|
-
* You can check for the presence of these extensions using @ref
|
3910
|
-
* glfwExtensionSupported. For more information about swap tearing, see the
|
3911
|
-
* extension specifications.
|
3912
|
-
*
|
3913
|
-
* A context must be current on the calling thread. Calling this function
|
3914
|
-
* without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
|
3915
|
-
*
|
3916
|
-
* This function does not apply to Vulkan. If you are rendering with Vulkan,
|
3917
|
-
* see the present mode of your swapchain instead.
|
3918
|
-
*
|
3919
|
-
* @param[in] interval The minimum number of screen updates to wait for
|
3920
|
-
* until the buffers are swapped by @ref glfwSwapBuffers.
|
3921
|
-
*
|
3922
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
3923
|
-
* GLFW_NO_CURRENT_CONTEXT and @ref GLFW_PLATFORM_ERROR.
|
3924
|
-
*
|
3925
|
-
* @remark This function is not called during context creation, leaving the
|
3926
|
-
* swap interval set to whatever is the default on that platform. This is done
|
3927
|
-
* because some swap interval extensions used by GLFW do not allow the swap
|
3928
|
-
* interval to be reset to zero once it has been set to a non-zero value.
|
3929
|
-
*
|
3930
|
-
* @remark Some GPU drivers do not honor the requested swap interval, either
|
3931
|
-
* because of a user setting that overrides the application's request or due to
|
3932
|
-
* bugs in the driver.
|
3933
|
-
*
|
3934
|
-
* @thread_safety This function may be called from any thread.
|
3935
|
-
*
|
3936
|
-
* @sa @ref buffer_swap
|
3937
|
-
* @sa glfwSwapBuffers
|
3938
|
-
*
|
3939
|
-
* @since Added in version 1.0.
|
3940
|
-
*
|
3941
|
-
* @ingroup context
|
3942
|
-
*/
|
3943
|
-
GLFWAPI void glfwSwapInterval(int interval);
|
3944
|
-
|
3945
|
-
/*! @brief Returns whether the specified extension is available.
|
3946
|
-
*
|
3947
|
-
* This function returns whether the specified
|
3948
|
-
* [API extension](@ref context_glext) is supported by the current OpenGL or
|
3949
|
-
* OpenGL ES context. It searches both for client API extension and context
|
3950
|
-
* creation API extensions.
|
3951
|
-
*
|
3952
|
-
* A context must be current on the calling thread. Calling this function
|
3953
|
-
* without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
|
3954
|
-
*
|
3955
|
-
* As this functions retrieves and searches one or more extension strings each
|
3956
|
-
* call, it is recommended that you cache its results if it is going to be used
|
3957
|
-
* frequently. The extension strings will not change during the lifetime of
|
3958
|
-
* a context, so there is no danger in doing this.
|
3959
|
-
*
|
3960
|
-
* This function does not apply to Vulkan. If you are using Vulkan, see @ref
|
3961
|
-
* glfwGetRequiredInstanceExtensions, `vkEnumerateInstanceExtensionProperties`
|
3962
|
-
* and `vkEnumerateDeviceExtensionProperties` instead.
|
3963
|
-
*
|
3964
|
-
* @param[in] extension The ASCII encoded name of the extension.
|
3965
|
-
* @return `GLFW_TRUE` if the extension is available, or `GLFW_FALSE`
|
3966
|
-
* otherwise.
|
3967
|
-
*
|
3968
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
3969
|
-
* GLFW_NO_CURRENT_CONTEXT, @ref GLFW_INVALID_VALUE and @ref
|
3970
|
-
* GLFW_PLATFORM_ERROR.
|
3971
|
-
*
|
3972
|
-
* @thread_safety This function may be called from any thread.
|
3973
|
-
*
|
3974
|
-
* @sa @ref context_glext
|
3975
|
-
* @sa glfwGetProcAddress
|
3976
|
-
*
|
3977
|
-
* @since Added in version 1.0.
|
3978
|
-
*
|
3979
|
-
* @ingroup context
|
3980
|
-
*/
|
3981
|
-
GLFWAPI int glfwExtensionSupported(const char* extension);
|
3982
|
-
|
3983
|
-
/*! @brief Returns the address of the specified function for the current
|
3984
|
-
* context.
|
3985
|
-
*
|
3986
|
-
* This function returns the address of the specified OpenGL or OpenGL ES
|
3987
|
-
* [core or extension function](@ref context_glext), if it is supported
|
3988
|
-
* by the current context.
|
3989
|
-
*
|
3990
|
-
* A context must be current on the calling thread. Calling this function
|
3991
|
-
* without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
|
3992
|
-
*
|
3993
|
-
* This function does not apply to Vulkan. If you are rendering with Vulkan,
|
3994
|
-
* see @ref glfwGetInstanceProcAddress, `vkGetInstanceProcAddr` and
|
3995
|
-
* `vkGetDeviceProcAddr` instead.
|
3996
|
-
*
|
3997
|
-
* @param[in] procname The ASCII encoded name of the function.
|
3998
|
-
* @return The address of the function, or `NULL` if an
|
3999
|
-
* [error](@ref error_handling) occurred.
|
4000
|
-
*
|
4001
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
4002
|
-
* GLFW_NO_CURRENT_CONTEXT and @ref GLFW_PLATFORM_ERROR.
|
4003
|
-
*
|
4004
|
-
* @remark The address of a given function is not guaranteed to be the same
|
4005
|
-
* between contexts.
|
4006
|
-
*
|
4007
|
-
* @remark This function may return a non-`NULL` address despite the
|
4008
|
-
* associated version or extension not being available. Always check the
|
4009
|
-
* context version or extension string first.
|
4010
|
-
*
|
4011
|
-
* @pointer_lifetime The returned function pointer is valid until the context
|
4012
|
-
* is destroyed or the library is terminated.
|
4013
|
-
*
|
4014
|
-
* @thread_safety This function may be called from any thread.
|
4015
|
-
*
|
4016
|
-
* @sa @ref context_glext
|
4017
|
-
* @sa glfwExtensionSupported
|
4018
|
-
*
|
4019
|
-
* @since Added in version 1.0.
|
4020
|
-
*
|
4021
|
-
* @ingroup context
|
4022
|
-
*/
|
4023
|
-
GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
|
4024
|
-
|
4025
|
-
/*! @brief Returns whether the Vulkan loader has been found.
|
4026
|
-
*
|
4027
|
-
* This function returns whether the Vulkan loader has been found. This check
|
4028
|
-
* is performed by @ref glfwInit.
|
4029
|
-
*
|
4030
|
-
* The availability of a Vulkan loader does not by itself guarantee that window
|
4031
|
-
* surface creation or even device creation is possible. Call @ref
|
4032
|
-
* glfwGetRequiredInstanceExtensions to check whether the extensions necessary
|
4033
|
-
* for Vulkan surface creation are available and @ref
|
4034
|
-
* glfwGetPhysicalDevicePresentationSupport to check whether a queue family of
|
4035
|
-
* a physical device supports image presentation.
|
4036
|
-
*
|
4037
|
-
* @return `GLFW_TRUE` if Vulkan is available, or `GLFW_FALSE` otherwise.
|
4038
|
-
*
|
4039
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
|
4040
|
-
*
|
4041
|
-
* @thread_safety This function may be called from any thread.
|
4042
|
-
*
|
4043
|
-
* @sa @ref vulkan_support
|
4044
|
-
*
|
4045
|
-
* @since Added in version 3.2.
|
4046
|
-
*
|
4047
|
-
* @ingroup vulkan
|
4048
|
-
*/
|
4049
|
-
GLFWAPI int glfwVulkanSupported(void);
|
4050
|
-
|
4051
|
-
/*! @brief Returns the Vulkan instance extensions required by GLFW.
|
4052
|
-
*
|
4053
|
-
* This function returns an array of names of Vulkan instance extensions required
|
4054
|
-
* by GLFW for creating Vulkan surfaces for GLFW windows. If successful, the
|
4055
|
-
* list will always contains `VK_KHR_surface`, so if you don't require any
|
4056
|
-
* additional extensions you can pass this list directly to the
|
4057
|
-
* `VkInstanceCreateInfo` struct.
|
4058
|
-
*
|
4059
|
-
* If Vulkan is not available on the machine, this function returns `NULL` and
|
4060
|
-
* generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
|
4061
|
-
* to check whether Vulkan is available.
|
4062
|
-
*
|
4063
|
-
* If Vulkan is available but no set of extensions allowing window surface
|
4064
|
-
* creation was found, this function returns `NULL`. You may still use Vulkan
|
4065
|
-
* for off-screen rendering and compute work.
|
4066
|
-
*
|
4067
|
-
* @param[out] count Where to store the number of extensions in the returned
|
4068
|
-
* array. This is set to zero if an error occurred.
|
4069
|
-
* @return An array of ASCII encoded extension names, or `NULL` if an
|
4070
|
-
* [error](@ref error_handling) occurred.
|
4071
|
-
*
|
4072
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
4073
|
-
* GLFW_API_UNAVAILABLE.
|
4074
|
-
*
|
4075
|
-
* @remarks Additional extensions may be required by future versions of GLFW.
|
4076
|
-
* You should check if any extensions you wish to enable are already in the
|
4077
|
-
* returned array, as it is an error to specify an extension more than once in
|
4078
|
-
* the `VkInstanceCreateInfo` struct.
|
4079
|
-
*
|
4080
|
-
* @pointer_lifetime The returned array is allocated and freed by GLFW. You
|
4081
|
-
* should not free it yourself. It is guaranteed to be valid only until the
|
4082
|
-
* library is terminated.
|
4083
|
-
*
|
4084
|
-
* @thread_safety This function may be called from any thread.
|
4085
|
-
*
|
4086
|
-
* @sa @ref vulkan_ext
|
4087
|
-
* @sa glfwCreateWindowSurface
|
4088
|
-
*
|
4089
|
-
* @since Added in version 3.2.
|
4090
|
-
*
|
4091
|
-
* @ingroup vulkan
|
4092
|
-
*/
|
4093
|
-
GLFWAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
|
4094
|
-
|
4095
|
-
#if defined(VK_VERSION_1_0)
|
4096
|
-
|
4097
|
-
/*! @brief Returns the address of the specified Vulkan instance function.
|
4098
|
-
*
|
4099
|
-
* This function returns the address of the specified Vulkan core or extension
|
4100
|
-
* function for the specified instance. If instance is set to `NULL` it can
|
4101
|
-
* return any function exported from the Vulkan loader, including at least the
|
4102
|
-
* following functions:
|
4103
|
-
*
|
4104
|
-
* - `vkEnumerateInstanceExtensionProperties`
|
4105
|
-
* - `vkEnumerateInstanceLayerProperties`
|
4106
|
-
* - `vkCreateInstance`
|
4107
|
-
* - `vkGetInstanceProcAddr`
|
4108
|
-
*
|
4109
|
-
* If Vulkan is not available on the machine, this function returns `NULL` and
|
4110
|
-
* generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
|
4111
|
-
* to check whether Vulkan is available.
|
4112
|
-
*
|
4113
|
-
* This function is equivalent to calling `vkGetInstanceProcAddr` with
|
4114
|
-
* a platform-specific query of the Vulkan loader as a fallback.
|
4115
|
-
*
|
4116
|
-
* @param[in] instance The Vulkan instance to query, or `NULL` to retrieve
|
4117
|
-
* functions related to instance creation.
|
4118
|
-
* @param[in] procname The ASCII encoded name of the function.
|
4119
|
-
* @return The address of the function, or `NULL` if an
|
4120
|
-
* [error](@ref error_handling) occurred.
|
4121
|
-
*
|
4122
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
4123
|
-
* GLFW_API_UNAVAILABLE.
|
4124
|
-
*
|
4125
|
-
* @pointer_lifetime The returned function pointer is valid until the library
|
4126
|
-
* is terminated.
|
4127
|
-
*
|
4128
|
-
* @thread_safety This function may be called from any thread.
|
4129
|
-
*
|
4130
|
-
* @sa @ref vulkan_proc
|
4131
|
-
*
|
4132
|
-
* @since Added in version 3.2.
|
4133
|
-
*
|
4134
|
-
* @ingroup vulkan
|
4135
|
-
*/
|
4136
|
-
GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
|
4137
|
-
|
4138
|
-
/*! @brief Returns whether the specified queue family can present images.
|
4139
|
-
*
|
4140
|
-
* This function returns whether the specified queue family of the specified
|
4141
|
-
* physical device supports presentation to the platform GLFW was built for.
|
4142
|
-
*
|
4143
|
-
* If Vulkan or the required window surface creation instance extensions are
|
4144
|
-
* not available on the machine, or if the specified instance was not created
|
4145
|
-
* with the required extensions, this function returns `GLFW_FALSE` and
|
4146
|
-
* generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
|
4147
|
-
* to check whether Vulkan is available and @ref
|
4148
|
-
* glfwGetRequiredInstanceExtensions to check what instance extensions are
|
4149
|
-
* required.
|
4150
|
-
*
|
4151
|
-
* @param[in] instance The instance that the physical device belongs to.
|
4152
|
-
* @param[in] device The physical device that the queue family belongs to.
|
4153
|
-
* @param[in] queuefamily The index of the queue family to query.
|
4154
|
-
* @return `GLFW_TRUE` if the queue family supports presentation, or
|
4155
|
-
* `GLFW_FALSE` otherwise.
|
4156
|
-
*
|
4157
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
4158
|
-
* GLFW_API_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
|
4159
|
-
*
|
4160
|
-
* @thread_safety This function may be called from any thread. For
|
4161
|
-
* synchronization details of Vulkan objects, see the Vulkan specification.
|
4162
|
-
*
|
4163
|
-
* @sa @ref vulkan_present
|
4164
|
-
*
|
4165
|
-
* @since Added in version 3.2.
|
4166
|
-
*
|
4167
|
-
* @ingroup vulkan
|
4168
|
-
*/
|
4169
|
-
GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
|
4170
|
-
|
4171
|
-
/*! @brief Creates a Vulkan surface for the specified window.
|
4172
|
-
*
|
4173
|
-
* This function creates a Vulkan surface for the specified window.
|
4174
|
-
*
|
4175
|
-
* If the Vulkan loader was not found at initialization, this function returns
|
4176
|
-
* `VK_ERROR_INITIALIZATION_FAILED` and generates a @ref GLFW_API_UNAVAILABLE
|
4177
|
-
* error. Call @ref glfwVulkanSupported to check whether the Vulkan loader was
|
4178
|
-
* found.
|
4179
|
-
*
|
4180
|
-
* If the required window surface creation instance extensions are not
|
4181
|
-
* available or if the specified instance was not created with these extensions
|
4182
|
-
* enabled, this function returns `VK_ERROR_EXTENSION_NOT_PRESENT` and
|
4183
|
-
* generates a @ref GLFW_API_UNAVAILABLE error. Call @ref
|
4184
|
-
* glfwGetRequiredInstanceExtensions to check what instance extensions are
|
4185
|
-
* required.
|
4186
|
-
*
|
4187
|
-
* The window surface must be destroyed before the specified Vulkan instance.
|
4188
|
-
* It is the responsibility of the caller to destroy the window surface. GLFW
|
4189
|
-
* does not destroy it for you. Call `vkDestroySurfaceKHR` to destroy the
|
4190
|
-
* surface.
|
4191
|
-
*
|
4192
|
-
* @param[in] instance The Vulkan instance to create the surface in.
|
4193
|
-
* @param[in] window The window to create the surface for.
|
4194
|
-
* @param[in] allocator The allocator to use, or `NULL` to use the default
|
4195
|
-
* allocator.
|
4196
|
-
* @param[out] surface Where to store the handle of the surface. This is set
|
4197
|
-
* to `VK_NULL_HANDLE` if an error occurred.
|
4198
|
-
* @return `VK_SUCCESS` if successful, or a Vulkan error code if an
|
4199
|
-
* [error](@ref error_handling) occurred.
|
4200
|
-
*
|
4201
|
-
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
|
4202
|
-
* GLFW_API_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
|
4203
|
-
*
|
4204
|
-
* @remarks If an error occurs before the creation call is made, GLFW returns
|
4205
|
-
* the Vulkan error code most appropriate for the error. Appropriate use of
|
4206
|
-
* @ref glfwVulkanSupported and @ref glfwGetRequiredInstanceExtensions should
|
4207
|
-
* eliminate almost all occurrences of these errors.
|
4208
|
-
*
|
4209
|
-
* @thread_safety This function may be called from any thread. For
|
4210
|
-
* synchronization details of Vulkan objects, see the Vulkan specification.
|
4211
|
-
*
|
4212
|
-
* @sa @ref vulkan_surface
|
4213
|
-
* @sa glfwGetRequiredInstanceExtensions
|
4214
|
-
*
|
4215
|
-
* @since Added in version 3.2.
|
4216
|
-
*
|
4217
|
-
* @ingroup vulkan
|
4218
|
-
*/
|
4219
|
-
GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
|
4220
|
-
|
4221
|
-
#endif /*VK_VERSION_1_0*/
|
4222
|
-
|
4223
|
-
|
4224
|
-
/*************************************************************************
|
4225
|
-
* Global definition cleanup
|
4226
|
-
*************************************************************************/
|
4227
|
-
|
4228
|
-
/* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
|
4229
|
-
|
4230
|
-
#ifdef GLFW_WINGDIAPI_DEFINED
|
4231
|
-
#undef WINGDIAPI
|
4232
|
-
#undef GLFW_WINGDIAPI_DEFINED
|
4233
|
-
#endif
|
4234
|
-
|
4235
|
-
#ifdef GLFW_CALLBACK_DEFINED
|
4236
|
-
#undef CALLBACK
|
4237
|
-
#undef GLFW_CALLBACK_DEFINED
|
4238
|
-
#endif
|
4239
|
-
|
4240
|
-
/* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
|
4241
|
-
|
4242
|
-
|
4243
|
-
#ifdef __cplusplus
|
4244
|
-
}
|
4245
|
-
#endif
|
4246
|
-
|
4247
|
-
#endif /* _glfw3_h_ */
|
4248
|
-
|