glfw3 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/ext/glfw3/glfw3.c +123 -74
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2fa3c81cf32a76569db80053ccc2422eac1d9f59
4
- data.tar.gz: f6383866824dbdf589c7567f613d8427e3ec4e51
3
+ metadata.gz: af1da580f8de9e21f650115855184766da438c18
4
+ data.tar.gz: 2c1f559d4044a53985c76c373fa38dcf62aa03b1
5
5
  SHA512:
6
- metadata.gz: cc3881835604728d4d632c0a443a443e5c2a599e8820c9c9bb01bcdb9fbdda5cde254d7740c3cb23e0e912839654df81c2a6646b2eb6f79b2ca007d17dba924e
7
- data.tar.gz: fc0df1b75de611329f2ff585ff6885171a3d369bbe97cae8b8c558908438dd47bb92dadbec47c5f711590a1efd886cb6b3196d1908e9518d468e687b389df30d
6
+ metadata.gz: d784dbdccdef6a614369f6e87145687a1caacfc1b7a6500d23378032a3b329ef7f5e700d2afbf67ea1b6fb15faef3b762b0c194b101e6affdf34a7914522cd39
7
+ data.tar.gz: 8c04f83251a478714379caa99d78fe86f7354482941918540d2ab233703704eb9d0aed3d64868933bbc8176ac2ceade5187f85a557a04dd6e2bd962292bc866e
@@ -9,23 +9,50 @@ typedef struct s_rb_glfw_error
9
9
  } rb_glfw_error_t;
10
10
 
11
11
 
