Module: GLFW

Extended by:
Fiddle::Importer
Defined in:
lib/glfw.rb,
lib/glfw33.rb

Constant Summary collapse

GLFW_TRUE =

defines

1
GLFW_FALSE =

Available since GLFW 3.2

0
GLFW_RELEASE =

Available since GLFW 3.2

0
GLFW_PRESS =
1
GLFW_REPEAT =
2
GLFW_HAT_CENTERED =

Available since GLFW 3.3

0
GLFW_HAT_UP =

Available since GLFW 3.3

1
GLFW_HAT_RIGHT =

Available since GLFW 3.3

2
GLFW_HAT_DOWN =

Available since GLFW 3.3

4
GLFW_HAT_LEFT =

Available since GLFW 3.3

8
GLFW_HAT_RIGHT_UP =

Available since GLFW 3.3

(GLFW_HAT_RIGHT | GLFW_HAT_UP)
GLFW_HAT_RIGHT_DOWN =

Available since GLFW 3.3

(GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
GLFW_HAT_LEFT_UP =

Available since GLFW 3.3

(GLFW_HAT_LEFT  | GLFW_HAT_UP)
GLFW_HAT_LEFT_DOWN =

Available since GLFW 3.3

(GLFW_HAT_LEFT  | GLFW_HAT_DOWN)
GLFW_KEY_UNKNOWN =
-1
GLFW_KEY_SPACE =
32
GLFW_KEY_APOSTROPHE =

39
GLFW_KEY_COMMA =

,

44
GLFW_KEY_MINUS =

-

45
GLFW_KEY_PERIOD =

.

46
GLFW_KEY_SLASH =

/

47
GLFW_KEY_0 =
48
GLFW_KEY_1 =
49
GLFW_KEY_2 =
50
GLFW_KEY_3 =
51
GLFW_KEY_4 =
52
GLFW_KEY_5 =
53
GLFW_KEY_6 =
54
GLFW_KEY_7 =
55
GLFW_KEY_8 =
56
GLFW_KEY_9 =
57
GLFW_KEY_SEMICOLON =

;

59
GLFW_KEY_EQUAL =

61
GLFW_KEY_A =
65
GLFW_KEY_B =
66
GLFW_KEY_C =
67
GLFW_KEY_D =
68
GLFW_KEY_E =
69
GLFW_KEY_F =
70
GLFW_KEY_G =
71
GLFW_KEY_H =
72
GLFW_KEY_I =
73
GLFW_KEY_J =
74
GLFW_KEY_K =
75
GLFW_KEY_L =
76
GLFW_KEY_M =
77
GLFW_KEY_N =
78
GLFW_KEY_O =
79
GLFW_KEY_P =
80
GLFW_KEY_Q =
81
GLFW_KEY_R =
82
GLFW_KEY_S =
83
GLFW_KEY_T =
84
GLFW_KEY_U =
85
GLFW_KEY_V =
86
GLFW_KEY_W =
87
GLFW_KEY_X =
88
GLFW_KEY_Y =
89
GLFW_KEY_Z =
90
GLFW_KEY_LEFT_BRACKET =

[

91
GLFW_KEY_BACKSLASH =

\

92
GLFW_KEY_RIGHT_BRACKET =

]

93
GLFW_KEY_GRAVE_ACCENT =

96
GLFW_KEY_WORLD_1 =

non-US #1

161
GLFW_KEY_WORLD_2 =

non-US #2

162
GLFW_KEY_ESCAPE =
256
GLFW_KEY_ENTER =
257
GLFW_KEY_TAB =
258
GLFW_KEY_BACKSPACE =
259
GLFW_KEY_INSERT =
260
GLFW_KEY_DELETE =
261
GLFW_KEY_RIGHT =
262
GLFW_KEY_LEFT =
263
GLFW_KEY_DOWN =
264
GLFW_KEY_UP =
265
GLFW_KEY_PAGE_UP =
266
GLFW_KEY_PAGE_DOWN =
267
GLFW_KEY_HOME =
268
GLFW_KEY_END =
269
GLFW_KEY_CAPS_LOCK =
280
GLFW_KEY_SCROLL_LOCK =
281
GLFW_KEY_NUM_LOCK =
282
GLFW_KEY_PRINT_SCREEN =
283
GLFW_KEY_PAUSE =
284
GLFW_KEY_F1 =
290
GLFW_KEY_F2 =
291
GLFW_KEY_F3 =
292
GLFW_KEY_F4 =
293
GLFW_KEY_F5 =
294
GLFW_KEY_F6 =
295
GLFW_KEY_F7 =
296
GLFW_KEY_F8 =
297
GLFW_KEY_F9 =
298
GLFW_KEY_F10 =
299
GLFW_KEY_F11 =
300
GLFW_KEY_F12 =
301
GLFW_KEY_F13 =
302
GLFW_KEY_F14 =
303
GLFW_KEY_F15 =
304
GLFW_KEY_F16 =
305
GLFW_KEY_F17 =
306
GLFW_KEY_F18 =
307
GLFW_KEY_F19 =
308
GLFW_KEY_F20 =
309
GLFW_KEY_F21 =
310
GLFW_KEY_F22 =
311
GLFW_KEY_F23 =
312
GLFW_KEY_F24 =
313
GLFW_KEY_F25 =
314
GLFW_KEY_KP_0 =
320
GLFW_KEY_KP_1 =
321
GLFW_KEY_KP_2 =
322
GLFW_KEY_KP_3 =
323
GLFW_KEY_KP_4 =
324
GLFW_KEY_KP_5 =
325
GLFW_KEY_KP_6 =
326
GLFW_KEY_KP_7 =
327
GLFW_KEY_KP_8 =
328
GLFW_KEY_KP_9 =
329
GLFW_KEY_KP_DECIMAL =
330
GLFW_KEY_KP_DIVIDE =
331
GLFW_KEY_KP_MULTIPLY =
332
GLFW_KEY_KP_SUBTRACT =
333
GLFW_KEY_KP_ADD =
334
GLFW_KEY_KP_ENTER =
335
GLFW_KEY_KP_EQUAL =
336
GLFW_KEY_LEFT_SHIFT =
340
GLFW_KEY_LEFT_CONTROL =
341
GLFW_KEY_LEFT_ALT =
342
GLFW_KEY_LEFT_SUPER =
343
GLFW_KEY_RIGHT_SHIFT =
344
GLFW_KEY_RIGHT_CONTROL =
345
GLFW_KEY_RIGHT_ALT =
346
GLFW_KEY_RIGHT_SUPER =
347
GLFW_KEY_MENU =
348
GLFW_KEY_LAST =
GLFW_KEY_MENU
GLFW_MOD_SHIFT =
0x0001
GLFW_MOD_CONTROL =
0x0002
GLFW_MOD_ALT =
0x0004
GLFW_MOD_SUPER =
0x0008
GLFW_MOD_CAPS_LOCK =

Available since GLFW 3.3

0x0010
GLFW_MOD_NUM_LOCK =

Available since GLFW 3.3

0x0020
GLFW_MOUSE_BUTTON_1 =
0
GLFW_MOUSE_BUTTON_2 =
1
GLFW_MOUSE_BUTTON_3 =
2
GLFW_MOUSE_BUTTON_4 =
3
GLFW_MOUSE_BUTTON_5 =
4
GLFW_MOUSE_BUTTON_6 =
5
GLFW_MOUSE_BUTTON_7 =
6
GLFW_MOUSE_BUTTON_8 =
7
GLFW_MOUSE_BUTTON_LAST =
GLFW_MOUSE_BUTTON_8
GLFW_MOUSE_BUTTON_LEFT =
GLFW_MOUSE_BUTTON_1
GLFW_MOUSE_BUTTON_RIGHT =
GLFW_MOUSE_BUTTON_2
GLFW_MOUSE_BUTTON_MIDDLE =
GLFW_MOUSE_BUTTON_3
GLFW_JOYSTICK_1 =
0
GLFW_JOYSTICK_2 =
1
GLFW_JOYSTICK_3 =
2
GLFW_JOYSTICK_4 =
3
GLFW_JOYSTICK_5 =
4
GLFW_JOYSTICK_6 =
5
GLFW_JOYSTICK_7 =
6
GLFW_JOYSTICK_8 =
7
GLFW_JOYSTICK_9 =
8
GLFW_JOYSTICK_10 =
9
GLFW_JOYSTICK_11 =
10
GLFW_JOYSTICK_12 =
11
GLFW_JOYSTICK_13 =
12
GLFW_JOYSTICK_14 =
13
GLFW_JOYSTICK_15 =
14
GLFW_JOYSTICK_16 =
15
GLFW_JOYSTICK_LAST =
GLFW_JOYSTICK_16
GLFW_GAMEPAD_BUTTON_A =

Available since GLFW 3.3

0
GLFW_GAMEPAD_BUTTON_B =

Available since GLFW 3.3

1
GLFW_GAMEPAD_BUTTON_X =

Available since GLFW 3.3

2
GLFW_GAMEPAD_BUTTON_Y =

Available since GLFW 3.3

3
GLFW_GAMEPAD_BUTTON_LEFT_BUMPER =

Available since GLFW 3.3

4
GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER =

Available since GLFW 3.3

5
GLFW_GAMEPAD_BUTTON_BACK =

Available since GLFW 3.3

6
GLFW_GAMEPAD_BUTTON_START =

Available since GLFW 3.3

7
GLFW_GAMEPAD_BUTTON_GUIDE =

Available since GLFW 3.3

8
GLFW_GAMEPAD_BUTTON_LEFT_THUMB =

Available since GLFW 3.3

9
GLFW_GAMEPAD_BUTTON_RIGHT_THUMB =

Available since GLFW 3.3

10
GLFW_GAMEPAD_BUTTON_DPAD_UP =

Available since GLFW 3.3

11
GLFW_GAMEPAD_BUTTON_DPAD_RIGHT =

Available since GLFW 3.3

12
GLFW_GAMEPAD_BUTTON_DPAD_DOWN =

Available since GLFW 3.3

13
GLFW_GAMEPAD_BUTTON_DPAD_LEFT =

Available since GLFW 3.3

14
GLFW_GAMEPAD_BUTTON_LAST =

Available since GLFW 3.3

GLFW_GAMEPAD_BUTTON_DPAD_LEFT
GLFW_GAMEPAD_BUTTON_CROSS =

Available since GLFW 3.3

GLFW_GAMEPAD_BUTTON_A
GLFW_GAMEPAD_BUTTON_CIRCLE =

Available since GLFW 3.3

GLFW_GAMEPAD_BUTTON_B
GLFW_GAMEPAD_BUTTON_SQUARE =

Available since GLFW 3.3

GLFW_GAMEPAD_BUTTON_X
GLFW_GAMEPAD_BUTTON_TRIANGLE =

Available since GLFW 3.3

GLFW_GAMEPAD_BUTTON_Y
GLFW_GAMEPAD_AXIS_LEFT_X =

Available since GLFW 3.3

0
GLFW_GAMEPAD_AXIS_LEFT_Y =

Available since GLFW 3.3

1
GLFW_GAMEPAD_AXIS_RIGHT_X =

Available since GLFW 3.3

2
GLFW_GAMEPAD_AXIS_RIGHT_Y =

Available since GLFW 3.3

3
GLFW_GAMEPAD_AXIS_LEFT_TRIGGER =

Available since GLFW 3.3

4
GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER =

Available since GLFW 3.3

5
GLFW_GAMEPAD_AXIS_LAST =

Available since GLFW 3.3

GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
GLFW_NO_ERROR =

Available since GLFW 3.3

0
GLFW_NOT_INITIALIZED =
0x00010001
GLFW_NO_CURRENT_CONTEXT =
0x00010002
GLFW_INVALID_ENUM =
0x00010003
GLFW_INVALID_VALUE =
0x00010004
GLFW_OUT_OF_MEMORY =
0x00010005
GLFW_API_UNAVAILABLE =
0x00010006
GLFW_VERSION_UNAVAILABLE =
0x00010007
GLFW_PLATFORM_ERROR =
0x00010008
GLFW_FORMAT_UNAVAILABLE =
0x00010009
GLFW_NO_WINDOW_CONTEXT =

Available since GLFW 3.2

0x0001000A
GLFW_CURSOR_UNAVAILABLE =

Available since GLFW 3.4

0x0001000B
GLFW_FEATURE_UNAVAILABLE =

Available since GLFW 3.4

0x0001000C
GLFW_FEATURE_UNIMPLEMENTED =

Available since GLFW 3.4

0x0001000D
GLFW_PLATFORM_UNAVAILABLE =

Available since GLFW 3.4

0x0001000E
GLFW_FOCUSED =
0x00020001
GLFW_ICONIFIED =
0x00020002
GLFW_RESIZABLE =
0x00020003
GLFW_VISIBLE =
0x00020004
GLFW_DECORATED =
0x00020005
GLFW_AUTO_ICONIFY =

Available since GLFW 3.1

0x00020006
GLFW_FLOATING =

Available since GLFW 3.1

0x00020007
GLFW_MAXIMIZED =

Available since GLFW 3.2

0x00020008
GLFW_CENTER_CURSOR =

Available since GLFW 3.3

0x00020009
GLFW_TRANSPARENT_FRAMEBUFFER =

Available since GLFW 3.3

0x0002000A
GLFW_HOVERED =

Available since GLFW 3.3

0x0002000B
GLFW_FOCUS_ON_SHOW =

Available since GLFW 3.3

0x0002000C
GLFW_MOUSE_PASSTHROUGH =

Available since GLFW 3.4

0x0002000D
GLFW_POSITION_X =

Available since GLFW 3.4

0x0002000E
GLFW_POSITION_Y =

Available since GLFW 3.4

0x0002000F
GLFW_RED_BITS =
0x00021001
GLFW_GREEN_BITS =
0x00021002
GLFW_BLUE_BITS =
0x00021003
GLFW_ALPHA_BITS =
0x00021004
GLFW_DEPTH_BITS =
0x00021005
GLFW_STENCIL_BITS =
0x00021006
GLFW_ACCUM_RED_BITS =
0x00021007
GLFW_ACCUM_GREEN_BITS =
0x00021008
GLFW_ACCUM_BLUE_BITS =
0x00021009
GLFW_ACCUM_ALPHA_BITS =
0x0002100A
GLFW_AUX_BUFFERS =
0x0002100B
GLFW_STEREO =
0x0002100C
GLFW_SAMPLES =
0x0002100D
GLFW_SRGB_CAPABLE =
0x0002100E
GLFW_REFRESH_RATE =
0x0002100F
GLFW_DOUBLEBUFFER =
0x00021010
GLFW_CLIENT_API =
0x00022001
GLFW_CONTEXT_VERSION_MAJOR =
0x00022002
GLFW_CONTEXT_VERSION_MINOR =
0x00022003
GLFW_CONTEXT_REVISION =
0x00022004
GLFW_CONTEXT_ROBUSTNESS =
0x00022005
GLFW_OPENGL_FORWARD_COMPAT =
0x00022006
GLFW_CONTEXT_DEBUG =

Renamed from GLFW_OPENGL_DEBUG_CONTEXT since GLFW 3.4

0x00022007
GLFW_OPENGL_DEBUG_CONTEXT =

Legacy name for compatibility added since GLFW 3.4

0x00022007
GLFW_OPENGL_PROFILE =
0x00022008
GLFW_CONTEXT_RELEASE_BEHAVIOR =
0x00022009
GLFW_CONTEXT_NO_ERROR =
0x0002200A
GLFW_CONTEXT_CREATION_API =

Available since GLFW 3.2

0x0002200B
GLFW_SCALE_TO_MONITOR =

Available since GLFW 3.3

0x0002200C
GLFW_SCALE_FRAMEBUFFER =

Available since GLFW 3.4

0x0002200D
GLFW_COCOA_RETINA_FRAMEBUFFER =

Available since GLFW 3.3

0x00023001
GLFW_COCOA_FRAME_NAME =

Available since GLFW 3.3

0x00023002
GLFW_COCOA_GRAPHICS_SWITCHING =

Available since GLFW 3.3

0x00023003
GLFW_X11_CLASS_NAME =

Available since GLFW 3.3

0x00024001
GLFW_X11_INSTANCE_NAME =

Available since GLFW 3.3

0x00024002
GLFW_WIN32_KEYBOARD_MENU =

Available since GLFW 3.4

0x00025001
GLFW_WIN32_SHOWDEFAULT =

Available since GLFW 3.4

0x00025002
GLFW_WAYLAND_APP_ID =

Available since GLFW 3.4

0x00026001
GLFW_NO_API =

Available since GLFW 3.2

0
GLFW_OPENGL_API =
0x00030001
GLFW_OPENGL_ES_API =
0x00030002
GLFW_NO_ROBUSTNESS =
0
GLFW_NO_RESET_NOTIFICATION =
0x00031001
GLFW_LOSE_CONTEXT_ON_RESET =
0x00031002
GLFW_OPENGL_ANY_PROFILE =
0
GLFW_OPENGL_CORE_PROFILE =
0x00032001
GLFW_OPENGL_COMPAT_PROFILE =
0x00032002
GLFW_CURSOR =
0x00033001
GLFW_STICKY_KEYS =
0x00033002
GLFW_STICKY_MOUSE_BUTTONS =
0x00033003
GLFW_LOCK_KEY_MODS =

Available since GLFW 3.3

0x00033004
GLFW_RAW_MOUSE_MOTION =

Available since GLFW 3.3

0x00033005
GLFW_CURSOR_NORMAL =
0x00034001
GLFW_CURSOR_HIDDEN =
0x00034002
GLFW_CURSOR_DISABLED =
0x00034003
GLFW_CURSOR_CAPTURED =

Available since GLFW 3.4

0x00034004
GLFW_ANY_RELEASE_BEHAVIOR =
0
GLFW_RELEASE_BEHAVIOR_FLUSH =
0x00035001
GLFW_RELEASE_BEHAVIOR_NONE =
0x00035002
GLFW_NATIVE_CONTEXT_API =

Available since GLFW 3.2

0x00036001
GLFW_EGL_CONTEXT_API =

Available since GLFW 3.2

0x00036002
GLFW_OSMESA_CONTEXT_API =

Available since GLFW 3.3

0x00036003
GLFW_ANGLE_PLATFORM_TYPE_NONE =

Available since GLFW 3.4

0x00037001
GLFW_ANGLE_PLATFORM_TYPE_OPENGL =

Available since GLFW 3.4

0x00037002
GLFW_ANGLE_PLATFORM_TYPE_OPENGLES =

Available since GLFW 3.4

0x00037003
GLFW_ANGLE_PLATFORM_TYPE_D3D9 =

Available since GLFW 3.4

0x00037004
GLFW_ANGLE_PLATFORM_TYPE_D3D11 =

Available since GLFW 3.4

0x00037005
GLFW_ANGLE_PLATFORM_TYPE_VULKAN =

Available since GLFW 3.4

0x00037007
GLFW_ANGLE_PLATFORM_TYPE_METAL =

Available since GLFW 3.4

0x00037008
GLFW_WAYLAND_PREFER_LIBDECOR =

Available since GLFW 3.3.9

0x00038001
GLFW_WAYLAND_DISABLE_LIBDECOR =

Available since GLFW 3.3.9

0x00038002
GLFW_ANY_POSITION =

Available since GLFW 3.4

0x80000000
GLFW_ARROW_CURSOR =
0x00036001
GLFW_IBEAM_CURSOR =
0x00036002
GLFW_CROSSHAIR_CURSOR =
0x00036003
GLFW_POINTING_HAND_CURSOR =

Renamed from GLFW_HAND_CURSOR since GLFW 3.4

0x00036004
GLFW_RESIZE_EW_CURSOR =

Renamed from GLFW_HRESIZE_CURSOR since GLFW 3.4

0x00036005
GLFW_RESIZE_NS_CURSOR =

Renamed from GLFW_VRESIZE_CURSOR since GLFW 3.4

0x00036006
GLFW_RESIZE_NWSE_CURSOR =

Available since GLFW 3.4

0x00036007
GLFW_RESIZE_NESW_CURSOR =

Available since GLFW 3.4

0x00036008
GLFW_RESIZE_ALL_CURSOR =

Available since GLFW 3.4

0x00036009
GLFW_NOT_ALLOWED_CURSOR =

Available since GLFW 3.4

0x0003600A
GLFW_HRESIZE_CURSOR =

Legacy name for compatibility added since GLFW 3.4

0x00036005
GLFW_VRESIZE_CURSOR =

Legacy name for compatibility added since GLFW 3.4

0x00036006
GLFW_HAND_CURSOR =

Legacy name for compatibility added since GLFW 3.4

0x00036004
GLFW_CONNECTED =
0x00040001
GLFW_DISCONNECTED =
0x00040002
GLFW_JOYSTICK_HAT_BUTTONS =

Available since GLFW 3.3

0x00050001
GLFW_ANGLE_PLATFORM_TYPE =

Available since GLFW 3.4

0x00050002
GLFW_PLATFORM =

Available since GLFW 3.4

0x00050003
GLFW_COCOA_CHDIR_RESOURCES =

Available since GLFW 3.3

0x00051001
GLFW_COCOA_MENUBAR =

Available since GLFW 3.3

0x00051002
GLFW_X11_XCB_VULKAN_SURFACE =

Available since GLFW 3.4

0x00052001
GLFW_WAYLAND_LIBDECOR =

Available since GLFW 3.3.9

0x00053001
GLFW_ANY_PLATFORM =

Available since GLFW 3.4

0x00060000
GLFW_PLATFORM_WIN32 =

Available since GLFW 3.4

0x00060001
GLFW_PLATFORM_COCOA =

Available since GLFW 3.4

0x00060002
GLFW_PLATFORM_WAYLAND =

Available since GLFW 3.4

0x00060003
GLFW_PLATFORM_X11 =

Available since GLFW 3.4

0x00060004
GLFW_PLATFORM_NULL =

Available since GLFW 3.4

0x00060005
GLFW_DONT_CARE =
-1
GLFWerrorfun_cb_args =
[Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
GLFWerrorfun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowposfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWwindowposfun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowsizefun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWwindowsizefun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowclosefun_cb_args =
[Fiddle::TYPE_VOIDP]
GLFWwindowclosefun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowrefreshfun_cb_args =
[Fiddle::TYPE_VOIDP]
GLFWwindowrefreshfun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowfocusfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
GLFWwindowfocusfun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowiconifyfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
GLFWwindowiconifyfun_cb_retval =
Fiddle::TYPE_VOID
GLFWframebuffersizefun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWframebuffersizefun_cb_retval =
Fiddle::TYPE_VOID
GLFWwindowcontentscalefun_cb_args =

Available since GLFW 3.3

[Fiddle::TYPE_VOIDP, Fiddle::TYPE_FLOAT, Fiddle::TYPE_FLOAT]
GLFWwindowcontentscalefun_cb_retval =

Available since GLFW 3.3

Fiddle::TYPE_VOID
GLFWmousebuttonfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWmousebuttonfun_cb_retval =
Fiddle::TYPE_VOID
GLFWcursorposfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_DOUBLE, Fiddle::TYPE_DOUBLE]
GLFWcursorposfun_cb_retval =
Fiddle::TYPE_VOID
GLFWcursorenterfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
GLFWcursorenterfun_cb_retval =
Fiddle::TYPE_VOID
GLFWscrollfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_DOUBLE, Fiddle::TYPE_DOUBLE]
GLFWscrollfun_cb_retval =
Fiddle::TYPE_VOID
GLFWkeyfun_cb_args =
[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWkeyfun_cb_retval =
Fiddle::TYPE_VOID
GLFWcharfun_cb_args =
[Fiddle::TYPE_VOIDP, -Fiddle::TYPE_INT]
GLFWcharfun_cb_retval =
Fiddle::TYPE_VOID
GLFWcharmodsfun_cb_args =

Available since GLFW 3.1

[Fiddle::TYPE_VOIDP, -Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWcharmodsfun_cb_retval =

Available since GLFW 3.1

Fiddle::TYPE_VOID
GLFWdropfun_cb_args =

Available since GLFW 3.1

[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP]
GLFWdropfun_cb_retval =

Available since GLFW 3.1

Fiddle::TYPE_VOID
GLFWmonitorfun_cb_args =

Available since GLFW 3.0

[Fiddle::TYPE_VOIDP, Fiddle::TYPE_INT]
GLFWmonitorfun_cb_retval =

Available since GLFW 3.0

Fiddle::TYPE_VOID
GLFWjoystickfun_cb_args =

Available since GLFW 3.2

[Fiddle::TYPE_INT, Fiddle::TYPE_INT]
GLFWjoystickfun_cb_retval =

Available since GLFW 3.2

Fiddle::TYPE_VOID
GLFWvidmode =

struct

struct(["int width",
"int height",
"int redBits",
"int greenBits",
"int blueBits",
"int refreshRate"])
GLFWgammaramp =
struct(["unsigned short* red",
"unsigned short* green",
"unsigned short* blue",
"unsigned int size"])
GLFWimage =

Available since GLFW 3.1

struct(["int width",
"int height",
"unsigned char* pixels"])
GLFWgamepadstate =

Available since GLFW 3.3

struct(["unsigned char buttons[15]",
"float axes[6]"])
@@glfw_cb_function_signature =

typedefs

{
  :GLFWerrorfun              => "void GLFWerrorfun(int,const char*)",
  :GLFWwindowposfun          => "void GLFWwindowposfun(void*,int,int)",
  :GLFWwindowsizefun         => "void GLFWwindowsizefun(void*,int,int)",
  :GLFWwindowclosefun        => "void GLFWwindowclosefun(void*)",
  :GLFWwindowrefreshfun      => "void GLFWwindowrefreshfun(void*)",
  :GLFWwindowfocusfun        => "void GLFWwindowfocusfun(void*,int)",
  :GLFWwindowiconifyfun      => "void GLFWwindowiconifyfun(void*,int)",
  :GLFWwindowmaximizefun     => "void GLFWwindowmaximizefun(void*,int)",
  :GLFWframebuffersizefun    => "void GLFWframebuffersizefun(void*,int,int)",
  :GLFWwindowcontentscalefun => "void GLFWwindowcontentscalefun(void*,float,float)",  # Available since GLFW 3.3
  :GLFWmousebuttonfun        => "void GLFWmousebuttonfun(void*,int,int,int)",
  :GLFWcursorposfun          => "void GLFWcursorposfun(void*,double,double)",
  :GLFWcursorenterfun        => "void GLFWcursorenterfun(void*,int)",
  :GLFWscrollfun             => "void GLFWscrollfun(void*,double,double)",
  :GLFWkeyfun                => "void GLFWkeyfun(void*,int,int,int,int)",
  :GLFWcharfun               => "void GLFWcharfun(void*,unsigned int)",
  :GLFWcharmodsfun           => "void GLFWcharmodsfun(void*,unsigned int,int)",       # Available since GLFW 3.1 / Scheduled for removal in version 4.0.
  :GLFWdropfun               => "void GLFWdropfun(void*,int,const char**)",           # Available since GLFW 3.1
  :GLFWmonitorfun            => "void GLFWmonitorfun(void*,int)",                     # Available since GLFW 3.0
  :GLFWjoystickfun           => "void GGLFWjoystickfun(int,int)",                     # Available since GLFW 3.2
}
@@glfw_cb_closure_signature =
{
  :GLFWerrorfun              => [GLFWerrorfun_cb_retval, GLFWerrorfun_cb_args],
  :GLFWwindowposfun          => [GLFWwindowposfun_cb_retval, GLFWwindowposfun_cb_args],
  :GLFWwindowsizefun         => [GLFWwindowsizefun_cb_retval, GLFWwindowsizefun_cb_args],
  :GLFWwindowclosefun        => [GLFWwindowclosefun_cb_retval, GLFWwindowclosefun_cb_args],
  :GLFWwindowrefreshfun      => [GLFWwindowrefreshfun_cb_retval, GLFWwindowrefreshfun_cb_args],
  :GLFWwindowfocusfun        => [GLFWwindowfocusfun_cb_retval, GLFWwindowfocusfun_cb_args],
  :GLFWwindowiconifyfun      => [GLFWwindowiconifyfun_cb_retval, GLFWwindowiconifyfun_cb_args],
  :GLFWframebuffersizefun    => [GLFWframebuffersizefun_cb_retval, GLFWframebuffersizefun_cb_args],
  :GLFWwindowcontentscalefun => [GLFWwindowcontentscalefun_cb_retval, GLFWwindowcontentscalefun_cb_args], # Available since GLFW 3.3
  :GLFWmousebuttonfun        => [GLFWmousebuttonfun_cb_retval, GLFWmousebuttonfun_cb_args],
  :GLFWcursorposfun          => [GLFWcursorposfun_cb_retval, GLFWcursorposfun_cb_args],
  :GLFWcursorenterfun        => [GLFWcursorenterfun_cb_retval, GLFWcursorenterfun_cb_args],
  :GLFWscrollfun             => [GLFWscrollfun_cb_retval, GLFWscrollfun_cb_args],
  :GLFWkeyfun                => [GLFWkeyfun_cb_retval, GLFWkeyfun_cb_args],
  :GLFWcharfun               => [GLFWcharfun_cb_retval, GLFWcharfun_cb_args],
  :GLFWcharmodsfun           => [GLFWcharmodsfun_cb_retval, GLFWcharmodsfun_cb_args], # Available since GLFW 3.1
  :GLFWdropfun               => [GLFWdropfun_cb_retval, GLFWdropfun_cb_args],         # Available since GLFW 3.1
  :GLFWmonitorfun            => [GLFWmonitorfun_cb_retval, GLFWmonitorfun_cb_args],
  :GLFWjoystickfun           => [GLFWjoystickfun_cb_retval, GLFWjoystickfun_cb_args], # Available since GLFW 3.2
}
@@glfw_import_done =
false
@@lib_signature =
[
  'int glfwInit()',
  'void glfwTerminate()',
  'void glfwInitHint(int, int)',                                 # Available since GLFW 3.3
  'void glfwGetVersion(int*, int*, int*)',
  'const char* glfwGetVersionString()',
  'int glfwGetError(const char**)',                              # Available since GLFW 3.3
  'void* glfwSetErrorCallback(void*)',
  'void** glfwGetMonitors(int*)',
  'void* glfwGetPrimaryMonitor()',
  'void glfwGetMonitorPos(void*, int*, int*)',
  'void glfwGetMonitorWorkarea(void* monitor, int*, int*, int*, int*)', # Available since GLFW 3.3
  'void glfwGetMonitorPhysicalSize(void*, int*, int*)',
  'void glfwGetMonitorContentScale(void*, float*, float*)',      # Available since GLFW 3.3
  'const char* glfwGetMonitorName(void*)',
  'void glfwSetMonitorUserPointer(void*, void*)',                # Available since GLFW 3.3
  'const void* glfwGetMonitorUserPointer(void**)',               # Available since GLFW 3.3
  'void* glfwSetMonitorCallback(void*)',                         # Available since GLFW 3.0
  'const void* glfwGetVideoModes(void*, int*)',
  'const void* glfwGetVideoMode(void*)',                         # Available since GLFW 3.0
  'void glfwSetGamma(void*, float)',                             # Available since GLFW 3.0
  'const void* glfwGetGammaRamp(void*)',                         # Available since GLFW 3.0
  'void glfwSetGammaRamp(void*, const void*)',                   # Available since GLFW 3.0
  'void glfwDefaultWindowHints()',                               # Available since GLFW 3.0
  'void glfwWindowHint(int, int)',                               # Available since GLFW 3.0
  'void glfwWindowHintString(int, const char*)',                 # Available since GLFW 3.3
  'void* glfwCreateWindow(int, int, const char*, void*, void*)', # Available since GLFW 3.0
  'void glfwDestroyWindow(void*)',                               # Available since GLFW 3.0
  'int glfwWindowShouldClose(void*)',                            # Available since GLFW 3.0
  'void glfwSetWindowShouldClose(void*, int)',                   # Available since GLFW 3.0
  'void glfwSetWindowTitle(void*, const char*)',
  'void glfwSetWindowIcon(void*, int, void*)',                   # Available since GLFW 3.2
  'void glfwGetWindowPos(void*, int*, int*)',                    # Available since GLFW 3.0
  'void glfwSetWindowPos(void*, int, int)',
  'void glfwGetWindowSize(void*, int*, int*)',
  'void glfwSetWindowSizeLimits(void*, int, int, int, int)',     # Available since GLFW 3.2
  'void glfwSetWindowAspectRatio(void*, int, int)',              # Available since GLFW 3.2
  'void glfwSetWindowSize(void*, int, int)',
  'void glfwGetFramebufferSize(void*, int*, int*)',              # Available since GLFW 3.0
  'void glfwGetWindowFrameSize(void*, int*, int*, int*, int*)',  # Available since GLFW 3.1
  'void glfwGetWindowContentScale(void*, float*, float*)',       # Available since GLFW 3.3
  'float glfwGetWindowOpacity(void*)',                           # Available since GLFW 3.3
  'void glfwSetWindowOpacity(void*, float)',                     # Available since GLFW 3.3
  'void glfwIconifyWindow(void*)',
  'void glfwRestoreWindow(void*)',
  'void glfwMaximizeWindow(void*)',                                   # Available since GLFW 3.2
  'void glfwShowWindow(void*)',                                       # Available since GLFW 3.0
  'void glfwHideWindow(void*)',                                       # Available since GLFW 3.0
  'void glfwFocusWindow(void*)',                                      # Available since GLFW 3.2
  'void glfwRequestWindowAttention(void*)',                           # Available since GLFW 3.3
  'void* glfwGetWindowMonitor(void*)',                                # Available since GLFW 3.0
  'void glfwSetWindowMonitor(void*, void*, int, int, int, int, int)', # Available since GLFW 3.2
  'int glfwGetWindowAttrib(void*, int)',                              # Available since GLFW 3.0
  'void glfwSetWindowAttrib(void*, int, int)',                        # Available since GLFW 3.3
  'void glfwSetWindowUserPointer(void*, void*)',                      # Available since GLFW 3.0
  'void* glfwGetWindowUserPointer(void*)',                            # Available since GLFW 3.0
  'void* glfwSetWindowPosCallback(void*, void*)',                     # Available since GLFW 3.0
  'void* glfwSetWindowSizeCallback(void*, void*)',
  'void* glfwSetWindowCloseCallback(void*, void*)',
  'void* glfwSetWindowRefreshCallback(void*, void*)',
  'void* glfwSetWindowFocusCallback(void*, void*)',                   # Available since GLFW 3.0
  'void* glfwSetWindowIconifyCallback(void*, void*)',                 # Available since GLFW 3.0
  'void* glfwSetWindowMaximizeCallback(void*, void*)',                # Available since GLFW 3.3
  'void* glfwSetFramebufferSizeCallback(void*, void*)',               # Available since GLFW 3.0
  'void* glfwSetWindowContentScaleCallback(void*, void*)',            # Available since GLFW 3.3
  'void glfwPollEvents()',
  'void glfwWaitEvents()',
  'void glfwWaitEventsTimeout(double)',              # Available since GLFW 3.2
  'void glfwPostEmptyEvent()',                       # Available since GLFW 3.1
  'int glfwGetInputMode(void*, int)',                # Available since GLFW 3.0
  'void glfwSetInputMode(void*, int, int)',          # Available since GLFW 3.0
  'int glfwRawMouseMotionSupported()',               # Available since GLFW 3.3
  'const char* glfwGetKeyName(int, int)',            # Available since GLFW 3.2
  'int glfwGetKeyScancode(int)',                     # Available since GLFW 3.3
  'int glfwGetKey(void*, int)',
  'int glfwGetMouseButton(void*, int)',
  'void glfwGetCursorPos(void*, double*, double*)',  # Available since GLFW 3.0
  'void glfwSetCursorPos(void*, double, double)',    # Available since GLFW 3.0
  'void* glfwCreateCursor(void*, int, int)',         # Available since GLFW 3.1
  'void* glfwCreateStandardCursor(int)',             # Available since GLFW 3.1
  'void glfwDestroyCursor(void*)',                   # Available since GLFW 3.1
  'void glfwSetCursor(void*, void*)',                # Available since GLFW 3.1
  'void* glfwSetKeyCallback(void*, void*)',
  'void* glfwSetCharCallback(void*, void*)',
  'void* glfwSetCharModsCallback(void*, void*)',     # Available since GLFW 3.1 / Scheduled for removal in version 4.0.
  'void* glfwSetMouseButtonCallback(void*, void*)',
  'void* glfwSetCursorPosCallback(void*, void*)',    # Available since GLFW 3.0
  'void* glfwSetCursorEnterCallback(void*, void*)',  # Available since GLFW 3.0
  'void* glfwSetScrollCallback(void*, void*)',       # Available since GLFW 3.0
  'void* glfwSetDropCallback(void*, void*)',         # Available since GLFW 3.1
   'int glfwJoystickPresent(int)',                        # Available since GLFW 3.0
  'const float* glfwGetJoystickAxes(int, int*)',         # Available since GLFW 3.0
  'const unsigned char* glfwGetJoystickButtons(int, int*)',
  'const unsigned char* glfwGetJoystickHats(int, int*)', # Available since GLFW 3.3
  'const char* glfwGetJoystickName(int)',                # Available since GLFW 3.0
  'const char* glfwGetJoystickGUID(int)',                # Available since GLFW 3.3
  'void glfwSetJoystickUserPointer(int, void*)',         # Available since GLFW 3.3
  'void* glfwGetJoystickUserPointer(int)',               # Available since GLFW 3.3
  'int glfwJoystickIsGamepad(int)',                      # Available since GLFW 3.3
  'void* glfwSetJoystickCallback(void*)',                # Available since GLFW 3.2
  'int glfwUpdateGamepadMappings(const char*)',          # Available since GLFW 3.3
  'const char* glfwGetGamepadName(int)',                 # Available since GLFW 3.3
  'int glfwGetGamepadState(int, void*)',                 # Available since GLFW 3.3
  'void glfwSetClipboardString(void*, const char*)',     # Available since GLFW 3.0
  'const char* glfwGetClipboardString(void*)',           # Available since GLFW 3.0
  'double glfwGetTime()',
  'void glfwSetTime(double)',
  'GLFWuint64 glfwGetTimerValue()',                  # Available since GLFW 3.2
  'GLFWuint64 glfwGetTimerFrequency()',              # Available since GLFW 3.2
  'void glfwMakeContextCurrent(void*)',              # Available since GLFW 3.0
  'void* glfwGetCurrentContext()',                   # Available since GLFW 3.0
  'void glfwSwapBuffers(void*)',
  'void glfwSwapInterval(int)',
  'int glfwExtensionSupported(const char*)',
  'void* glfwGetProcAddress(const char*)',
  # >>> Vulkan >>>
  'int glfwVulkanSupported()',                                     # Available since GLFW 3.2
  'const char** glfwGetRequiredInstanceExtensions(unsigned int*)', # Available since GLFW 3.2
# 'GLFWvkproc glfwGetInstanceProcAddress(void*, const char*)',
# 'int glfwGetPhysicalDevicePresentationSupport(void*, void*, unsigned int)',
# 'VkResult glfwCreateWindowSurface(void*, void*, const void*, void*)',
  # <<< Vulkan <<<
]

Class Method Summary collapse

Class Method Details

.create_callback(sym, proc = nil, &blk) ⇒ Object

NOTE : Use ‘create_callback_function’ for backward compatibility.



483
484
485
# File 'lib/glfw.rb', line 483

def self.create_callback(sym, proc=nil, &blk)
  return self.create_callback_closure( sym, proc, &blk )
end

.create_callback_closure(sym, proc = nil, &blk) ⇒ Object

Creates a callback as an instance of Fiddle::Closure::BlockCaller



472
473
474
475
476
477
478
479
480
# File 'lib/glfw.rb', line 472

def self.create_callback_closure(sym, proc=nil, &blk)
  cb_retval = @@glfw_cb_closure_signature[sym][0]
  cb_args   = @@glfw_cb_closure_signature[sym][1]
  if block_given?
    return Fiddle::Closure::BlockCaller.new( cb_retval, cb_args, Fiddle::Function::DEFAULT, &blk )
  else
    return Fiddle::Closure::BlockCaller.new( cb_retval, cb_args, Fiddle::Function::DEFAULT, &proc )
  end
end

.create_callback_function(sym, proc = nil, &blk) ⇒ Object

Creates a callback as an instance of Fiddle::Function



402
403
404
405
406
407
408
# File 'lib/glfw.rb', line 402

def self.create_callback_function(sym, proc=nil, &blk)
  if block_given?
    return bind(@@glfw_cb_function_signature[sym], nil, &blk)
  else
    return bind(@@glfw_cb_function_signature[sym], nil, &proc)
  end
end

.import_symbols(output_error = false) ⇒ Object



686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
# File 'lib/glfw.rb', line 686

def self.import_symbols(output_error = false)
  typealias 'GLFWuint64', 'unsigned long long' # Available since GLFW 3.2

  # function
  @@lib_signature.each do |sig|
    begin
      extern sig
    rescue
      $stderr.puts("[Warning] Failed to import #{sig}.") if output_error
    end
  end

  ver_major = ' ' * 4
  ver_minor = ' ' * 4
  ver_rev   = ' ' * 4
  glfwGetVersion(ver_major, ver_minor, ver_rev)

  GLFW.const_set('GLFW_VERSION_MAJOR',  ver_major.unpack('L')[0])
  GLFW.const_set('GLFW_VERSION_MINOR',  ver_minor.unpack('L')[0])
  GLFW.const_set('GLFW_VERSION_REVISION', ver_rev.unpack('L')[0])

  # Convert method names (e.g.: GLFW.glfwInit -> GLFW.Init)
  self.singleton_methods(false).each do |method_name|
    m = singleton_method(method_name)
    if m.name.to_s.start_with? 'glfw'
      modified_api = m.name.to_s[4..-1] # omit prefix "glfw"
      define_singleton_method(modified_api, m) # define alias
    end
  end

  # Convert constant names (e.g.: GLFW::GLFW_KEY_ESCAPE -> GLFW::KEY_ESCAPE)
  self.constants.each do |constant|
    cs = constant.to_s
    if cs[0..4] == "GLFW_"
      if cs[5] =~ /\d/
        # We have to abandon name conversion like 'GL_2D, GL_3D_COLOR, GL_4_BYTES, etc.
        # Because constants can't start with a digit or underscore.
        # [Note] This rule has been inherited from Yoshi's very original ruby-opengl (confirmed with opengl-0.32g, 2004-07-17).
      else
        # Convert by omitting the 'GLFW_' prefix like GLFW::GLFW_KEY_ESCAPE into GLFW::KEY_ESCAPE
        const_set(cs[5..-1], GLFW.const_get(constant))
      end
    end
  end

  @@glfw_import_done = true
end

.load_lib(lib_path = nil, output_error = false) ⇒ Object

Load native library.



516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
# File 'lib/glfw.rb', line 516

def self.load_lib(lib_path = nil, output_error = false)
  if lib_path == nil
    lib_path = case GL.get_platform
               when :OPENGL_PLATFORM_WINDOWS
                 Dir.pwd + '/GLFW3.dll'
               when :OPENGL_PLATFORM_MACOSX
                 'libglfw.dylib'
               else
                 'libglfw.so.3'
               end
  end

  dlload(lib_path)

  import_symbols(output_error) unless @@glfw_import_done
end