gosu 0.13.3 → 0.14.0.pre2
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.
- checksums.yaml +4 -4
- data/Gosu/Audio.hpp +15 -11
- data/Gosu/Font.hpp +24 -20
- data/Gosu/Fwd.hpp +1 -1
- data/Gosu/Graphics.hpp +8 -9
- data/Gosu/ImageData.hpp +1 -1
- data/Gosu/Input.hpp +1 -1
- data/Gosu/Math.hpp +0 -18
- data/Gosu/Text.hpp +22 -30
- data/Gosu/TextInput.hpp +13 -0
- data/Gosu/Utility.hpp +2 -0
- data/Gosu/Window.hpp +3 -3
- data/README.md +3 -4
- data/ext/gosu/extconf.rb +7 -9
- data/lib/gosu/swig_patches.rb +1 -4
- data/rdoc/gosu.rb +34 -9
- data/src/Audio.cpp +6 -6
- data/src/AudioImpl.cpp +2 -2
- data/src/Bitmap.cpp +1 -2
- data/src/BitmapIO.cpp +21 -2
- data/src/BlockAllocator.cpp +1 -1
- data/src/Channel.cpp +7 -1
- data/src/ClipRectStack.hpp +4 -1
- data/src/Color.cpp +2 -1
- data/src/DirectoriesWin.cpp +1 -1
- data/src/DrawOp.hpp +8 -4
- data/src/DrawOpQueue.hpp +13 -24
- data/src/FileUnix.cpp +3 -1
- data/src/Font.cpp +92 -96
- data/src/GosuGLView.cpp +59 -31
- data/src/GosuGLView.hpp +14 -0
- data/src/GosuViewController.cpp +21 -21
- data/src/{GosuViewController.h → GosuViewController.hpp} +2 -4
- data/src/Graphics.cpp +71 -38
- data/src/GraphicsImpl.hpp +12 -29
- data/src/Image.cpp +5 -7
- data/src/Input.cpp +7 -5
- data/src/InputUIKit.cpp +19 -37
- data/src/Macro.cpp +10 -2
- data/src/MarkupParser.cpp +241 -0
- data/src/MarkupParser.hpp +61 -0
- data/src/Math.cpp +1 -1
- data/src/OffScreenTarget.cpp +99 -0
- data/src/OffScreenTarget.hpp +23 -0
- data/src/OggFile.hpp +10 -0
- data/src/RenderState.hpp +0 -2
- data/src/Resolution.cpp +2 -2
- data/src/RubyGosu.cxx +457 -244
- data/src/TexChunk.cpp +8 -6
- data/src/Text.cpp +58 -345
- data/src/TextBuilder.cpp +138 -0
- data/src/TextBuilder.hpp +55 -0
- data/src/TextInput.cpp +27 -10
- data/src/Texture.cpp +22 -17
- data/src/Texture.hpp +19 -20
- data/src/TimingApple.cpp +5 -7
- data/src/TimingUnix.cpp +1 -4
- data/src/TimingWin.cpp +4 -1
- data/src/TrueTypeFont.cpp +282 -0
- data/src/TrueTypeFont.hpp +66 -0
- data/src/TrueTypeFontApple.cpp +65 -0
- data/src/TrueTypeFontUnix.cpp +91 -0
- data/src/TrueTypeFontWin.cpp +82 -0
- data/src/Utility.cpp +40 -0
- data/src/Window.cpp +7 -6
- data/src/WindowUIKit.cpp +9 -4
- data/src/stb_truetype.h +4589 -0
- data/src/utf8proc.c +755 -0
- data/src/utf8proc.h +699 -0
- data/src/utf8proc_data.h +14386 -0
- metadata +23 -16
- data/src/FormattedString.cpp +0 -237
- data/src/FormattedString.hpp +0 -47
- data/src/GosuAppDelegate.cpp +0 -30
- data/src/GosuAppDelegate.h +0 -8
- data/src/GosuGLView.h +0 -8
- data/src/TextApple.cpp +0 -212
- data/src/TextTTFWin.cpp +0 -197
- data/src/TextUnix.cpp +0 -280
- data/src/TextWin.cpp +0 -191
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fae36fbf2c222327884fa9b34c5c2dc0a085a8fe7389dcc3c58d6d865b44a8f5
|
4
|
+
data.tar.gz: 843de673ab12f0d0ab72f29d560e29dd1262ecb8e4c1929118fc9dd770db5b77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a0f3a6bc482c1e30dbf2e04a4097ddde5fe630a8583875c9344463808d306b8f0c41131b70229bfc0f343e948d15714e65707bef077c18b434c434f9bd6a3e3
|
7
|
+
data.tar.gz: 2a1ec2451e8653b6dd7682faf8c4e7cf4b354a778234c0db51c4f0f17ad547a7a6356019c25d8458f1975d685c81f8e219cd384c2e81ed285f8053b5e2a61077
|
data/Gosu/Audio.hpp
CHANGED
@@ -11,26 +11,31 @@
|
|
11
11
|
|
12
12
|
namespace Gosu
|
13
13
|
{
|
14
|
-
//! Sample::play returns a Channel that represents the sound
|
15
|
-
//! This object can be used to stop sounds dynamically, or to check whether
|
14
|
+
//! Sample::play returns a Channel that represents the sound being played.
|
15
|
+
//! This object can be used to stop sounds dynamically, or to check whether playback has
|
16
|
+
//! finished.
|
16
17
|
class Channel
|
17
18
|
{
|
18
19
|
mutable int channel, token;
|
19
20
|
|
20
21
|
public:
|
22
|
+
//! This creates an "empty" Channel which is expired and cannot be resumed.
|
23
|
+
Channel();
|
21
24
|
//! For internal use only.
|
22
25
|
Channel(int channel, int token);
|
23
26
|
|
27
|
+
//! For internal use only.
|
24
28
|
int current_channel() const;
|
25
29
|
|
26
30
|
bool playing() const;
|
27
31
|
bool paused() const;
|
28
32
|
//! Pauses this instance to be resumed afterwards.
|
29
|
-
//!
|
33
|
+
//! Avoid leaving samples paused for too long, as they will still occupy one of Gosu's
|
34
|
+
//! limited channels.
|
30
35
|
void pause();
|
31
36
|
void resume();
|
32
|
-
//! Stops this
|
33
|
-
//!
|
37
|
+
//! Stops this channel if the sample is still being played.
|
38
|
+
//! If this method is called when playback has finished, it has no effect.
|
34
39
|
void stop();
|
35
40
|
|
36
41
|
//! \param volume Can be anything from 0.0 (silence) to 1.0 (full volume).
|
@@ -50,7 +55,7 @@ namespace Gosu
|
|
50
55
|
std::shared_ptr<SampleData> data;
|
51
56
|
|
52
57
|
public:
|
53
|
-
//! Constructs an empty sample that
|
58
|
+
//! Constructs an empty sample that is inaudible when played.
|
54
59
|
Sample();
|
55
60
|
|
56
61
|
//! Constructs a sample that can be played on the specified audio
|
@@ -82,7 +87,7 @@ namespace Gosu
|
|
82
87
|
bool looping = false) const;
|
83
88
|
};
|
84
89
|
|
85
|
-
//! Songs are less flexible than samples. Only Song can be played at any given time,
|
90
|
+
//! Songs are less flexible than samples. Only one Song can be played at any given time,
|
86
91
|
//! and there is no way to control its pan (stereo position) or speed.
|
87
92
|
class Song
|
88
93
|
{
|
@@ -98,8 +103,8 @@ namespace Gosu
|
|
98
103
|
|
99
104
|
public:
|
100
105
|
//! Constructs a song that can be played on the provided audio system
|
101
|
-
//! and loads the song from a file.
|
102
|
-
//! filename.
|
106
|
+
//! and loads the song from a file.
|
107
|
+
//! The file type is determined by the filename.
|
103
108
|
explicit Song(const std::string& filename);
|
104
109
|
|
105
110
|
//! Constructs a song of the specified type that can be played on the
|
@@ -129,8 +134,7 @@ namespace Gosu
|
|
129
134
|
bool playing() const;
|
130
135
|
//! Returns the current volume of the song.
|
131
136
|
double volume() const;
|
132
|
-
//! \param volume Can be anything from 0.0 (silence) to 1.0 (full
|
133
|
-
//! volume).
|
137
|
+
//! \param volume Can be anything from 0.0 (silence) to 1.0 (full volume).
|
134
138
|
void set_volume(double volume);
|
135
139
|
|
136
140
|
//! Called every tick by Window for management purposes.
|
data/Gosu/Font.hpp
CHANGED
@@ -29,14 +29,13 @@ namespace Gosu
|
|
29
29
|
//! \param font_height Height of the font, in pixels.
|
30
30
|
//! \param font_flags Flags used to render individual characters of
|
31
31
|
//! the font.
|
32
|
-
Font(
|
33
|
-
unsigned font_flags = FF_BOLD);
|
32
|
+
Font(int height, const std::string& name = default_font_name(), unsigned flags = FF_BOLD);
|
34
33
|
|
35
34
|
//! Returns the name of the font that was used to create it.
|
36
|
-
std::string name() const;
|
35
|
+
const std::string& name() const;
|
37
36
|
|
38
37
|
//! Returns the height of the font, in pixels.
|
39
|
-
|
38
|
+
int height() const;
|
40
39
|
|
41
40
|
//! Returns the flags used to create the font characters.
|
42
41
|
unsigned flags() const;
|
@@ -47,8 +46,8 @@ namespace Gosu
|
|
47
46
|
//! Draws text so the top left corner of the text is at (x; y).
|
48
47
|
//! \param text Formatted text without line-breaks.
|
49
48
|
void draw(const std::string& text, double x, double y, ZPos z,
|
50
|
-
|
51
|
-
|
49
|
+
double scale_x = 1, double scale_y = 1, Color c = Color::WHITE,
|
50
|
+
AlphaMode mode = AM_DEFAULT) const;
|
52
51
|
|
53
52
|
//! Draws text at a position relative to (x; y).
|
54
53
|
//! \param rel_x Determines where the text is drawn horizontally. If
|
@@ -57,25 +56,30 @@ namespace Gosu
|
|
57
56
|
//! centered on x. Of course, all real numbers are possible values.
|
58
57
|
//! \param rel_y See rel_x.
|
59
58
|
void draw_rel(const std::string& text, double x, double y, ZPos z,
|
60
|
-
|
61
|
-
|
62
|
-
|
59
|
+
double rel_x, double rel_y, double scale_x = 1, double scale_y = 1,
|
60
|
+
Color c = Color::WHITE, AlphaMode mode = AM_DEFAULT) const;
|
61
|
+
|
62
|
+
//! DEPRECATED: Analogous to draw, but rotates the text by a given angle.
|
63
|
+
//! Use Graphics::push_transform to achieve the same effect.
|
64
|
+
#ifndef SWIG
|
65
|
+
GOSU_DEPRECATED
|
66
|
+
#endif
|
67
|
+
void draw_rot(const std::string& text, double x, double y, ZPos z, double angle,
|
68
|
+
double scale_x = 1, double scale_y = 1, Color c = Color::WHITE,
|
69
|
+
AlphaMode mode = AM_DEFAULT) const;
|
70
|
+
|
63
71
|
//! Maps a letter to a specific image instead of generating one using
|
64
72
|
//! Gosu's built-in text rendering. This can only be called once per
|
65
73
|
//! character, and the character must not have been drawn before.
|
66
74
|
//! This ensures that Fonts are still (sort of) immutable.
|
67
|
-
|
75
|
+
#ifndef SWIG
|
76
|
+
GOSU_DEPRECATED
|
77
|
+
#endif
|
78
|
+
void set_image(std::string codepoint, unsigned font_flags, const Gosu::Image& image);
|
68
79
|
//! A shortcut for mapping a character to an image regardless of font_flags.
|
69
|
-
|
70
|
-
void set_image(wchar_t wc, const Gosu::Image& image);
|
71
|
-
|
72
|
-
#ifndef SWIG
|
80
|
+
#ifndef SWIG
|
73
81
|
GOSU_DEPRECATED
|
74
|
-
|
75
|
-
|
76
|
-
//! Use Graphics::push_transform to achieve the same effect.
|
77
|
-
void draw_rot(const std::string& text, double x, double y, ZPos z, double angle,
|
78
|
-
double scale_x = 1, double scale_y = 1, Color c = Color::WHITE,
|
79
|
-
AlphaMode mode = AM_DEFAULT) const;
|
82
|
+
#endif
|
83
|
+
void set_image(std::string codepoint, const Gosu::Image& image);
|
80
84
|
};
|
81
85
|
}
|
data/Gosu/Fwd.hpp
CHANGED
@@ -9,6 +9,7 @@ namespace Gosu
|
|
9
9
|
class Bitmap;
|
10
10
|
class Buffer;
|
11
11
|
class Button;
|
12
|
+
class Channel;
|
12
13
|
class Color;
|
13
14
|
class File;
|
14
15
|
class Font;
|
@@ -21,7 +22,6 @@ namespace Gosu
|
|
21
22
|
class Sample;
|
22
23
|
class Song;
|
23
24
|
class TextInput;
|
24
|
-
class Timer;
|
25
25
|
class Window;
|
26
26
|
class Writer;
|
27
27
|
}
|
data/Gosu/Graphics.hpp
CHANGED
@@ -24,9 +24,8 @@ namespace Gosu
|
|
24
24
|
class Graphics
|
25
25
|
{
|
26
26
|
struct Impl;
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
std::unique_ptr<Impl> pimpl;
|
28
|
+
|
30
29
|
public:
|
31
30
|
Graphics(unsigned physical_width, unsigned physical_height);
|
32
31
|
~Graphics();
|
@@ -60,11 +59,11 @@ namespace Gosu
|
|
60
59
|
static void clip_to(double x, double y, double width, double height,
|
61
60
|
const std::function<void ()>& f);
|
62
61
|
|
63
|
-
//!
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
62
|
+
//! Renders everything drawn in f onto a new Image of size (width, height).
|
63
|
+
static Gosu::Image render(int width, int height, const std::function<void ()>& f);
|
64
|
+
|
65
|
+
//! Records a macro and returns it as an Image.
|
66
|
+
static Gosu::Image record(int width, int height, const std::function<void ()>& f);
|
68
67
|
|
69
68
|
//! Pushes one transformation onto the transformation stack.
|
70
69
|
static void transform(const Transform& transform,
|
@@ -100,7 +99,7 @@ namespace Gosu
|
|
100
99
|
|
101
100
|
//! Turns a portion of a bitmap into something that can be drawn on a Graphics object.
|
102
101
|
static std::unique_ptr<ImageData> create_image(const Bitmap& src,
|
103
|
-
unsigned src_x,
|
102
|
+
unsigned src_x, unsigned src_y,
|
104
103
|
unsigned src_width, unsigned src_height,
|
105
104
|
unsigned image_flags);
|
106
105
|
};
|
data/Gosu/ImageData.hpp
CHANGED
data/Gosu/Input.hpp
CHANGED
@@ -59,7 +59,7 @@ namespace Gosu
|
|
59
59
|
public:
|
60
60
|
#ifdef GOSU_IS_IPHONE
|
61
61
|
Input(void* view, float update_interval);
|
62
|
-
void feed_touch_event(
|
62
|
+
void feed_touch_event(std::function<void (Touch)>& callback, void* touches);
|
63
63
|
#else
|
64
64
|
Input(void* window);
|
65
65
|
bool feed_sdl_event(void* event);
|
data/Gosu/Math.hpp
CHANGED
@@ -12,24 +12,6 @@
|
|
12
12
|
|
13
13
|
namespace Gosu
|
14
14
|
{
|
15
|
-
//! Truncates the fractional part of a real value. Equivalent to
|
16
|
-
//! static_cast<long>.
|
17
|
-
inline long trunc(double value)
|
18
|
-
{
|
19
|
-
return static_cast<long>(value);
|
20
|
-
}
|
21
|
-
|
22
|
-
//! Rounds a real value towards the next integer.
|
23
|
-
inline long round(double value)
|
24
|
-
{
|
25
|
-
if (value >= 0) {
|
26
|
-
return static_cast<long>(value + 0.5);
|
27
|
-
}
|
28
|
-
else {
|
29
|
-
return static_cast<long>(value - 0.5);
|
30
|
-
}
|
31
|
-
}
|
32
|
-
|
33
15
|
//! Returns a real value between min (inclusive) and max (exclusive).
|
34
16
|
//! Uses std::rand, so you should call std::srand before using it.
|
35
17
|
double random(double min, double max);
|
data/Gosu/Text.hpp
CHANGED
@@ -10,53 +10,45 @@
|
|
10
10
|
|
11
11
|
namespace Gosu
|
12
12
|
{
|
13
|
-
//! Returns the name of a neutral font that is available on the current
|
14
|
-
//! platform.
|
13
|
+
//! Returns the name of a neutral font that is available on the current platform.
|
15
14
|
std::string default_font_name();
|
16
15
|
|
17
16
|
//! Returns the width an unformatted line of text would span on a bitmap if it were drawn using
|
18
|
-
//! draw_text with the same arguments.
|
19
|
-
//!
|
20
|
-
//! \param
|
21
|
-
|
22
|
-
|
23
|
-
unsigned font_flags = 0);
|
17
|
+
//! draw_text with the same arguments.
|
18
|
+
//! \param text A UCS-4 string, normalization: NFC.
|
19
|
+
//! \param font_name Name of a system font, or filename of a TTF file (must contain '/' or '.').
|
20
|
+
double text_width(const std::u32string& text, const std::string& font_name, double font_height,
|
21
|
+
unsigned font_flags = 0);
|
24
22
|
|
25
23
|
//! Draws a line of unformatted text on a bitmap. This is a very low-level function that does
|
26
24
|
//! not understand any of Gosu's HTML-like markup.
|
27
|
-
//! \param text
|
28
|
-
//! \param font_name Name of a system font, or
|
25
|
+
//! \param text A UCS-4 string, normalization: NFC.
|
26
|
+
//! \param font_name Name of a system font, or filename of a TTF file (must contain '/' or '.').
|
29
27
|
//! \param font_height Height, in pixels, of the text.
|
30
|
-
//! \param font_flags Binary combination of members of the FontFlags
|
31
|
-
|
32
|
-
|
33
|
-
const std::string& font_name, unsigned font_height, unsigned font_flags = 0);
|
28
|
+
//! \param font_flags Binary combination of members of the FontFlags enum.
|
29
|
+
double draw_text(Bitmap& bitmap, double x, double y, Color c, const std::u32string& text,
|
30
|
+
const std::string& font_name, double font_height, unsigned font_flags = 0);
|
34
31
|
|
35
32
|
//! Creates a bitmap that is filled with a line of formatted text given to the function.
|
36
33
|
//! The line can contain line breaks and HTML-like markup.
|
37
34
|
//! \param text Formatted text.
|
38
|
-
//! \param font_name Name of a system font, or
|
35
|
+
//! \param font_name Name of a system font, or filename of a TTF file (must contain '/' or '.').
|
39
36
|
//! \param font_height Height of the font in pixels.
|
40
|
-
//! \param font_flags Binary combination of members of the FontFlags
|
41
|
-
|
42
|
-
|
43
|
-
unsigned font_flags = 0);
|
37
|
+
//! \param font_flags Binary combination of members of the FontFlags enum.
|
38
|
+
Bitmap create_text(const std::string& text, const std::string& font_name, double font_height,
|
39
|
+
unsigned font_flags = 0);
|
44
40
|
|
45
41
|
//! Creates a bitmap that is filled with the formatted text given to the function.
|
46
42
|
//! The line can contain line breaks and HTML-like markup.
|
47
43
|
//! \param text Formatted text.
|
48
|
-
//! \param font_name Name of a system font, or
|
44
|
+
//! \param font_name Name of a system font, or filename of a TTF file (must contain '/' or '.').
|
49
45
|
//! \param font_height Height of the font in pixels.
|
50
46
|
//! \param line_spacing Spacing between two lines of text in pixels. Can be negative to make
|
51
|
-
//!
|
52
|
-
//! \param width Width of the bitmap that will be returned.
|
53
|
-
//! lines to avoid drawing over the right border.
|
54
|
-
//! truncated.
|
47
|
+
//! text stick together more closely.
|
48
|
+
//! \param width Width of the bitmap that will be returned.
|
49
|
+
//! Text will be split into multiple lines to avoid drawing over the right border.
|
50
|
+
//! When a single word is too long, it will be truncated.
|
55
51
|
//! \param font_flags Binary combination of members of the FontFlags enum.
|
56
|
-
Bitmap create_text(const std::string& text, const std::string& font_name,
|
57
|
-
|
58
|
-
|
59
|
-
//! Registers a new HTML-style entity that can subsequently be used
|
60
|
-
//! with Gosu::Font and Gosu::create_text. The name is given without & and ;.
|
61
|
-
void register_entity(const std::string& name, const Bitmap& replacement);
|
52
|
+
Bitmap create_text(const std::string& text, const std::string& font_name, double font_height,
|
53
|
+
double line_spacing, int width, Alignment align, unsigned font_flags = 0);
|
62
54
|
}
|
data/Gosu/TextInput.hpp
CHANGED
@@ -49,8 +49,10 @@ namespace Gosu
|
|
49
49
|
//! Sets the start of the selection as returned by selection_start.
|
50
50
|
void set_selection_start(unsigned pos);
|
51
51
|
|
52
|
+
#ifndef GOSU_IS_IPHONE
|
52
53
|
// Platform-specific communication with Gosu::Input.
|
53
54
|
bool feed_sdl_event(void* event);
|
55
|
+
#endif
|
54
56
|
|
55
57
|
//! Overridable filter that is applied to all new text that is entered.
|
56
58
|
//! Allows for context-sensitive filtering/extending/... of new characters.
|
@@ -59,5 +61,16 @@ namespace Gosu
|
|
59
61
|
{
|
60
62
|
return text;
|
61
63
|
}
|
64
|
+
|
65
|
+
//! Replaces the current selection (if any) and inserts the given string at the current
|
66
|
+
//! caret position.
|
67
|
+
//! The filter method will not be applied before appending the string.
|
68
|
+
void insert_text(std::string text);
|
69
|
+
|
70
|
+
//! Deletes the current selection, if any, or the next character.
|
71
|
+
void delete_forward();
|
72
|
+
|
73
|
+
//! Deletes the current selection, if any, or the previous character.
|
74
|
+
void delete_backward();
|
62
75
|
};
|
63
76
|
}
|
data/Gosu/Utility.hpp
CHANGED
@@ -12,6 +12,8 @@ namespace Gosu
|
|
12
12
|
//! Converts an UCS-4 or UTF-16 to UTF-8, depending on the platform's interpretation of wstring.
|
13
13
|
std::string wstring_to_utf8(const std::wstring& ws);
|
14
14
|
|
15
|
+
std::u32string utf8_to_composed_utc4(const std::string& utf8);
|
16
|
+
|
15
17
|
//! Returns true if the filename has the given extension.
|
16
18
|
//! The comparison is case-insensitive, but you must pass the extension in lower case.
|
17
19
|
bool has_extension(const std::string& filename, const char* extension);
|
data/Gosu/Window.hpp
CHANGED
@@ -118,10 +118,10 @@ namespace Gosu
|
|
118
118
|
virtual void button_up(Gosu::Button) {}
|
119
119
|
|
120
120
|
//! Called when a file is dropped onto the window.
|
121
|
-
//! \param
|
121
|
+
//! \param filename The filename of the dropped file. When multiple files are dropped, this
|
122
122
|
//! method will be called several times.
|
123
123
|
virtual void drop(const std::string& filename) {}
|
124
|
-
|
124
|
+
|
125
125
|
// Ignore when SWIG is wrapping this class for Ruby/Gosu.
|
126
126
|
#ifndef SWIG
|
127
127
|
// Callbacks for touch events. So far these are only used on iOS.
|
@@ -138,7 +138,7 @@ namespace Gosu
|
|
138
138
|
#endif
|
139
139
|
|
140
140
|
#ifdef GOSU_IS_IPHONE
|
141
|
-
void*
|
141
|
+
void* uikit_window() const;
|
142
142
|
#endif
|
143
143
|
};
|
144
144
|
}
|
data/README.md
CHANGED
@@ -18,10 +18,9 @@ or look at existing projects in the [Gosu Showcase](https://www.libgosu.org/cgi-
|
|
18
18
|
Community
|
19
19
|
---------
|
20
20
|
|
21
|
-
-
|
22
|
-
-
|
23
|
-
|
24
|
-
- Please file bugs and request features [on GitHub](https://github.com/gosu/gosu/issues).
|
21
|
+
- There is a lively [Discord community](https://discord.gg/SZ4nbEd).
|
22
|
+
- If you want to discuss or announce something in a more permanent place than a chat room, we also have a [message board](https://www.libgosu.org/cgi-bin/mwf/forum.pl).
|
23
|
+
- Please file bugs and feature requests [on GitHub](https://github.com/gosu/gosu/issues).
|
25
24
|
|
26
25
|
Build Status
|
27
26
|
------------
|
data/ext/gosu/extconf.rb
CHANGED
@@ -24,16 +24,18 @@ $CFLAGS << " -DGOSU_DEPRECATED="
|
|
24
24
|
|
25
25
|
$CXXFLAGS ||= ""
|
26
26
|
$CXXFLAGS << " -std=gnu++11"
|
27
|
-
$CXXFLAGS << " -Wno-reserved-user-defined-literal" # see https://github.com/gosu/gosu/issues/424
|
28
27
|
|
29
28
|
# For #include <Gosu/...>
|
30
29
|
$INCFLAGS << " -I../.."
|
31
30
|
|
32
31
|
if `uname`.chomp == 'Darwin'
|
33
|
-
#
|
34
|
-
$CFLAGS << " -
|
32
|
+
# Disable assertions in C code.
|
33
|
+
$CFLAGS << " -DNDEBUG"
|
35
34
|
# Compile all C++ files as Objective C++ on macOS since mkmf does not support .mm files.
|
36
35
|
$CXXFLAGS << " -x objective-c++ -fobjc-arc -DNDEBUG"
|
36
|
+
# Prevents issues with Apple's pre-installed Ruby 2.3 on macOS 10.13.
|
37
|
+
# https://github.com/gosu/gosu/issues/424
|
38
|
+
$CXXFLAGS << " -Wno-reserved-user-defined-literal"
|
37
39
|
|
38
40
|
# Explicitly specify libc++ as the standard library.
|
39
41
|
# rvm will sometimes try to override this:
|
@@ -43,7 +45,7 @@ if `uname`.chomp == 'Darwin'
|
|
43
45
|
# Dependencies.
|
44
46
|
$CXXFLAGS << " #{`sdl2-config --cflags`.chomp}"
|
45
47
|
# Prefer statically linking SDL 2.
|
46
|
-
$LDFLAGS << " #{`sdl2-config --static-libs`.chomp} -framework OpenGL -framework OpenAL"
|
48
|
+
$LDFLAGS << " #{`sdl2-config --static-libs`.chomp} -framework OpenGL -framework Metal -framework OpenAL"
|
47
49
|
|
48
50
|
# Disable building of 32-bit slices in Apple's Ruby.
|
49
51
|
# (RbConfig::CONFIG['CXXFLAGS'] on 10.11: -arch x86_64 -arch i386 -g -Os -pipe)
|
@@ -65,19 +67,15 @@ else
|
|
65
67
|
end
|
66
68
|
|
67
69
|
pkg_config 'sdl2'
|
68
|
-
pkg_config 'pangoft2'
|
69
70
|
pkg_config 'vorbisfile'
|
70
71
|
pkg_config 'openal'
|
71
72
|
pkg_config 'sndfile'
|
72
73
|
pkg_config 'libmpg123'
|
74
|
+
pkg_config 'fontconfig'
|
73
75
|
|
74
|
-
have_header 'SDL_ttf.h' if have_library('SDL2_ttf', 'TTF_RenderUTF8_Blended')
|
75
76
|
have_header 'AL/al.h' if have_library('openal')
|
76
77
|
end
|
77
78
|
|
78
|
-
# This is necessary to build with stock Ruby on OS X 10.7.
|
79
|
-
CONFIG['CXXFLAGS'] ||= $CXXFLAGS
|
80
|
-
|
81
79
|
# Gem::Version#initialize is apparently broken in some versions of Ruby, so use a local helper.
|
82
80
|
def ruby_newer_than?(want_version)
|
83
81
|
have_parts = RUBY_VERSION.split('.').map { |part| part.to_i }
|