12
- static const char *kRB_IVAR_WINDOW_INTERNAL = "@__internal_window";
13
- static const char *kRB_IVAR_WINDOW_KEY_CALLBACK = "@__key_callback";
14
- static const char *kRB_IVAR_WINDOW_CHAR_CALLBACK = "@__char_callback";
15
- static const char *kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK = "@__mouse_button_callback";
16
- static const char *kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK = "@__cursor_position_callback";
17
- static const char *kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK = "@__cursor_enter_callback";
18
- static const char *kRB_IVAR_WINDOW_SCROLL_CALLBACK = "@__scroll_callback";
19
- static const char *kRB_IVAR_WINDOW_POSITION_CALLBACK = "@__position_callback";
20
- static const char *kRB_IVAR_WINDOW_SIZE_CALLBACK = "@__size_callback";
21
- static const char *kRB_IVAR_WINDOW_CLOSE_CALLBACK = "@__close_callback";
22
- static const char *kRB_IVAR_WINDOW_REFRESH_CALLBACK = "@__refresh_callback";
23
- static const char *kRB_IVAR_WINDOW_FOCUS_CALLBACK = "@__focus_callback";
24
- static const char *kRB_IVAR_WINDOW_ICONIFY_CALLBACK = "@__iconify_callback";
25
- static const char *kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK = "@__framebuffer_size_callback";
26
- static const char *kRB_CVAR_WINDOW_WINDOWS = "@@__windows";
27
- static const char *kRB_CVAR_GLFW_ERROR_CALLBACK = "@@__error_callback";
28
- static const char *kRB_CVAR_GLFW_MONITOR_CALLBACK = "@@__monitor_callback";
12
+ static const char *kRB_IVAR_WINDOW_INTERNAL_NAME = "@__internal_window";
13
+ static const char *kRB_IVAR_WINDOW_KEY_CALLBACK_NAME = "@__key_callback";
14
+ static const char *kRB_IVAR_WINDOW_CHAR_CALLBACK_NAME = "@__char_callback";
15
+ static const char *kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK_NAME = "@__mouse_button_callback";
16
+ static const char *kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK_NAME = "@__cursor_position_callback";
17
+ static const char *kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK_NAME = "@__cursor_enter_callback";
18
+ static const char *kRB_IVAR_WINDOW_SCROLL_CALLBACK_NAME = "@__scroll_callback";
19
+ static const char *kRB_IVAR_WINDOW_POSITION_CALLBACK_NAME = "@__position_callback";
20
+ static const char *kRB_IVAR_WINDOW_SIZE_CALLBACK_NAME = "@__size_callback";
21
+ static const char *kRB_IVAR_WINDOW_CLOSE_CALLBACK_NAME = "@__close_callback";
22
+ static const char *kRB_IVAR_WINDOW_REFRESH_CALLBACK_NAME = "@__refresh_callback";
23
+ static const char *kRB_IVAR_WINDOW_FOCUS_CALLBACK_NAME = "@__focus_callback";
24
+ static const char *kRB_IVAR_WINDOW_ICONIFY_CALLBACK_NAME = "@__iconify_callback";
25
+ static const char *kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK_NAME = "@__framebuffer_size_callback";
26
+ static const char *kRB_CVAR_WINDOW_WINDOWS_NAME = "@@__windows";
27
+ static const char *kRB_CVAR_GLFW_ERROR_CALLBACK_NAME = "@@__error_callback";
28
+ static const char *kRB_CVAR_GLFW_MONITOR_CALLBACK_NAME = "@@__monitor_callback";
29
+ static const char *kRB_CALL_NAME = "call";
30
+ static const char *kRB_RED_NAME = "red";
31
+ static const char *kRB_GREEN_NAME = "green";
32
+ static const char *kRB_BLUE_NAME = "blue";
33
+
34
+
35
+ static ID kRB_IVAR_WINDOW_INTERNAL;
36
+ static ID kRB_IVAR_WINDOW_KEY_CALLBACK;
37
+ static ID kRB_IVAR_WINDOW_CHAR_CALLBACK;
38
+ static ID kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK;
39
+ static ID kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK;
40
+ static ID kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK;
41
+ static ID kRB_IVAR_WINDOW_SCROLL_CALLBACK;
42
+ static ID kRB_IVAR_WINDOW_POSITION_CALLBACK;
43
+ static ID kRB_IVAR_WINDOW_SIZE_CALLBACK;
44
+ static ID kRB_IVAR_WINDOW_CLOSE_CALLBACK;
45
+ static ID kRB_IVAR_WINDOW_REFRESH_CALLBACK;
46
+ static ID kRB_IVAR_WINDOW_FOCUS_CALLBACK;
47
+ static ID kRB_IVAR_WINDOW_ICONIFY_CALLBACK;
48
+ static ID kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK;
49
+ static ID kRB_CVAR_WINDOW_WINDOWS;
50
+ static ID kRB_CVAR_GLFW_ERROR_CALLBACK;
51
+ static ID kRB_CVAR_GLFW_MONITOR_CALLBACK;
52
+ static ID kRB_CALL;
53
+ static ID kRB_RED;
54
+ static ID kRB_GREEN;
55
+ static ID kRB_BLUE;
29
56
 
30
57
 
31
58
  static VALUE s_glfw_module = Qundef;
@@ -106,14 +133,14 @@ static VALUE rb_glfw_version(VALUE self)
106
133
 
107
134
  static void rb_glfw_error_callback(int error_code, const char *description)
