gosu 1.0.0.pre1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/ext/gosu/extconf.rb +4 -24
  3. data/include/Gosu/Buttons.hpp +18 -17
  4. data/include/Gosu/Font.hpp +1 -1
  5. data/include/Gosu/Fwd.hpp +0 -5
  6. data/include/Gosu/Input.hpp +13 -40
  7. data/include/Gosu/Utility.hpp +14 -3
  8. data/include/Gosu/Version.hpp +3 -3
  9. data/include/Gosu/Window.hpp +25 -21
  10. data/lib/OpenAL32.dll +0 -0
  11. data/lib/gosu/patches.rb +0 -14
  12. data/lib/gosu/preview.rb +1 -3
  13. data/lib/gosu/swig_patches.rb +11 -10
  14. data/lib64/OpenAL32.dll +0 -0
  15. data/rdoc/gosu.rb +20 -6
  16. data/src/AudioFile.hpp +3 -0
  17. data/src/Input.cpp +28 -38
  18. data/src/Resolution.cpp +8 -8
  19. data/src/RubyGosu.cxx +646 -91
  20. data/src/RubyGosu.h +1 -1
  21. data/src/TrueTypeFontWin.cpp +3 -3
  22. data/src/Window.cpp +60 -31
  23. data/src/WindowUIKit.cpp +21 -9
  24. metadata +5 -31
  25. data/include/Gosu/AutoLink.hpp +0 -14
  26. data/include/Gosu/Channel.h +0 -25
  27. data/include/Gosu/Color.h +0 -38
  28. data/include/Gosu/Font.h +0 -36
  29. data/include/Gosu/Gosu.h +0 -82
  30. data/include/Gosu/Image.h +0 -54
  31. data/include/Gosu/Sample.h +0 -19
  32. data/include/Gosu/Song.h +0 -24
  33. data/include/Gosu/TextInput.h +0 -30
  34. data/include/Gosu/Window.h +0 -63
  35. data/lib/gosu/zen.rb +0 -89
  36. data/lib/libmpg123.dll +0 -0
  37. data/lib/libsndfile.dll +0 -0
  38. data/lib64/libmpg123.dll +0 -0
  39. data/lib64/libsndfile.dll +0 -0
  40. data/src/ChannelWrapper.cpp +0 -50
  41. data/src/ColorWrapper.cpp +0 -126
  42. data/src/Constants.cpp +0 -334
  43. data/src/FontWrapper.cpp +0 -74
  44. data/src/GosuWrapper.cpp +0 -251
  45. data/src/ImageWrapper.cpp +0 -168
  46. data/src/MPEGFile.hpp +0 -90
  47. data/src/SampleWrapper.cpp +0 -30
  48. data/src/SongWrapper.cpp +0 -52
  49. data/src/TextInputWrapper.cpp +0 -101
  50. data/src/WindowWrapper.cpp +0 -317
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd0fd86f4301c36a1537d5adaa45e6bc7fd918e47191909bb1bc238624d01f48
4
- data.tar.gz: 0d79c98a88fc7c433a8eaf3b5a432da6a9c24c86d6388d6e853c6d6c4a44f4a4
3
+ metadata.gz: 0c00e9925256d5f0c158716eeb225fd8bc5b9af17335f2a3b67b892a1c7d87d7
4
+ data.tar.gz: 3e2edbae0cf3ae45cf926ff228fd621c2d092c0e1ccbf425884b0ba01c984199
5
5
  SHA512:
6
- metadata.gz: d3393dda33deff7db00d4fda1f40faac895243f6dc8c0d6c776eaf905bc44e64235ac0e3e2ff9067bac7a971d6794c02e526755e7602b98f4fc58b2053c1441a
7
- data.tar.gz: 1fce5bf10d01a9e2ab6df0d30d62a3105bb98050c8efe94701eb09d8cbc64fa19a9a7fac02bc1d7a2ab62d74bb591b5bce1fdc1ae5a49ccdc57d8d6911ec9757
6
+ metadata.gz: ab8f4550f297ae89f321e133b3ca9e0b5f77ab64b9c66415e379270eb90ac1c000de685b175e3dbfb5a9de34afa3cfb4eda3d8a5e40ebe9dd18b25ef22964dcf
7
+ data.tar.gz: 87803f08a8a4a13ec027ee265cc08be511eb95c30bc1494766310485d757799bffc794427f2fe1002142b00b1282b4ade6b90b985f01f00f3b03db041a12299b
@@ -5,11 +5,9 @@ when /^mingw/
5
5
  windows = true
