ruby-sdl2 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/gl.c.m4 CHANGED
@@ -27,15 +27,51 @@ static VALUE GLContext_new(SDL_GLContext context)
27
27
  c->context = context;
28
28
  return Data_Wrap_Struct(cGLContext, 0, GLContext_free, c);
29
29
  }
30
+
31
+ /*
32
+ * Document-module: SDL2::GL
33
+ *
34
+ * This module provides the initialize/shutdown functions of OpenGL.
35
+ *
36
+ */
37
+
38
+ /*
39
+ * Document-class: SDL2::GL::Context
40
+ *
41
+ * This class represents an OpenGL context.
42
+ *
43
+ * You must create a new OpenGL context before using
44
+ * OpenGL functions.
45
+ *
46
+ * @!method destroy?
47
+ * Return true if the context is {#destroy destroyed}.
48
+ */
49
+
30
50
  /*
31
51
  * @overload create(window)
32
52
  * Create an OpenGL context for use with an OpenGL window, and make it
33
53
  * current.
34
54
  *
35
- * @param window [SDL2::Window] the window corresponding with a new context
55
+ * @param window [SDL2::Window] the window associate with a new context
36
56
  * @return [SDL2::GL::Context]
37
57
  *
38
58
  * @see #delete
59
+ *
60
+ * @example
61
+ *
62
+ * SDL2.init(SDL2::INIT_EVERYTHING)
63
+ * # You need to create a window with `OPENGL' flag
64
+ * window = SDL2::Window.create("testgl", 0, 0, WINDOW_W, WINDOW_H,
65
+ * SDL2::Window::Flags::OPENGL)
66
+ *
67
+ * # Create a OpenGL context attached to the window
68
+ * context = SDL2::GL::Context.create(window)
69
+ *
70
+ * # You can use OpenGL functions
71
+ * :
72
+ *
73
+ * # Delete the context after using OpenGL functions
74
+ * context.destroy
39
75
  */
40
76
  static VALUE GLContext_s_create(VALUE self, VALUE window)
41
77
  {
@@ -46,6 +82,13 @@ static VALUE GLContext_s_create(VALUE self, VALUE window)
46
82
  return (current_context = GLContext_new(context));
47
83
  }
48
84
 
85
+ /*
86
+ * Delete the OpenGL context.
87
+ *
88
+ * @return [nil]
89
+ *
90
+ * @see #destroy?
91
+ */
49
92
  static VALUE GLContext_destroy(VALUE self)
50
93
  {
51
94
  GLContext* c = Get_GLContext(self);
@@ -55,6 +98,13 @@ static VALUE GLContext_destroy(VALUE self)
55
98
  return Qnil;
56
99
  }
57
100
 
101
+ /*
102
+ * @overload make_current(window)
103
+ * Set the OpenGL context for rendering into an OpenGL window.
104
+ *
105
+ * @param window [SDL2::Window] the window to associate with the context
106
+ * @return [nil]
107
+ */
58
108
  static VALUE GLContext_make_current(VALUE self, VALUE window)
59
109
  {
60
110
  HANDLE_ERROR(SDL_GL_MakeCurrent(Get_SDL_Window(window), Get_SDL_GLContext(self)));
@@ -62,27 +112,71 @@ static VALUE GLContext_make_current(VALUE self, VALUE window)
62
112
  return Qnil;
63
113
  }
64
114
 
115
+ /*
116
+ * Get the current OpenGL context.
117
+ *
118
+ * @return [SDL2::GL::Context] the curren context
119
+ * @return [nil] if there is no current context
120
+ *
121
+ * @see #make_current
122
+ */
65
123
  static VALUE GLContext_s_current(VALUE self)
66
124
  {
67
125
  return current_context;
68
126
  }
69
127
 
128
+ /*
129
+ * @overload extension_supported?(extension)
130
+ * Return true if the current context supports **extension**
131
+ *
132
+ * @param extension [String] the name of an extension
133
+ * @example
134
+ * SDL2::GL.extension_supported?("GL_EXT_framebuffer_blit")
135
+ */
70
136
  static VALUE GL_s_extension_supported_p(VALUE self, VALUE extension)
71
137
  {
72
138
  return INT2BOOL(SDL_GL_ExtensionSupported(StringValueCStr(extension)));
73
139
  }
74
140
 