108
135
  {
109
- VALUE lambda = rb_cvar_get(s_glfw_module, rb_intern(kRB_CVAR_GLFW_ERROR_CALLBACK));
136
+ VALUE lambda = rb_cvar_get(s_glfw_module, kRB_CVAR_GLFW_ERROR_CALLBACK);
110
137
 
111
138
  if (RTEST(lambda)) {
112
139
  VALUE rb_description = rb_str_new2(description);
113
140
  VALUE rb_error_code = INT2FIX(error_code);
114
141
  OBJ_FREEZE(rb_description);
115
142
  OBJ_FREEZE(rb_error_code);
116
- rb_funcall(lambda, rb_intern("call"), 2, rb_error_code, rb_description);
143
+ rb_funcall(lambda, kRB_CALL, 2, rb_error_code, rb_description);
117
144
  } else {
118
145
  rb_raise(rb_eRuntimeError, "GLFW Error 0x%X: %s", error_code, description);
119
146
  }
@@ -231,11 +258,11 @@ VALUE rb_monitor_name(VALUE self)
231
258
 
232
259
  static void rb_glfw_monitor_callback(GLFWmonitor *monitor, int message)
233
260
  {
234
- VALUE lambda = rb_cvar_get(s_glfw_module, rb_intern(kRB_CVAR_GLFW_MONITOR_CALLBACK));
261
+ VALUE lambda = rb_cvar_get(s_glfw_module, kRB_CVAR_GLFW_MONITOR_CALLBACK);
235
262
  if (RTEST(lambda)) {
236
263
  VALUE rb_monitor = Data_Wrap_Struct(s_glfw_monitor_klass, 0, 0, monitor);
237
264
  rb_obj_call_init(rb_monitor, 0, 0);
238
- rb_funcall(lambda, rb_intern("call"), 2, rb_monitor, INT2FIX(message));
265
+ rb_funcall(lambda, kRB_CALL, 2, rb_monitor, INT2FIX(message));
239
266
  }
240
267
  }
241
268
 
@@ -435,9 +462,9 @@ static VALUE rb_monitor_get_gamma_ramp(VALUE self)
435
462
  rb_ary_push(rb_blue, INT2NUM(ramp->blue[ramp_index]));
436
463
  }
437
464
 
438
- rb_hash_aset(rb_gamma_hash, ID2SYM(rb_intern("red")), rb_red);
439
- rb_hash_aset(rb_gamma_hash, ID2SYM(rb_intern("green")), rb_green);
440
- rb_hash_aset(rb_gamma_hash, ID2SYM(rb_intern("blue")), rb_blue);
465
+ rb_hash_aset(rb_gamma_hash, ID2SYM(kRB_RED), rb_red);
466
+ rb_hash_aset(rb_gamma_hash, ID2SYM(kRB_GREEN), rb_green);
467
+ rb_hash_aset(rb_gamma_hash, ID2SYM(kRB_BLUE), rb_blue);
441
468
 
442
469
  return rb_gamma_hash;
443
470
  }
@@ -475,9 +502,9 @@ static VALUE rb_monitor_set_gamma_ramp(VALUE self, VALUE ramp_hash)
475
502
 
476
503
  Data_Get_Struct(self, GLFWmonitor, monitor);
477
504
 
478
- rb_red = rb_hash_aref(ramp_hash, ID2SYM(rb_intern("red")));
479
- rb_green = rb_hash_aref(ramp_hash, ID2SYM(rb_intern("green")));
480
- rb_blue = rb_hash_aref(ramp_hash, ID2SYM(rb_intern("blue")));
505
+ rb_red = rb_hash_aref(ramp_hash, ID2SYM(kRB_RED));
506
+ rb_green = rb_hash_aref(ramp_hash, ID2SYM(kRB_GREEN));
507
+ rb_blue = rb_hash_aref(ramp_hash, ID2SYM(kRB_BLUE));
481
508
 