6
6
  when /^darwin/
7
7
  macos = true
8
- when /linux/
9
- linux = true
10
8
  end
11
9
 
12
- if macos or linux
10
+ if not windows
13
11
  puts 'The Gosu gem requires some libraries to be installed system-wide.'
14
12
  puts 'See the following site for a list:'
15
13
  if macos
@@ -54,12 +52,11 @@ if windows
54
52
  $LDFLAGS << " -L../../dependencies/al_soft/x86 -L../../dependencies/SDL/lib/x86"
55
53
  end
56
54
  $LDFLAGS << " -lgdi32 -lwinmm -lOpenGL32 -lOpenAL32 -lSDL2"
55
+ # Link libstdc++ statically to avoid having another DLL dependency when using Ocra.
56
+ $LDFLAGS << " -static-libstdc++"
57
57
  elsif macos
58
58
  # Compile all C++ files as Objective C++ on macOS since mkmf does not support .mm files.
59
59
  $CXXFLAGS << " -x objective-c++ -fobjc-arc -DNDEBUG"
60
- # Prevents issues with Apple's pre-installed Ruby 2.3 on macOS 10.13.
61
- # https://github.com/gosu/gosu/issues/424
62
- $CXXFLAGS << " -Wno-reserved-user-defined-literal"
63
60
 
64
61
  # Explicitly specify libc++ as the standard library.
65
62
  # rvm will sometimes try to override this:
@@ -82,7 +79,7 @@ elsif macos
82
79
  $LDFLAGS.gsub! "-arch i386", ""
83
80
  $ARCH_FLAG.gsub! "-arch i386", ""
84
81
  CONFIG['LDSHARED'].gsub! "-arch i386", ""
85
- elsif linux
82
+ else
86
83
  if /BCM2708/ =~ `cat /proc/cpuinfo`
87
84
  $INCFLAGS << " -I/opt/vc/include/GLES"
88
85
  $INCFLAGS << " -I/opt/vc/include"
@@ -113,21 +110,4 @@ Dir.glob('../../dependencies/**/*.c').each do |dep|
113
110
  end
114
111
  end
115
112
 
116
- # Gem::Version#initialize is apparently broken in some versions of Ruby, so use a local helper.
117
- def ruby_newer_than?(want_version)
118
- have_parts = RUBY_VERSION.split('.').map { |part| part.to_i }
119
- want_parts = want_version.split('.').map { |part| part.to_i }
120
- have_parts << 0 while have_parts.size < want_parts.size
121
- want_parts << 0 while want_parts.size < have_parts.size
122
- (have_parts <=> want_parts) == 1
123
- end
124
-
125
- # In some versions of Ruby/mkmf, the $CXXFLAGS variable does not work.
126
- # We can modify CONFIG instead, and our changes will end up in the Makefile.
127
- # See: http://bugs.ruby-lang.org/issues/8315
128
- # The lower bound was reduced to 1.9.3 here: https://github.com/gosu/gosu/issues/321
129
- if ruby_newer_than?("1.9.2") and not ruby_newer_than?("2.2.0")
130
- CONFIG['CXXFLAGS'] = "#$CFLAGS #$CXXFLAGS"
131
- end
132
-
133
113
  create_makefile "gosu", "../../src"
@@ -1,15 +1,12 @@
1
1
  #pragma once
2
2
 
3
- #include <Gosu/Platform.hpp>
4
-
5
3
  namespace Gosu
