ruby-sdl2 0.1.0 → 0.2.0

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.
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"));