482
509
  if (!(RTEST(rb_red) && RTEST(rb_green) && RTEST(rb_blue))) {
483
510
  rb_raise(rb_eArgError, "Ramp Hash must contain :red, :green, and :blue arrays");
@@ -555,7 +582,7 @@ static GLFWwindow *rb_get_window(VALUE rb_window)
555
582
  {
556
583
  GLFWwindow *window = NULL;
557
584
  if (RTEST(rb_window)) {
558
- ID ivar_window = rb_intern(kRB_IVAR_WINDOW_INTERNAL);
585
+ ID ivar_window = kRB_IVAR_WINDOW_INTERNAL;
559
586
  VALUE rb_window_data = Qnil;
560
587
  if (RTEST((rb_window_data = rb_ivar_get(rb_window, ivar_window)))) {
561
588
  Data_Get_Struct(rb_window_data, GLFWwindow, window);
@@ -578,7 +605,7 @@ static GLFWwindow *rb_get_window(VALUE rb_window)
578
605
  */
579
606
  static VALUE rb_window_new(int argc, VALUE *argv, VALUE self)
580
607
  {
581
- ID ivar_window = rb_intern(kRB_IVAR_WINDOW_INTERNAL);
608
+ ID ivar_window = kRB_IVAR_WINDOW_INTERNAL;
582
609
  VALUE rb_width, rb_height, rb_title, rb_monitor, rb_share;
583
610
  VALUE rb_window;
584
611
  VALUE rb_window_data;
@@ -625,25 +652,25 @@ static VALUE rb_window_new(int argc, VALUE *argv, VALUE self)
625
652
  rb_window = rb_obj_alloc(s_glfw_window_klass);
626
653
 
627
654
  rb_ivar_set(rb_window, ivar_window, rb_window_data);
628
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_KEY_CALLBACK), Qnil);
629
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_CHAR_CALLBACK), Qnil);
630
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK), Qnil);
631
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK), Qnil);
632
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK), Qnil);
633
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_SCROLL_CALLBACK), Qnil);
634
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_POSITION_CALLBACK), Qnil);
635
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_SIZE_CALLBACK), Qnil);
636
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_CLOSE_CALLBACK), Qnil);
637
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_REFRESH_CALLBACK), Qnil);
638
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_FOCUS_CALLBACK), Qnil);
639
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_ICONIFY_CALLBACK), Qnil);
640
- rb_ivar_set(rb_window, rb_intern(kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK), Qnil);
655
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_KEY_CALLBACK, Qnil);
656
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_CHAR_CALLBACK, Qnil);
657
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK, Qnil);
658
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK, Qnil);
659
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK, Qnil);
660
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_SCROLL_CALLBACK, Qnil);
661
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_POSITION_CALLBACK, Qnil);
662
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_SIZE_CALLBACK, Qnil);
663
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_CLOSE_CALLBACK, Qnil);
664
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_REFRESH_CALLBACK, Qnil);
665
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_FOCUS_CALLBACK, Qnil);
666
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_ICONIFY_CALLBACK, Qnil);
667
+ rb_ivar_set(rb_window, kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK, Qnil);
641
668
 
642
669
  glfwSetWindowUserPointer(window, (void *)rb_window);
643
670
  rb_obj_call_init(rb_window, 0, 0);
644
671
 
645
672
  // Store the window so it can't go out of scope until explicitly destroyed.
646
- rb_windows = rb_cvar_get(self, rb_intern(kRB_CVAR_WINDOW_WINDOWS));
673
+ rb_windows = rb_cvar_get(self, kRB_CVAR_WINDOW_WINDOWS);
647
674
  rb_hash_aset(rb_windows, INT2FIX((int)window), rb_window);
648
675
 
649
676
  return rb_window;
@@ -661,8 +688,8 @@ static VALUE rb_window_destroy(VALUE self)
661
688
  GLFWwindow *window = rb_get_window(self);
662
689
  if (window) {
663
690
  glfwDestroyWindow(window);
664
- rb_ivar_set(self, rb_intern(kRB_IVAR_WINDOW_INTERNAL), Qnil);
665
- VALUE rb_windows = rb_cvar_get(s_glfw_window_klass, rb_intern(kRB_CVAR_WINDOW_WINDOWS));
691
+ rb_ivar_set(self, kRB_IVAR_WINDOW_INTERNAL, Qnil);
692
+ VALUE rb_windows = rb_cvar_get(s_glfw_window_klass, kRB_CVAR_WINDOW_WINDOWS);
666
693
  rb_hash_delete(rb_windows, INT2FIX((int)window));
667
694
  }
668
695
  return self;
@@ -888,8 +915,8 @@ static VALUE rb_window_get_monitor(VALUE self)
888
915
  static void rb_window_window_position_callback(GLFWwindow *window, int x, int y)