6
4
  {
7
- //! List of button ids that can be used with Gosu::Input.
8
- //! This enumeration contains ids for keyboard keys (KB_*),
9
- //! mouse buttons and mouse wheel (MS_*) and gamepad buttons (GP_*).
10
- enum ButtonName
5
+ /// List of button IDs that can be used with Gosu::Input.
6
+ /// This enumeration contains IDs for keyboard keys (KB_*),
7
+ /// mouse buttons and mouse wheel (MS_*), as well as gamepad buttons (GP_*).
8
+ enum Button
11
9
  {
12
- KB_RANGE_BEGIN,
13
10
  KB_ESCAPE = 41,
14
11
  KB_F1 = 58,
15
12
  KB_F2 = 59,
@@ -51,8 +48,8 @@ namespace Gosu
51
48
  KB_DOWN = 81,
52
49
  KB_HOME = 74,
53
50
  KB_END = 77,
54
- KB_PRINTSCREEN = 70,
55
- KB_SCROLLLOCK = 71,
51
+ KB_PRINT_SCREEN = 70,
52
+ KB_SCROLL_LOCK = 71,
56
53
  KB_PAUSE = 72,
57
54
  KB_INSERT = 73,
58
55
  KB_DELETE = 76,
@@ -70,7 +67,7 @@ namespace Gosu
70
67
  KB_COMMA = 54,
71
68
  KB_PERIOD = 55,
72
69
  KB_SLASH = 56,
73
- KB_CAPSLOCK = 57,
70
+ KB_CAPS_LOCK = 57,
74
71
  KB_A = 4,
75
72
  KB_B = 5,
76
73
  KB_C = 6,
@@ -97,7 +94,8 @@ namespace Gosu
97
94
  KB_X = 27,
98
95
  KB_Y = 28,
99
96
  KB_Z = 29,
100
- KB_ISO = 100, // ` on US/UK macOS, < on EU macOS, \ on US/UK Windows
97
+ /// ` on US/UK macOS, < on EU macOS, \ on US/UK Windows
98
+ KB_ISO = 100,
101
99
  KB_NUMPAD_0 = 98,
102
100
  KB_NUMPAD_1 = 89,
103
101
  KB_NUMPAD_2 = 90,
@@ -129,7 +127,6 @@ namespace Gosu
129
127
  MS_OTHER_5,
130
128
  MS_OTHER_6,
131
129
  MS_OTHER_7,
132
- MS_RANGE_END = 0x110,
133
130
 
134
131
  GP_RANGE_BEGIN,
135
132
  GP_DPAD_LEFT = GP_RANGE_BEGIN,
@@ -263,8 +260,14 @@ namespace Gosu
263
260
  GP_3_DOWN,
264
261
  GP_RANGE_END = GP_3_DOWN,
265
262
 
266
- GP_AXES_RANGE_BEGIN,
267
- GP_LEFT_STICK_X_AXIS = GP_AXES_RANGE_BEGIN,
263
+ NUM_GAMEPADS = 4,
264
+ NO_BUTTON = 0xffffffff,
265
+ };
266
+
267
+ /// List of axis IDs that can be used with Gosu::Input.
268
+ enum Axis
269
+ {
270
+ GP_LEFT_STICK_X_AXIS,
268
271
  GP_LEFT_STICK_Y_AXIS,
269
272
  GP_RIGHT_STICK_X_AXIS,
270
273
  GP_RIGHT_STICK_Y_AXIS,
@@ -298,9 +301,7 @@ namespace Gosu
298
301
  GP_3_RIGHT_STICK_Y_AXIS,
299
302
  GP_3_LEFT_TRIGGER_AXIS,
300
303
  GP_3_RIGHT_TRIGGER_AXIS,
301
- GP_AXES_RANGE_END = GP_3_RIGHT_TRIGGER_AXIS,
302
304
 
303
- NUM_GAMEPADS = 4,
304
- NO_BUTTON = 0xffffffff,
305
+ NUM_AXES
305
306
  };
306
307
  }
@@ -40,7 +40,7 @@ namespace Gosu
40
40
 
41
41
  //! Returns the width, in pixels, the given text would occupy if drawn.
42
42
  double text_width(const std::string& text) const;
43
- //! Returns the width, in pixels, the given text would occupy if drawn.
43
+ //! Returns the width, in pixels, the given markup would occupy if drawn.
44
44
  double markup_width(const std::string& markup) const;
45
45
 
46
46
  //! Draws text so the top left corner of the text is at (x; y).
@@ -1,14 +1,9 @@
1
- //! \file Fwd.hpp
2
- //! Contains forward declarations of all of Gosu's available classes.
3
-
4
1
  #pragma once
5
2
 
6
- //! The library's main namespace.
7
3
  namespace Gosu
