1
1
# -*- coding: utf-8 -*-
2
- # A GLFW wrapper (for version 3.0 - 3.3 )
2
+ # A GLFW wrapper (for version 3.4 )
3
3
require 'fiddle/import'
4
4
5
5
module GLFW
@@ -217,17 +217,21 @@ module GLFW
217
217
GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER = 5 # Available since GLFW 3.3
218
218
GLFW_GAMEPAD_AXIS_LAST = GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER # Available since GLFW 3.3
219
219
220
- GLFW_NO_ERROR = 0 # Available since GLFW 3.3
221
- GLFW_NOT_INITIALIZED = 0x00010001
222
- GLFW_NO_CURRENT_CONTEXT = 0x00010002
223
- GLFW_INVALID_ENUM = 0x00010003
224
- GLFW_INVALID_VALUE = 0x00010004
225
- GLFW_OUT_OF_MEMORY = 0x00010005
226
- GLFW_API_UNAVAILABLE = 0x00010006
227
- GLFW_VERSION_UNAVAILABLE = 0x00010007
228
- GLFW_PLATFORM_ERROR = 0x00010008
229
- GLFW_FORMAT_UNAVAILABLE = 0x00010009
230
- GLFW_NO_WINDOW_CONTEXT = 0x0001000A # Available since GLFW 3.2
220
+ GLFW_NO_ERROR = 0 # Available since GLFW 3.3
221
+ GLFW_NOT_INITIALIZED = 0x00010001
222
+ GLFW_NO_CURRENT_CONTEXT = 0x00010002
223
+ GLFW_INVALID_ENUM = 0x00010003
224
+ GLFW_INVALID_VALUE = 0x00010004
225
+ GLFW_OUT_OF_MEMORY = 0x00010005
226
+ GLFW_API_UNAVAILABLE = 0x00010006
227
+ GLFW_VERSION_UNAVAILABLE = 0x00010007
228
+ GLFW_PLATFORM_ERROR = 0x00010008
229
+ GLFW_FORMAT_UNAVAILABLE = 0x00010009
230
+ GLFW_NO_WINDOW_CONTEXT = 0x0001000A # Available since GLFW 3.2
231
+ GLFW_CURSOR_UNAVAILABLE = 0x0001000B # Available since GLFW 3.4
232
+ GLFW_FEATURE_UNAVAILABLE = 0x0001000C # Available since GLFW 3.4
233
+ GLFW_FEATURE_UNIMPLEMENTED = 0x0001000D # Available since GLFW 3.4
234
+ GLFW_PLATFORM_UNAVAILABLE = 0x0001000E # Available since GLFW 3.4
231
235
232
236
GLFW_FOCUSED = 0x00020001
233
237
GLFW_ICONIFIED = 0x00020002
@@ -241,6 +245,9 @@ module GLFW
241
245
GLFW_TRANSPARENT_FRAMEBUFFER = 0x0002000A # Available since GLFW 3.3
242
246
GLFW_HOVERED = 0x0002000B # Available since GLFW 3.3
243
247
GLFW_FOCUS_ON_SHOW = 0x0002000C # Available since GLFW 3.3
248
+ GLFW_MOUSE_PASSTHROUGH = 0x0002000D # Available since GLFW 3.4
249
+ GLFW_POSITION_X = 0x0002000E # Available since GLFW 3.4
250
+ GLFW_POSITION_Y = 0x0002000F # Available since GLFW 3.4
244
251
245
252
GLFW_RED_BITS = 0x00021001
246
253
GLFW_GREEN_BITS = 0x00021002
@@ -265,19 +272,24 @@ module GLFW
265
272
GLFW_CONTEXT_REVISION = 0x00022004
266
273
GLFW_CONTEXT_ROBUSTNESS = 0x00022005
267
274
GLFW_OPENGL_FORWARD_COMPAT = 0x00022006
268
- GLFW_OPENGL_DEBUG_CONTEXT = 0x00022007
275
+ GLFW_CONTEXT_DEBUG = 0x00022007 # Renamed from GLFW_OPENGL_DEBUG_CONTEXT since GLFW 3.4
276
+ GLFW_OPENGL_DEBUG_CONTEXT = GLFW_CONTEXT_DEBUG # Legacy name for compatibility added since GLFW 3.4
269
277
GLFW_OPENGL_PROFILE = 0x00022008
270
278
GLFW_CONTEXT_RELEASE_BEHAVIOR = 0x00022009
271
279
GLFW_CONTEXT_NO_ERROR = 0x0002200A
272
280
GLFW_CONTEXT_CREATION_API = 0x0002200B # Available since GLFW 3.2
273
281
GLFW_SCALE_TO_MONITOR = 0x0002200C # Available since GLFW 3.3
282
+ GLFW_SCALE_FRAMEBUFFER = 0x0002200D # Available since GLFW 3.4
274
283
275
284
GLFW_COCOA_RETINA_FRAMEBUFFER = 0x00023001 # Available since GLFW 3.3
276
285
GLFW_COCOA_FRAME_NAME = 0x00023002 # Available since GLFW 3.3
277
286
GLFW_COCOA_GRAPHICS_SWITCHING = 0x00023003 # Available since GLFW 3.3
278
287
279
288
GLFW_X11_CLASS_NAME = 0x00024001 # Available since GLFW 3.3
280
289
GLFW_X11_INSTANCE_NAME = 0x00024002 # Available since GLFW 3.3
290
+ GLFW_WIN32_KEYBOARD_MENU = 0x00025001 # Available since GLFW 3.4
291
+ GLFW_WIN32_SHOWDEFAULT = 0x00025002 # Available since GLFW 3.4
292
+ GLFW_WAYLAND_APP_ID = 0x00026001 # Available since GLFW 3.4
281
293
282
294
GLFW_NO_API = 0 # Available since GLFW 3.2
283
295
GLFW_OPENGL_API = 0x00030001
@@ -300,6 +312,7 @@ module GLFW
300
312
GLFW_CURSOR_NORMAL = 0x00034001
301
313
GLFW_CURSOR_HIDDEN = 0x00034002
302
314
GLFW_CURSOR_DISABLED = 0x00034003
315
+ GLFW_CURSOR_CAPTURED = 0x00034004 # Available since GLFW 3.4
303
316
304
317
GLFW_ANY_RELEASE_BEHAVIOR = 0
305
318
GLFW_RELEASE_BEHAVIOR_FLUSH = 0x00035001
@@ -309,26 +322,56 @@ module GLFW
309
322
GLFW_EGL_CONTEXT_API = 0x00036002 # Available since GLFW 3.2
310
323
GLFW_OSMESA_CONTEXT_API = 0x00036003 # Available since GLFW 3.3
311
324
325
+ GLFW_ANGLE_PLATFORM_TYPE_NONE = 0x00037001 # Available since GLFW 3.4
326
+ GLFW_ANGLE_PLATFORM_TYPE_OPENGL = 0x00037002 # Available since GLFW 3.4
327
+ GLFW_ANGLE_PLATFORM_TYPE_OPENGLES = 0x00037003 # Available since GLFW 3.4
328
+ GLFW_ANGLE_PLATFORM_TYPE_D3D9 = 0x00037004 # Available since GLFW 3.4
329
+ GLFW_ANGLE_PLATFORM_TYPE_D3D11 = 0x00037005 # Available since GLFW 3.4
330
+ GLFW_ANGLE_PLATFORM_TYPE_VULKAN = 0x00037007 # Available since GLFW 3.4
331
+ GLFW_ANGLE_PLATFORM_TYPE_METAL = 0x00037008 # Available since GLFW 3.4
332
+
312
333
GLFW_WAYLAND_PREFER_LIBDECOR = 0x00038001 # Available since GLFW 3.3.9
313
334
GLFW_WAYLAND_DISABLE_LIBDECOR = 0x00038002 # Available since GLFW 3.3.9
314
335
315
- GLFW_ARROW_CURSOR = 0x00036001
316
- GLFW_IBEAM_CURSOR = 0x00036002
317
- GLFW_CROSSHAIR_CURSOR = 0x00036003
318
- GLFW_HAND_CURSOR = 0x00036004
319
- GLFW_HRESIZE_CURSOR = 0x00036005
320
- GLFW_VRESIZE_CURSOR = 0x00036006
336
+ GLFW_ANY_POSITION = 0x80000000 # Available since GLFW 3.4
337
+
338
+ GLFW_ARROW_CURSOR = 0x00036001
339
+ GLFW_IBEAM_CURSOR = 0x00036002
340
+ GLFW_CROSSHAIR_CURSOR = 0x00036003
341
+ GLFW_POINTING_HAND_CURSOR = 0x00036004 # Renamed from GLFW_HAND_CURSOR since GLFW 3.4
342
+ GLFW_RESIZE_EW_CURSOR = 0x00036005 # Renamed from GLFW_HRESIZE_CURSOR since GLFW 3.4
343
+ GLFW_RESIZE_NS_CURSOR = 0x00036006 # Renamed from GLFW_VRESIZE_CURSOR since GLFW 3.4
344
+ GLFW_RESIZE_NWSE_CURSOR = 0x00036007 # Available since GLFW 3.4
345
+ GLFW_RESIZE_NESW_CURSOR = 0x00036008 # Available since GLFW 3.4
346
+ GLFW_RESIZE_ALL_CURSOR = 0x00036009 # Available since GLFW 3.4
347
+ GLFW_NOT_ALLOWED_CURSOR = 0x0003600A # Available since GLFW 3.4
348
+
349
+ GLFW_HRESIZE_CURSOR = GLFW_RESIZE_EW_CURSOR # Legacy name for compatibility added since GLFW 3.4
350
+ GLFW_VRESIZE_CURSOR = GLFW_RESIZE_NS_CURSOR # Legacy name for compatibility added since GLFW 3.4
351
+ GLFW_HAND_CURSOR = GLFW_POINTING_HAND_CURSOR # Legacy name for compatibility added since GLFW 3.4
321
352
322
353
GLFW_CONNECTED = 0x00040001
323
354
GLFW_DISCONNECTED = 0x00040002
324
355
325
356
GLFW_JOYSTICK_HAT_BUTTONS = 0x00050001 # Available since GLFW 3.3
357
+ GLFW_ANGLE_PLATFORM_TYPE = 0x00050002 # Available since GLFW 3.4
358
+ GLFW_PLATFORM = 0x00050003 # Available since GLFW 3.4
359
+
326
360
327
361
GLFW_COCOA_CHDIR_RESOURCES = 0x00051001 # Available since GLFW 3.3
328
362
GLFW_COCOA_MENUBAR = 0x00051002 # Available since GLFW 3.3
329
363
364
+ GLFW_X11_XCB_VULKAN_SURFACE = 0x00052001 # Available since GLFW 3.4
365
+
330
366
GLFW_WAYLAND_LIBDECOR = 0x00053001 # Available since GLFW 3.3.9
331
367
368
+ GLFW_ANY_PLATFORM = 0x00060000 # Available since GLFW 3.4
369
+ GLFW_PLATFORM_WIN32 = 0x00060001 # Available since GLFW 3.4
370
+ GLFW_PLATFORM_COCOA = 0x00060002 # Available since GLFW 3.4
371
+ GLFW_PLATFORM_WAYLAND = 0x00060003 # Available since GLFW 3.4
372
+ GLFW_PLATFORM_X11 = 0x00060004 # Available since GLFW 3.4
373
+ GLFW_PLATFORM_NULL = 0x00060005 # Available since GLFW 3.4
374
+
332
375
GLFW_DONT_CARE = -1
333
376
334
377
# typedefs
@@ -441,6 +484,10 @@ def self.create_callback(sym, proc=nil, &blk)
441
484
return self . create_callback_closure ( sym , proc , &blk )
442
485
end
443
486
487
+ # NOTE : Memory allocation callbacks addin in GLFW 3.4
488
+ # (GLFWallocatefun, GLFWreallocatefun, GLFWdeallocatefun and struct GLFWallocator)
489
+ # will not be supported in this bindings.
490
+
444
491
# struct
445
492
GLFWvidmode = struct ( [ "int width" ,
446
493
"int height" ,
@@ -491,6 +538,8 @@ def self.load_lib(lib_path = nil, output_error = false)
491
538
'const char* glfwGetVersionString()' ,
492
539
'int glfwGetError(const char**)' , # Available since GLFW 3.3
493
540
'void* glfwSetErrorCallback(void*)' ,
541
+ 'int glfwGetPlatform()' , # Available since GLFW 3.4
542
+ 'int glfwPlatformSupported(int)' , # Available since GLFW 3.4
494
543
'void** glfwGetMonitors(int*)' ,
495
544
'void* glfwGetPrimaryMonitor()' ,
496
545
'void glfwGetMonitorPos(void*, int*, int*)' ,
@@ -512,7 +561,8 @@ def self.load_lib(lib_path = nil, output_error = false)
512
561
'void* glfwCreateWindow(int, int, const char*, void*, void*)' , # Available since GLFW 3.0
513
562
'void glfwDestroyWindow(void*)' , # Available since GLFW 3.0
514
563
'int glfwWindowShouldClose(void*)' , # Available since GLFW 3.0
515
- 'void glfwSetWindowShouldClose(void* window, int)' , # Available since GLFW 3.0
564
+ 'void glfwSetWindowShouldClose(void*, int)' , # Available since GLFW 3.0
565
+ 'const char* glfwGetWindowTitle(void*)' , # Available since GLFW 3.4
516
566
'void glfwSetWindowTitle(void*, const char*)' ,
517
567
'void glfwSetWindowIcon(void*, int, void*)' , # Available since GLFW 3.2
518
568
'void glfwGetWindowPos(void*, int*, int*)' , # Available since GLFW 3.0
@@ -605,7 +655,11 @@ def self.load_lib(lib_path = nil, output_error = false)
605
655
# 'GLFWvkproc glfwGetInstanceProcAddress(void*, const char*)',
606
656
# 'int glfwGetPhysicalDevicePresentationSupport(void*, void*, unsigned int)',
607
657
# 'VkResult glfwCreateWindowSurface(void*, void*, const void*, void*)',
658
+ # 'void glfwInitVulkanLoader(void*)',
608
659
# <<< Vulkan <<<
660
+ # >>> Allocator >>>
661
+ # 'void glfwInitAllocator(void*)',
662
+ # <<< Allocator <<<
609
663
]
610
664
611
665
case GL . get_platform
0 commit comments