889
916
  {
890
917
  VALUE rb_window = rb_lookup_window(window);
891
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_POSITION_CALLBACK));
892
- rb_funcall(rb_func, rb_intern("call"), 3, rb_window, INT2FIX(x), INT2FIX(y));
918
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_POSITION_CALLBACK);
919
+ rb_funcall(rb_func, kRB_CALL, 3, rb_window, INT2FIX(x), INT2FIX(y));
893
920
  }
894
921
 
895
922
  RB_ENABLE_CALLBACK_DEF(rb_window_set_window_position_callback, rb_window_window_position_callback, glfwSetWindowPosCallback);
@@ -899,8 +926,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_window_position_callback, rb_window_window_
899
926
  static void rb_window_window_size_callback(GLFWwindow *window, int width, int height)
900
927
  {
901
928
  VALUE rb_window = rb_lookup_window(window);
902
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_SIZE_CALLBACK));
903
- rb_funcall(rb_func, rb_intern("call"), 3, rb_window, INT2FIX(width), INT2FIX(height));
929
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_SIZE_CALLBACK);
930
+ rb_funcall(rb_func, kRB_CALL, 3, rb_window, INT2FIX(width), INT2FIX(height));
904
931
  }
905
932
 
906
933
  RB_ENABLE_CALLBACK_DEF(rb_window_set_window_size_callback, rb_window_window_size_callback, glfwSetWindowSizeCallback);
@@ -910,8 +937,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_window_size_callback, rb_window_window_size
910
937
  static void rb_window_close_callback(GLFWwindow *window)
911
938
  {
912
939
  VALUE rb_window = rb_lookup_window(window);
913
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_CLOSE_CALLBACK));
914
- rb_funcall(rb_func, rb_intern("call"), 1, rb_window);
940
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_CLOSE_CALLBACK);
941
+ rb_funcall(rb_func, kRB_CALL, 1, rb_window);
915
942
  }
916
943
 
917
944
  RB_ENABLE_CALLBACK_DEF(rb_window_set_close_callback, rb_window_close_callback, glfwSetWindowCloseCallback);
@@ -921,8 +948,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_close_callback, rb_window_close_callback, g
921
948
  static void rb_window_refresh_callback(GLFWwindow *window)
922
949
  {
923
950
  VALUE rb_window = rb_lookup_window(window);
924
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_REFRESH_CALLBACK));
925
- rb_funcall(rb_func, rb_intern("call"), 1, rb_window);
951
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_REFRESH_CALLBACK);
952
+ rb_funcall(rb_func, kRB_CALL, 1, rb_window);
926
953
  }
927
954
 
928
955
  RB_ENABLE_CALLBACK_DEF(rb_window_set_refresh_callback, rb_window_refresh_callback, glfwSetWindowRefreshCallback);
@@ -932,8 +959,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_refresh_callback, rb_window_refresh_callbac
932
959
  static void rb_window_focus_callback(GLFWwindow *window, int focused)
933
960
  {
934
961
  VALUE rb_window = rb_lookup_window(window);
935
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_FOCUS_CALLBACK));
936
- rb_funcall(rb_func, rb_intern("call"), 2, rb_window, focused ? Qtrue : Qfalse);
962
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_FOCUS_CALLBACK);
963
+ rb_funcall(rb_func, kRB_CALL, 2, rb_window, focused ? Qtrue : Qfalse);
937
964
  }
938
965
 
939
966
  RB_ENABLE_CALLBACK_DEF(rb_window_set_focus_callback, rb_window_focus_callback, glfwSetWindowFocusCallback);
@@ -943,8 +970,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_focus_callback, rb_window_focus_callback, g
943
970
  static void rb_window_iconify_callback(GLFWwindow *window, int iconified)
944
971
  {
945
972
  VALUE rb_window = rb_lookup_window(window);
946
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_ICONIFY_CALLBACK));
947
- rb_funcall(rb_func, rb_intern("call"), 2, rb_window, iconified ? Qtrue : Qfalse);
973
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_ICONIFY_CALLBACK);
974
+ rb_funcall(rb_func, kRB_CALL, 2, rb_window, iconified ? Qtrue : Qfalse);
948
975
  }
