Module: GLFW

Extended by:
Fiddle::Importer
Defined in:
lib/glfw.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_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_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_OPENGL_DEBUG_CONTEXT =
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_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_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_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_WAYLAND_PREFER_LIBDECOR =

Available since GLFW 3.3.9

0x00038001
GLFW_WAYLAND_DISABLE_LIBDECOR =

Available since GLFW 3.3.9

0x00038002
GLFW_ARROW_CURSOR =
0x00036001
GLFW_IBEAM_CURSOR =
0x00036002
GLFW_CROSSHAIR_CURSOR =
0x00036003
GLFW_HAND_CURSOR =
0x00036004
GLFW_HRESIZE_CURSOR =
0x00036005
GLFW_VRESIZE_CURSOR =
0x00036006
GLFW_CONNECTED =
0x00040001
GLFW_DISCONNECTED =
0x00040002
GLFW_JOYSTICK_HAT_BUTTONS =

Available since GLFW 3.3

0x00050001
GLFW_COCOA_CHDIR_RESOURCES =

Available since GLFW 3.3

0x00051001
GLFW_COCOA_MENUBAR =

Available since GLFW 3.3

0x00051002
GLFW_WAYLAND_LIBDECOR =

Available since GLFW 3.3.9

0x00053001
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* window, 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.



440
441
442
# File 'lib/glfw.rb', line 440

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



429
430
431
432
433
434
435
436
437
# File 'lib/glfw.rb', line 429

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



359
360
361
362
363
364
365
# File 'lib/glfw.rb', line 359

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



631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
# File 'lib/glfw.rb', line 631

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.



469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
# File 'lib/glfw.rb', line 469

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