141
+ /*
142
+ * Get the state of swap interval of the current context.
143
+ *
144
+ * @return [Integer]
145
+ * return 0 when vsync is not used,
146
+ * return 1 when vsync is used,
147
+ * and return -1 when vsync is not supported by the system (OS).
148
+ *
149
+ */
75
150
  static VALUE GL_s_swap_interval(VALUE self)
76
151
  {
77
152
  return INT2NUM(SDL_GL_GetSwapInterval());
78
153
  }
79
154
 
155
+
156
+ /*
157
+ * @overload swap_interval=(interval)
158
+ * Set the state of swap interval of the current context.
159
+ *
160
+ * @param interval [Integer]
161
+ * 0 if you don't want to wait for vsync,
162
+ * 1 if you want to wait for vsync,
163
+ * -1 if you want to use late swap tearing
164
+ * @return [nil]
165
+ *
166
+ */
80
167
  static VALUE GL_s_set_swap_interval(VALUE self, VALUE interval)
81
168
  {
82
169
  HANDLE_ERROR(SDL_GL_SetSwapInterval(NUM2INT(interval)));
83
170
  return Qnil;
84
171
  }
85
172
 
173
+ /*
174
+ * @overload get_attribute(attr)
175
+ * Get the acutal value for an attribute from current context.
176
+ *
177
+ * @param attr [Integer] the OpenGL attribute to query
178
+ * @return [Integer]
179
+ */
86
180
  static VALUE GL_s_get_attribute(VALUE self, VALUE attr)
87
181
  {
88
182
  int value;
@@ -90,6 +184,14 @@ static VALUE GL_s_get_attribute(VALUE self, VALUE attr)
90
184
  return INT2NUM(value);
91
185
  }
92
186
 
187
+ /*
188
+ * @overload set_attribute(attr, value)
189
+ * Set an OpenGL window attribute before window creation.
190
+ *
191
+ * @param attr [Integer] the OpenGL attribute to set
192
+ * @param value [Integer] the desired value for the attribute
193
+ * @return [value]
194
+ */
93
195
  static VALUE GL_s_set_attribute(VALUE self, VALUE attr, VALUE value)