949
976
 
950
977
  RB_ENABLE_CALLBACK_DEF(rb_window_set_iconify_callback, rb_window_iconify_callback, glfwSetWindowIconifyCallback);
@@ -954,8 +981,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_iconify_callback, rb_window_iconify_callbac
954
981
  static void rb_window_fbsize_callback(GLFWwindow *window, int width, int height)
955
982
  {
956
983
  VALUE rb_window = rb_lookup_window(window);
957
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK));
958
- rb_funcall(rb_func, rb_intern("call"), 3, rb_window, INT2FIX(width), INT2FIX(height));
984
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK);
985
+ rb_funcall(rb_func, kRB_CALL, 3, rb_window, INT2FIX(width), INT2FIX(height));
959
986
  }
960
987
 
961
988
  RB_ENABLE_CALLBACK_DEF(rb_window_set_fbsize_callback, rb_window_fbsize_callback, glfwSetFramebufferSizeCallback);
@@ -1104,8 +1131,8 @@ static VALUE rb_window_set_cursor_pos(VALUE self, VALUE x, VALUE y)
1104
1131
  static void rb_window_key_callback(GLFWwindow *window, int key, int scancode, int action, int mods)
1105
1132
  {
1106
1133
  VALUE rb_window = rb_lookup_window(window);
1107
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_KEY_CALLBACK));
1108
- rb_funcall(rb_func, rb_intern("call"), 5, rb_window, INT2FIX(key), INT2FIX(scancode), INT2FIX(action), INT2FIX(mods));
1134
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_KEY_CALLBACK);
1135
+ rb_funcall(rb_func, kRB_CALL, 5, rb_window, INT2FIX(key), INT2FIX(scancode), INT2FIX(action), INT2FIX(mods));
1109
1136
  }
1110
1137
 
1111
1138
  RB_ENABLE_CALLBACK_DEF(rb_window_set_key_callback, rb_window_key_callback, glfwSetKeyCallback);
@@ -1115,8 +1142,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_key_callback, rb_window_key_callback, glfwS
1115
1142
  static void rb_window_char_callback(GLFWwindow *window, unsigned int code)
1116
1143
  {
1117
1144
  VALUE rb_window = rb_lookup_window(window);
1118
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_CHAR_CALLBACK));
1119
- rb_funcall(rb_func, rb_intern("call"), 2, rb_window, UINT2NUM(code));
1145
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_CHAR_CALLBACK);
1146
+ rb_funcall(rb_func, kRB_CALL, 2, rb_window, UINT2NUM(code));
1120
1147
  }
1121
1148
 
1122
1149
  RB_ENABLE_CALLBACK_DEF(rb_window_set_char_callback, rb_window_char_callback, glfwSetCharCallback);
@@ -1127,8 +1154,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_char_callback, rb_window_char_callback, glf
1127
1154
  static void rb_window_mouse_button_callback(GLFWwindow *window, int button, int action, int mods)
1128
1155
  {
1129
1156
  VALUE rb_window = rb_lookup_window(window);
1130
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK));
1131
- rb_funcall(rb_func, rb_intern("call"), 4, rb_window, INT2FIX(button), INT2FIX(action), INT2FIX(mods));
1157
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK);
1158
+ rb_funcall(rb_func, kRB_CALL, 4, rb_window, INT2FIX(button), INT2FIX(action), INT2FIX(mods));
1132
1159
  }
1133
1160
 
1134
1161
  RB_ENABLE_CALLBACK_DEF(rb_window_set_mouse_button_callback, rb_window_mouse_button_callback, glfwSetMouseButtonCallback);
@@ -1138,8 +1165,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_mouse_button_callback, rb_window_mouse_butt
1138
1165
  static void rb_window_cursor_position_callback(GLFWwindow *window, double x, double y)