8
4
  {
9
5
  class Bitmap;
10
6
  class Buffer;
11
- class Button;
12
7
  class Channel;
13
8
  class Color;
14
9
  class File;
@@ -1,11 +1,9 @@
1
- //! \file Input.hpp
2
- //! Interface of the Input class.
3
-
4
1
  #pragma once
5
2
 
6
3
  #include <Gosu/Fwd.hpp>
7
4
  #include <Gosu/Buttons.hpp>
8
5
  #include <Gosu/Platform.hpp>
6
+ #include <Gosu/Utility.hpp>
9
7
  #include <functional>
10
8
  #include <memory>
11
9
  #include <string>
@@ -13,56 +11,30 @@
13
11
 
14
12
  namespace Gosu
15
13
  {
16
- //! Very lightweight class that identifies a button (keyboard, mouse or other device).
17
- class Button
18
- {
19
- unsigned id_;
20
-
21
- public:
22
- //! For internal use.
23
- explicit Button(unsigned id) : id_(id) {}
24
- //! For internal use.
25
- unsigned id() const { return id_; }
26
-
27
- //! Default constructor; == no_button.
28
- Button() : id_(NO_BUTTON) {}
29
-
30
- //! Conversion from ButtonName constants.
31
- Button(ButtonName name) : id_(name) {}
32
- };
33
-
34
- //! Tests whether two Buttons identify the same physical button.
35
- inline bool operator==(Button lhs, Button rhs) { return lhs.id() == rhs.id(); }
36
- inline bool operator!=(Button lhs, Button rhs) { return !(lhs == rhs); }
37
- inline bool operator<(Button lhs, Button rhs) { return lhs.id() < rhs.id(); }
38
-
39
- //! Struct that saves information about a touch on the surface of a multi-
40
- //! touch device.
41
- //! Available even on non-iPhone platforms to make it easier to compile the
42
- //! same source for multiple platforms.
14
+ /// Struct that saves information about a touch on the surface of a multi-touch device.
15
+ /// (Right now this is only supported on iOS.)
43
16
  struct Touch
44
17
  {
45
- //! Allows for identification of a touch across calls.
18
+ /// Allows for identification of a touch across calls.
46
19
  void* id;
47
- //! Position of a touch on the touch screen.
48
- float x, y;
20
+ /// Position of a touch on the touch screen.
21
+ double x, y;
49
22
  };
50
23
  typedef std::vector<Touch> Touches;
51
24
 
52
- //! Manages initialization and shutdown of the input system. Only one Input
53
- //! instance can exist per application.
54
- class Input
25
+ /// Manages initialization and shutdown of the input system.
26
+ /// Only one Input instance can exist per application.
27
+ class Input : Noncopyable
55
28
  {
56
29
  struct Impl;
57
- // Non-movable (const) to avoid dangling internal references.
58
- const std::unique_ptr<Impl> pimpl;
30
+ std::unique_ptr<Impl> pimpl;
59
31
 
60
32
  public:
61
33
  #ifdef GOSU_IS_IPHONE
62
34
  Input(void* view, float update_interval);
63
35
  void feed_touch_event(std::function<void (Touch)>& callback, void* touches);
64
36
  #else
65
- Input(void* window);
37
+ explicit Input(void* window);
66
38
  bool feed_sdl_event(void* event);
67
39
  #endif
68
40
 
@@ -87,7 +59,8 @@ namespace Gosu
87
59
  //! Updated every tick.
88
60
  static bool down(Button btn);
89
61
 
90
- //! Returns the value of a Gamepad joystick in the range -1.0 thru +1.0 and trigger in the range 0.0 thru +1.0.
62
+ //! Returns the value of a gamepad stick in the range -1.0 through +1.0, or a trigger in the
63
+ //! range 0.0 through +1.0.
91
64
  //! Updated every tick.
92
65
  static double axis(Button btn);
93
66
 
@@ -1,6 +1,3 @@
1
- //! \file Utility.hpp
2
- //! General purpose utility functions.
3
-
4
1
  #pragma once
5
2
 
6
3
  #include <string>
@@ -17,4 +14,18 @@ namespace Gosu
17
14
  //! values such as 'en_US', 'de_DE.UTF-8', 'ja', 'zh-Hans'.
18
15
  //! The first two letters will always be a language code.
19
16
  std::string language();
17
+
18
+ class Noncopyable
19
+ {
20
+ protected:
21
+ Noncopyable() = default;
22
+ ~Noncopyable() = default;
23
+
24
+ public:
25
+ Noncopyable(const Noncopyable& other) = delete;
26
+ Noncopyable& operator=(const Noncopyable& other) = delete;
27
+
28
+ Noncopyable(Noncopyable&& other) = delete;
29
+ Noncopyable& operator=(Noncopyable&& other) = delete;
30
+ };
20
31
  }
@@ -2,9 +2,9 @@
2
2
 
3
3
  #include <string>
4
4
 
5
- #define GOSU_MAJOR_VERSION 0
6
- #define GOSU_MINOR_VERSION 15
7
- #define GOSU_POINT_VERSION 2
5
+ #define GOSU_MAJOR_VERSION 1
6
+ #define GOSU_MINOR_VERSION 1
7
+ #define GOSU_POINT_VERSION 0
8
8
 
9
9
  namespace Gosu
10
10
  {
@@ -1,6 +1,3 @@
1
- //! \file Window.hpp
2
- //! Interface of the Window class.
3
-
4
1
  #pragma once
5
2
 
6
3
  #include <Gosu/Fwd.hpp>
@@ -9,15 +6,16 @@
9
6
  #include <memory>
10
7
  #include <string>
11
8
 
12
- #ifdef GOSU_IS_WIN
13
- #ifndef NOMINMAX
14
- #define NOMINMAX
15
- #endif
16
- #include <windows.h>
17
- #endif
18
-
19
9
  namespace Gosu
20
10
  {
11
+ enum WindowFlags
12
+ {
13
+ WF_WINDOWED,
14
+ WF_FULLSCREEN = 1,
15
+ WF_RESIZABLE = 2,
16
+ WF_BORDERLESS = 4
17
+ };
18
+
21
19
  //! Convenient all-in-one class that serves as the foundation of a standard Gosu application.
22
20
  //! Manages initialization of all of Gosu's core components and provides timing functionality.
23
21
  //! Note that you should really only use one instance of this class at the same time.
@@ -31,17 +29,23 @@ namespace Gosu
31
29
  //! \param width Width of the window in points; that is, pixels on a normal display, and
32
30
  //! 'points' on a high-resolution display.
33
31
  //! \param height See width.
32
+ //! \param window_flags A bitmask of values from Gosu::WindowFlags.
34
33
  //! \param update_interval Interval in milliseconds between two calls to the update member
35
34
  //! function.
36
- Window(unsigned width, unsigned height, bool fullscreen = false,
37
- double update_interval = 16.666666, bool resizable = false);
35
+ Window(int width, int height, unsigned window_flags = WF_WINDOWED,
36
+ double update_interval = 16.666666);
38
37
  virtual ~Window();
39
38
 
40
- unsigned width() const;
41
- unsigned height() const;
39
+ int width() const;
40
+ int height() const;
42
41
  bool fullscreen() const;
42
+ void resize(int width, int height, bool fullscreen);
43
+
43
44
  bool resizable() const;
44
- void resize(unsigned width, unsigned height, bool fullscreen);
45
+ void set_resizable(bool resizable);
46
+
47
+ bool borderless() const;
48
+ void set_borderless(bool borderless);
45
49
 
46
50
  double update_interval() const;
47
51
  void set_update_interval(double update_interval);
@@ -82,8 +86,8 @@ namespace Gosu
82
86
  //! By default, the window is redrawn all the time.
83
87
  virtual bool needs_redraw() const { return true; }
84
88
 
85
- //! If this function returns true, the system arrow cursor is drawn while over the window.
86
- virtual bool needs_cursor() const { return false; }
89
+ //! If this function returns true, the system cursor will be visible while over the window.
90
+ virtual bool needs_cursor() const { return true; }
87
91
 
88
92
  //! This function is called when the window loses focus on some platforms.
89
93
  //! Most importantly, it is called on the iPhone or iPad when the user locks the screen.
@@ -139,22 +143,22 @@ namespace Gosu
139
143
  //! Returns the width (in pixels) of a screen.
140
144
  //! \param window The result describes the screen on which the window is shown, or the
141
145
  //! primary screen if no window is given.
142
- unsigned screen_width(Window* window = nullptr);
146
+ int screen_width(Window* window = nullptr);
143
147
 
144
148
  //! Returns the height (in pixels) of the user's primary screen.
145
149
  //! \param window The result describes the screen on which the window is shown, or the
146
150
  //! primary screen if no window is given.
147
- unsigned screen_height(Window* window = nullptr);
151
+ int screen_height(Window* window = nullptr);
148
152
 
149
153
  //! Returns the maximum width (in 'points') that is available for a non-fullscreen Window.
150
154
  //! All windows larger than this size will automatically be shrunk to fit.
151
155
  //! \param window The result describes the screen on which the window is shown, or the
152
156
  //! primary screen if no window is given.
153
- unsigned available_width(Window* window = nullptr);
157
+ int available_width(Window* window = nullptr);
154
158
 
155
159
  //! Returns the maximum height (in 'points') that is available for a non-fullscreen Window.
156
160
  //! All windows larger than this size will automatically be shrunk to fit.
157
161
  //! \param window The result describes the screen on which the window is shown, or the
158
162
  //! primary screen if no window is given.
159
- unsigned available_height(Window* window = nullptr);
163
+ int available_height(Window* window = nullptr);
160
164
  }
File without changes
@@ -18,26 +18,12 @@ class ::Numeric
18
18
  end
19
19
  end
20
20
 
21
- class Gosu::Font
22
- # draw_text will stop parsing markup in Gosu 1.0.
23
- alias_method :draw_text, :draw_markup
24
- # draw_text_rel will stop parsing markup in Gosu 1.0.
25
- alias_method :draw_text_rel, :draw_markup_rel
26
- # text_width will stop parsing markup in Gosu 1.0.
27
- alias_method :text_width, :markup_width
28
- end
29
-
30
21
  class Gosu::Image
31
22
  BlobHelper = Struct.new(:columns, :rows, :to_blob)
32
23
 
33
24
  def self.from_blob(width, height, rgba = "\0\0\0\0" * (width * height))
34
25
  self.new(BlobHelper.new(width, height, rgba))
35
26
  end
36
-
37
- # from_markup will stop parsing markup in Gosu 1.0.
38
- def self.from_markup(*args)
39
- self.from_text(*args)
40
- end
41
27
  end
42
28
 
43
29
  # Color constants.
@@ -3,8 +3,6 @@ warn "gosu/preview.rb has been removed in Gosu 0.9.0, and Gosu itself \n" +
3
3
  "Notable differences:\n" +
4
4
  "• no global $window variable\n" +
5
5
  "• no global Gosu.mouse_x and Gosu.mouse_y functions\n" +
6
- "• Image#initialize et.al. use an options hash now\n" +
7
- "If you cannot update your code base right now, you should require \n" +
8
- "Gosu 0.8.x in your Gemfile: gem 'gosu', '~> 0.8.0'";
6
+ "• Image#initialize et.al. use an options hash now";
9
7
 
10
8
  require 'gosu'
@@ -3,19 +3,20 @@
3
3
  # compatible, but I just call protected_update etc. in the Ruby wrapper so I can add this
4
4
  # custom debugging help:
5
5
  class Gosu::Window
6
- alias_method :initialize_without_hash, :initialize
6
+ alias_method :initialize_with_bitmask, :initialize
7
7
 
8
- def initialize width, height, *args
9
- if args.empty? or args.first.is_a? Hash
10
- options = args.first || {}
11
- fullscreen = options[:fullscreen]
12
- update_interval = options[:update_interval]
13
- resizable = options[:resizable]
8
+ def initialize(width, height, *args)
9
+ $gosu_gl_blocks = nil
10
+
11
+ if args.first.is_a? Hash
12
+ flags = 0
13
+ flags |= 1 if args.first[:fullscreen]
14
+ flags |= 2 if args.first[:resizable]
15
+ flags |= 4 if args.first[:borderless]
16
+ initialize_with_bitmask(width, height, flags, args.first[:update_interval] || 16.666666)
14
17
  else
15
- fullscreen, update_interval = *args
18
+ initialize_with_bitmask(width, height, args[0] ? 1 : 0, args[1] || 16.666666)
16
19
  end
17
- $gosu_gl_blocks = nil
18
- initialize_without_hash width, height, !!fullscreen, update_interval || 16.666666, !!resizable
19
20
  end
20
21
 
21
22
  %w(update draw needs_redraw? needs_cursor?