94
196
  {
95
197
  HANDLE_ERROR(SDL_GL_SetAttribute(NUM2INT(attr), NUM2INT(value)));
@@ -113,7 +215,7 @@ void rubysdl2_init_gl(void)
113
215
  rb_define_module_function(mGL, "swap_interval=", GL_s_set_swap_interval, 1);
114
216
  rb_define_module_function(mGL, "get_attribute", GL_s_get_attribute, 1);
115
217
  rb_define_module_function(mGL, "set_attribute", GL_s_set_attribute, 2);
116
-
218
+
117
219
  /* define(`DEFINE_GL_ATTR_CONST',`rb_define_const(mGL, "$1", INT2NUM(SDL_GL_$1))') */
118
220
  /* OpenGL attribute - minimal bits of red channel in color buffer, default is 3 */
119
221
  DEFINE_GL_ATTR_CONST(RED_SIZE);
@@ -161,21 +263,33 @@ void rubysdl2_init_gl(void)
161
263
  DEFINE_GL_ATTR_CONST(CONTEXT_MAJOR_VERSION);
162
264
  /* OpenGL attribute - OpenGL context minor version */
163
265
  DEFINE_GL_ATTR_CONST(CONTEXT_MINOR_VERSION);
164
- /* OpenGL attribute - the bit combination of following constants, or 0.
165
- * default is 0
266
+ /*
267
+ * INT2NUM(SDL_GL_CONTEXT_FLAGS):
166
268
  *
269
+ * OpenGL attribute - the bit combination of following constants, or 0.
270
+ * default is 0
271
+ *
167
272
  * * {SDL2::GL::CONTEXT_DEBUG_FLAG}
168
273
  * * {SDL2::GL::CONTEXT_FORWARD_COMPATIBLE_FLAG}
169
274
  * * {SDL2::GL::CONTEXT_ROBUST_ACCESS_FLAG}
170
275
  * * {SDL2::GL::CONTEXT_RESET_ISOLATION_FLAG}
276
+ *
277
+ * These flags are mapped to some OpenGL extensions. Please see
278
+ * the documentation of each constant for more details.
279
+ *
280
+ * https://wiki.libsdl.org/SDL_GLcontextFlag
171
281
  */
172
282
  DEFINE_GL_ATTR_CONST(CONTEXT_FLAGS);
173
- /* OpenGL attribute - type of GL context, one of the following constants,
283
+ /* INT2NUM(SDL_GL_CONTEXT_PROFILE_MASK):
284
+ *
285
+ * OpenGL attribute - type of GL context, one of the following constants,
174
286
  * defaults depends on platform
175
287
  *
176
- * * {SDL2::GL::CONTEXT::PROFILE_CORE}
177
- * * {SDL2::GL::CONTEXT::PROFILE_COMPATIBLITY}
178
- * * {SDL2::GL::CONTEXT::PROFILE_ES}
288
+ * * {CONTEXT_PROFILE_CORE}
289
+ * * {CONTEXT_PROFILE_COMPATIBILITY}
290
+ * * {CONTEXT_PROFILE_ES}
291
+ *
292
+ * https://wiki.libsdl.org/SDL_GLprofile
179
293
  */
180
294
  DEFINE_GL_ATTR_CONST(CONTEXT_PROFILE_MASK);
181
295
  /* OpenGL attribute - OpenGL context sharing, default is 0 */
@@ -188,13 +302,49 @@ void rubysdl2_init_gl(void)
188
302
  DEFINE_GL_ATTR_CONST(CONTEXT_EGL);
189
303
 
190
304
  /* define(`DEFINE_GL_CONTEXT_CONST',`rb_define_const(mGL, "CONTEXT_$1", INT2NUM(SDL_GL_CONTEXT_$1))') */
305
+
306
+ /* This flag maps to GLX_CONTEXT_DEBUG_BIT_ARB in
307
+ * the GLX_ARB_create_context extension for X11
308
+ * and WGL_CONTEXT_DEBUG_BIT_ARB in the WGL_ARB_create_context
309
+ * extension for Windows.
310
+ */
191
311
  DEFINE_GL_CONTEXT_CONST(DEBUG_FLAG);
312
+ /*
313
+ * This flag maps to GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB in the
314
+ * GLX_ARB_create_context extension for X11 and
315
+ * WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB in the WGL_ARB_create_context
316
+ * extension for Windows.
317
+ */
192
318
  DEFINE_GL_CONTEXT_CONST(FORWARD_COMPATIBLE_FLAG);
319
+ /*
320
+ * This flag maps to GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB in the
321
+ * GLX_ARB_create_context_robustness extension for X11 and
322
+ * WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB in the WGL_ARB_create_context_robustness
323
+ * extension for Windows.
324
+ */
193
325
  DEFINE_GL_CONTEXT_CONST(ROBUST_ACCESS_FLAG);
326
+ /*
327
+ * This flag maps to GLX_CONTEXT_RESET_ISOLATION_BIT_ARB in the
328
+ * GLX_ARB_robustness_isolation extension for X11 and
329
+ * WGL_CONTEXT_RESET_ISOLATION_BIT_ARB in the WGL_ARB_create_context_robustness
330
+ * extension for Windows.
331
+ */
194
332
  DEFINE_GL_CONTEXT_CONST(RESET_ISOLATION_FLAG);
195
-
333
+
334
+ /*
335
+ * OpenGL core profile - deprecated
336
+ * functions are disabled
337
+ */
196
338
  DEFINE_GL_CONTEXT_CONST(PROFILE_CORE);
339
+ /*
340
+ * OpenGL compatibility profile -
341
+ * deprecated functions are allowed
342
+ */
197
343
  DEFINE_GL_CONTEXT_CONST(PROFILE_COMPATIBILITY);
344
+ /*
345
+ * OpenGL ES profile - only a subset of the
346
+ * base OpenGL functionality is available
347
+ */
198
348
  DEFINE_GL_CONTEXT_CONST(PROFILE_ES);
199
349
 
200
350
  rb_gc_register_address(&current_context);
data/hint.c CHANGED
@@ -3,12 +3,33 @@
3
3
 
4
4
  static VALUE sym_priority;
5
5
 
6
+ /*
7
+ * Document-module: SDL2::Hints
8
+ *
9
+ * This module enables you to get and set configuration hints.
10
+ *
11
+ */
12
+
13
+ /*
14
+ * Clear all hints set by {.[]=}.
15
+ *
16
+ * @return [nil]
17
+ */
6
18
  static VALUE Hints_s_clear(VALUE self)
7
19
  {
8
20
  SDL_ClearHints();
9
21
  return Qnil;
10
22
  }
11
23
 
24
+ /*
25
+ * @overload [](hint)
26
+ * Get the value of a hint.
27
+ *
28
+ * @param hint [String] the name of the hint to query
29
+ *
30
+ * @return [String] the string value of a hint
31
+ * @return [nil] if the hint isn't set
32
+ */
12
33
  static VALUE Hints_s_aref(VALUE self, VALUE name)
13
34
  {
14
35
  const char* value = SDL_GetHint(StringValueCStr(name));
@@ -18,6 +39,29 @@ static VALUE Hints_s_aref(VALUE self, VALUE name)
18
39
  return Qnil;
19
40
  }
20
41
 
42
+ /*
43
+ * Set the value of a hint.
44
+ *
45
+ * @overload []=(hint, value)
46
+ * Set a hint with normal priority.
47
+ *
48
+ * @param hint [String] the name of the hint to query
49
+ * @param value [String] the value of the hint varaible
50
+ *
51
+ * @overload []=(hint, priority: , value)
52
+ * Set a hint with given priority.
53
+ *
54
+ * @param hint [String] the name of the hint to query
55
+ * @param priority [Integer] the priority, one of the
56
+ * {DEFAULT}, {NORMAL}, or {OVERRIDE}.
57
+ * @param value [String] the value of the hint varaible
58
+ *
59
+ * @return [Boolean] return true if the hint was set
60
+ *
61
+ * @example
62
+ * SDL2::Hints["SDL_HINT_XINPUT_ENABLED", priority: SDL2::Hints::OVERRIDE] = "0"
63
+ *
64
+ */
21
65
  static VALUE Hints_s_aset(int argc, VALUE* argv, VALUE self)
22
66
  {
23
67
  VALUE name, pri, value;
@@ -41,16 +85,15 @@ void rubysdl2_init_hints(void)
41
85
  VALUE mHints = rb_define_module_under(mSDL2, "Hints");
42
86
 
43
87
  rb_define_singleton_method(mHints, "clear", Hints_s_clear, 0);
44
- rb_define_singleton_method(mHints, "[]", Hints_s_aref, 1);
45
88
  rb_define_singleton_method(mHints, "get", Hints_s_aref, 1);
46
89
  rb_define_singleton_method(mHints, "[]=", Hints_s_aset, -1);
47
- rb_define_singleton_method(mHints, "set", Hints_s_aset, -1);
48
-
49
- #define DEFINE_HINT_CONST(t) \
50
- rb_define_const(mHints, #t, INT2NUM(SDL_HINT_##t))
51
- DEFINE_HINT_CONST(DEFAULT);
52
- DEFINE_HINT_CONST(NORMAL);
53
- DEFINE_HINT_CONST(OVERRIDE);
90
+
91
+ /* low priority, used fro default values */
92
+ rb_define_const(mHints, "DEFAULT", INT2NUM(SDL_HINT_DEFAULT));
93
+ /* medium priority, overrided by an environment variable */
94
+ rb_define_const(mHints, "NORMAL", INT2NUM(SDL_HINT_NORMAL));
95
+ /* high priority, this priority overrides the value by environment variables */
96
+ rb_define_const(mHints, "OVERRIDE", INT2NUM(SDL_HINT_OVERRIDE));
54
97
 
55
98
  sym_priority = ID2SYM(rb_intern("priority"));
56
99
  }
data/key.c.m4 CHANGED
@@ -168,6 +168,12 @@ static VALUE Mod_s_set_state(VALUE self, VALUE keymod)
168
168
  return Qnil;
169
169
  }
170
170
 
171
+ /*
172
+ * Document-module: SDL2::TextInput
173
+ *
174
+ * This module provides Unicode text input support.
175
+ *
176
+ */
171
177
  static VALUE TextInput_s_active_p(VALUE self)
172
178
  {
173
179
  return INT2BOOL(SDL_IsTextInputActive());
@@ -1,6 +1,6 @@
1
1
  module SDL2
2
2
  # Version string of Ruby/SDL2
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  # Version of Ruby/SDL2, [major, minor, patch level]
5
- VERSION_NUMBER = [0, 1, 0]
5
+ VERSION_NUMBER = [0, 2, 0]
6
6
  end
@@ -4,6 +4,8 @@
4
4
  static VALUE sym_flags, sym_window, sym_title, sym_message, sym_buttons, sym_color_scheme,
5
5
  sym_id, sym_text, sym_bg, sym_button_border, sym_button_bg, sym_button_selected;
6
6
 
7
+ static VALUE mMessageBox;
8
+
7
9
  static inline SDL_Window* Get_SDL_Window_or_NULL(VALUE win)
8
10
  {
9
11
  if (win == Qnil)
@@ -13,7 +15,13 @@ static inline SDL_Window* Get_SDL_Window_or_NULL(VALUE win)
13
15
  }
14
16
 
15
17
  /*
16
- * @overload show_simple_message_box(flag, title, message, parent)
18
+ * Document-module: SDL2::MessageBox
19
+ *
20
+ * This module provides functions to show a modal message box.
21
+ */
22
+
23
+ /*
24
+ * @overload show_simple_box(flag, title, message, parent)
17
25
  * Create a simple modal message box.
18
26
  *
19
27
  * This function pauses all ruby's threads and
@@ -23,13 +31,13 @@ static inline SDL_Window* Get_SDL_Window_or_NULL(VALUE win)
23
31
  *
24
32
  * You specify one of the following constants as flag
25
33
  *
26
- * * {SDL2::MESSAGEBOX_ERROR}
27
- * * {SDL2::MESSAGEBOX_WARNING}
28
- * * {SDL2::MESSAGEBOX_INFORMATION}
34
+ * * {SDL2::MessageBox::ERROR}
35
+ * * {SDL2::MessageBox::WARNING}
36
+ * * {SDL2::MessageBox::INFORMATION}
29
37
  *
30
38
  * @example show warning dialog
31
39
  *
32
- * SDL2.show_simple_message_box(SDL2::MESSAGEBOX_WARNING, "warning!",
40
+ * SDL2.show_simple_message_box(SDL2::MessageBox::WARNING, "warning!",
33
41
  * "Somewhat special warning message!!", nil)
34
42
  *
35
43
  * @param [Integer] flag one of the above flags
@@ -40,8 +48,8 @@ static inline SDL_Window* Get_SDL_Window_or_NULL(VALUE win)
40
48
  *
41
49
  * @see .show_message_box
42
50
  */
43
- static VALUE SDL2_s_show_simple_message_box(VALUE self, VALUE flag, VALUE title,
44
- VALUE message, VALUE parent)
51
+ static VALUE MessageBox_s_show_simple_box(VALUE self, VALUE flag, VALUE title,
52
+ VALUE message, VALUE parent)
45
53
  {
46
54
  title = rb_str_export_to_utf8(title);
47
55
  message = rb_str_export_to_utf8(message);
@@ -62,19 +70,19 @@ static void set_color_scheme(VALUE colors, VALUE sym, SDL_MessageBoxColor* color
62
70
  }
63
71
 
64
72
  /*
65
- * @overload show_message_box(flag:, window: nil, title:, message:, buttons:, color_scheme: nil)
73
+ * @overload show(flag:, window: nil, title:, message:, buttons:, color_scheme: nil)
66
74
  * Create a model message box.
67
75
  *
68
76
  * You specify one of the following constants as flag
69
77
  *
70
- * * {SDL2::MESSAGEBOX_ERROR}
71
- * * {SDL2::MESSAGEBOX_WARNING}
72
- * * {SDL2::MESSAGEBOX_INFORMATION}
78
+ * * {SDL2::MessageBox::ERROR}
79
+ * * {SDL2::MessageBox::WARNING}
80
+ * * {SDL2::MessageBox::INFORMATION}
73
81
  *
74
82
  * One button in the dialog represents a hash with folloing elements.
75
83
  *
76
- * { flags: 0, SDL2::MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT, or
77
- * SDL2::MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT,
84
+ * { flags: 0, SDL2::MessageBox::BUTTON_ESCAPEKEY_DEFAULT, or
85
+ * SDL2::MessageBox::BUTTON_RETURNKEY_DEFAULT,
78
86
  * you can ignore it for 0,
79
87
  * text: text of a button,
80
88
  * id: index of the button
@@ -95,7 +103,7 @@ static void set_color_scheme(VALUE colors, VALUE sym, SDL_MessageBoxColor* color
95
103
  * You can create a message box before calling {SDL2.init}.
96
104
  *
97
105
  * @example show a dialog with 3 buttons
98
- * button = SDL2.show_message_box(flags: SDL2::MESSAGEBOX_WARNING,
106
+ * button = SDL2::MessageBox.show(flags: SDL2::MessageBox::WARNING,
99
107
  * window: nil,
100
108
  * title: "Warning window",
101
109
  * message: "Here is the warning message",
@@ -103,11 +111,11 @@ static void set_color_scheme(VALUE colors, VALUE sym, SDL_MessageBoxColor* color
103
111
  * id: 0,
104
112
  * text: "No",
105
113
  * },
106
- * {flags: SDL2::MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT,
114
+ * {flags: SDL2::MessageBox::BUTTON_RETURNKEY_DEFAULT,
107
115
  * id: 1,
108
116
  * text: "Yes",
109
117
  * },
110
- * {flags: SDL2::MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT,
118
+ * {flags: SDL2::MessageBox::BUTTON_ESCAPEKEY_DEFAULT,
111
119
  * id: 2,
112
120
  * text: "Cancel",
113
121
  * },
@@ -132,7 +140,7 @@ static void set_color_scheme(VALUE colors, VALUE sym, SDL_MessageBoxColor* color
132
140
  *
133
141
  * @see .show_simple_message_box
134
142
  */
135
- static VALUE SDL2_s_show_message_box(VALUE self, VALUE params)
143
+ static VALUE MessageBox_s_show(VALUE self, VALUE params)
136
144
  {
137
145
  SDL_MessageBoxData mb_data;
138
146
  VALUE title, message, texts, buttons, color_scheme;
@@ -192,28 +200,22 @@ static VALUE SDL2_s_show_message_box(VALUE self, VALUE params)
192
200
 
193
201
  void rubysdl2_init_messagebox(void)
194
202
  {
195
- rb_define_singleton_method(mSDL2, "show_simple_message_box",
196
- SDL2_s_show_simple_message_box, 4);
197
- rb_define_singleton_method(mSDL2, "show_message_box", SDL2_s_show_message_box, 1);
198
- /* This flag means that the message box shows an error message in
199
- * {SDL2.show_simple_message_box} and {SDL2.show_message_box}.
200
- */
201
- rb_define_const(mSDL2, "MESSAGEBOX_ERROR", INT2NUM(SDL_MESSAGEBOX_ERROR));
202
- /* This flag means that the message box shows a warning message in
203
- * {SDL2.show_simple_message_box} and {SDL2.show_message_box}.
204
- */
205
- rb_define_const(mSDL2, "MESSAGEBOX_WARNING", INT2NUM(SDL_MESSAGEBOX_WARNING));
206
- /* This flag means that the message box shows an informational message in
207
- * {SDL2.show_simple_message_box} and {SDL2.show_message_box}.
208
- */
209
- rb_define_const(mSDL2, "MESSAGEBOX_INFORMATION", INT2NUM(SDL_MESSAGEBOX_INFORMATION));
210
- /* This flag represents the button is selected when return key is pressed in
211
- * {SDL2.show_message_box}. */
212
- rb_define_const(mSDL2, "MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT",
203
+ mMessageBox = rb_define_module_under(mSDL2, "MessageBox");
204
+
205
+ rb_define_singleton_method(mMessageBox, "show_simple_box",
206
+ MessageBox_s_show_simple_box, 4);
207
+ rb_define_singleton_method(mMessageBox, "show", MessageBox_s_show, 1);
208
+ /* This flag means that the message box shows an error message */
209
+ rb_define_const(mMessageBox, "ERROR", INT2NUM(SDL_MESSAGEBOX_ERROR));
210
+ /* This flag means that the message box shows a warning message */
211
+ rb_define_const(mMessageBox, "WARNING", INT2NUM(SDL_MESSAGEBOX_WARNING));
212
+ /* This flag means that the message box shows an informational message */
213
+ rb_define_const(mMessageBox, "INFORMATION", INT2NUM(SDL_MESSAGEBOX_INFORMATION));
214
+ /* This flag represents the button is selected when return key is pressed */
215
+ rb_define_const(mMessageBox, "BUTTON_RETURNKEY_DEFAULT",
213
216
  INT2NUM(SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT));
214
- /* This flag represents the button is selected when escape key is pressed in
215
- * {SDL2.show_message_box}. */
216
- rb_define_const(mSDL2, "MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT",
217
+ /* This flag represents the button is selected when escape key is pressed */
218
+ rb_define_const(mMessageBox, "BUTTON_ESCAPEKEY_DEFAULT",
217
219
  INT2NUM(SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT));
218
220
 
219
221
  sym_flags = ID2SYM(rb_intern("flags"));