1139
1166
  {
1140
1167
  VALUE rb_window = rb_lookup_window(window);
1141
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK));
1142
- rb_funcall(rb_func, rb_intern("call"), 4, rb_window, rb_float_new(x), rb_float_new(y));
1168
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK);
1169
+ rb_funcall(rb_func, kRB_CALL, 4, rb_window, rb_float_new(x), rb_float_new(y));
1143
1170
  }
1144
1171
 
1145
1172
  RB_ENABLE_CALLBACK_DEF(rb_window_set_cursor_position_callback, rb_window_cursor_position_callback, glfwSetCursorPosCallback);
@@ -1149,8 +1176,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_cursor_position_callback, rb_window_cursor_
1149
1176
  static void rb_window_cursor_enter_callback(GLFWwindow *window, int entered)
1150
1177
  {
1151
1178
  VALUE rb_window = rb_lookup_window(window);
1152
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK));
1153
- rb_funcall(rb_func, rb_intern("call"), 2, rb_window, entered ? Qtrue : Qfalse);
1179
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK);
1180
+ rb_funcall(rb_func, kRB_CALL, 2, rb_window, entered ? Qtrue : Qfalse);
1154
1181
  }
1155
1182
 
1156
1183
  RB_ENABLE_CALLBACK_DEF(rb_window_set_cursor_enter_callback, rb_window_cursor_enter_callback, glfwSetCursorEnterCallback);
@@ -1160,8 +1187,8 @@ RB_ENABLE_CALLBACK_DEF(rb_window_set_cursor_enter_callback, rb_window_cursor_ent
1160
1187
  static void rb_window_scroll_callback(GLFWwindow *window, double x, double y)
1161
1188
  {
1162
1189
  VALUE rb_window = rb_lookup_window(window);
1163
- VALUE rb_func = rb_ivar_get(rb_window, rb_intern(kRB_IVAR_WINDOW_SCROLL_CALLBACK));
1164
- rb_funcall(rb_func, rb_intern("call"), 4, rb_window, rb_float_new(x), rb_float_new(y));
1190
+ VALUE rb_func = rb_ivar_get(rb_window, kRB_IVAR_WINDOW_SCROLL_CALLBACK);
1191
+ rb_funcall(rb_func, kRB_CALL, 4, rb_window, rb_float_new(x), rb_float_new(y));
1165
1192
  }
1166
1193
 
1167
1194
  RB_ENABLE_CALLBACK_DEF(rb_window_set_scroll_callback, rb_window_scroll_callback, glfwSetScrollCallback);
@@ -1444,6 +1471,28 @@ static VALUE rb_glfw_extension_supported(VALUE self, VALUE extension)
1444
1471
 
1445
1472
  void Init_glfw3(void)
1446
1473
  {
1474
+ kRB_IVAR_WINDOW_INTERNAL = rb_intern(kRB_IVAR_WINDOW_INTERNAL_NAME);
1475
+ kRB_IVAR_WINDOW_KEY_CALLBACK = rb_intern(kRB_IVAR_WINDOW_KEY_CALLBACK_NAME);
1476
+ kRB_IVAR_WINDOW_CHAR_CALLBACK = rb_intern(kRB_IVAR_WINDOW_CHAR_CALLBACK_NAME);
1477
+ kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK = rb_intern(kRB_IVAR_WINDOW_MOUSE_BUTTON_CALLBACK_NAME);
1478
+ kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK = rb_intern(kRB_IVAR_WINDOW_CURSOR_POSITION_CALLBACK_NAME);
1479
+ kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK = rb_intern(kRB_IVAR_WINDOW_CURSOR_ENTER_CALLBACK_NAME);
1480
+ kRB_IVAR_WINDOW_SCROLL_CALLBACK = rb_intern(kRB_IVAR_WINDOW_SCROLL_CALLBACK_NAME);
1481
+ kRB_IVAR_WINDOW_POSITION_CALLBACK = rb_intern(kRB_IVAR_WINDOW_POSITION_CALLBACK_NAME);
1482
+ kRB_IVAR_WINDOW_SIZE_CALLBACK = rb_intern(kRB_IVAR_WINDOW_SIZE_CALLBACK_NAME);
1483
+ kRB_IVAR_WINDOW_CLOSE_CALLBACK = rb_intern(kRB_IVAR_WINDOW_CLOSE_CALLBACK_NAME);
1484
+ kRB_IVAR_WINDOW_REFRESH_CALLBACK = rb_intern(kRB_IVAR_WINDOW_REFRESH_CALLBACK_NAME);
1485
+ kRB_IVAR_WINDOW_FOCUS_CALLBACK = rb_intern(kRB_IVAR_WINDOW_FOCUS_CALLBACK_NAME);
1486
+ kRB_IVAR_WINDOW_ICONIFY_CALLBACK = rb_intern(kRB_IVAR_WINDOW_ICONIFY_CALLBACK_NAME);
1487
+ kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK = rb_intern(kRB_IVAR_WINDOW_FRAMEBUFFER_SIZE_CALLBACK_NAME);
1488
+ kRB_CVAR_WINDOW_WINDOWS = rb_intern(kRB_CVAR_WINDOW_WINDOWS_NAME);
1489
+ kRB_CVAR_GLFW_ERROR_CALLBACK = rb_intern(kRB_CVAR_GLFW_ERROR_CALLBACK_NAME);
1490
+ kRB_CVAR_GLFW_MONITOR_CALLBACK = rb_intern(kRB_CVAR_GLFW_MONITOR_CALLBACK_NAME);
1491
+ kRB_CALL = rb_intern(kRB_CALL_NAME);
1492
+ kRB_RED = rb_intern(kRB_RED_NAME);
1493
+ kRB_GREEN = rb_intern(kRB_GREEN_NAME);
1494
+ kRB_BLUE = rb_intern(kRB_BLUE_NAME);
1495
+
1447
1496
  s_glfw_module = rb_define_module("Glfw");
1448
1497
  s_glfw_monitor_klass = rb_define_class_under(s_glfw_module, "Monitor", rb_cObject);
1449
1498
  s_glfw_window_klass = rb_define_class_under(s_glfw_module, "Window", rb_cObject);
@@ -1513,11 +1562,11 @@ void Init_glfw3(void)
1513
1562
  rb_define_method(s_glfw_window_klass, "set_scroll_callback__", rb_window_set_scroll_callback, 1);
1514
1563
  rb_define_method(s_glfw_window_klass, "clipboard_string=", rb_window_set_clipboard_string, 1);
1515
1564
  rb_define_method(s_glfw_window_klass, "clipboard_string", rb_window_get_clipboard_string, 0);
1516
- rb_cvar_set(s_glfw_window_klass, rb_intern(kRB_CVAR_WINDOW_WINDOWS), rb_hash_new());
1565
+ rb_cvar_set(s_glfw_window_klass, kRB_CVAR_WINDOW_WINDOWS, rb_hash_new());
1517
1566
 
1518
1567
  /* Glfw */
1519
- rb_cvar_set(s_glfw_module, rb_intern(kRB_CVAR_GLFW_ERROR_CALLBACK), Qnil);
1520
- rb_cvar_set(s_glfw_module, rb_intern(kRB_CVAR_GLFW_MONITOR_CALLBACK), Qnil);
1568
+ rb_cvar_set(s_glfw_module, kRB_CVAR_GLFW_ERROR_CALLBACK, Qnil);
1569
+ rb_cvar_set(s_glfw_module, kRB_CVAR_GLFW_MONITOR_CALLBACK, Qnil);
1521
1570
  rb_define_singleton_method(s_glfw_module, "version", rb_glfw_version, 0);
1522
1571
  rb_define_singleton_method(s_glfw_module, "terminate", rb_glfw_terminate, 0);
1523
1572
  rb_define_singleton_method(s_glfw_module, "init", rb_glfw_init, 0);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glfw3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Noel Raymond Cower