gosu 1.4.4 → 1.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/dependencies/SDL/include/SDL.h +1 -0
- data/dependencies/SDL/include/SDL_assert.h +4 -2
- data/dependencies/SDL/include/SDL_atomic.h +20 -0
- data/dependencies/SDL/include/SDL_audio.h +40 -4
- data/dependencies/SDL/include/SDL_blendmode.h +4 -6
- data/dependencies/SDL/include/SDL_clipboard.h +47 -0
- data/dependencies/SDL/include/SDL_config.h +71 -45
- data/dependencies/SDL/include/SDL_cpuinfo.h +39 -4
- data/dependencies/SDL/include/SDL_egl.h +59 -9
- data/dependencies/SDL/include/SDL_endian.h +34 -3
- data/dependencies/SDL/include/SDL_events.h +32 -1
- data/dependencies/SDL/include/SDL_filesystem.h +5 -1
- data/dependencies/SDL/include/SDL_gamecontroller.h +78 -5
- data/dependencies/SDL/include/SDL_guid.h +100 -0
- data/dependencies/SDL/include/SDL_hints.h +645 -43
- data/dependencies/SDL/include/SDL_joystick.h +127 -7
- data/dependencies/SDL/include/SDL_keyboard.h +38 -1
- data/dependencies/SDL/include/SDL_keycode.h +6 -1
- data/dependencies/SDL/include/SDL_log.h +2 -2
- data/dependencies/SDL/include/SDL_main.h +42 -2
- data/dependencies/SDL/include/SDL_metal.h +2 -1
- data/dependencies/SDL/include/SDL_mouse.h +12 -1
- data/dependencies/SDL/include/SDL_opengl.h +0 -51
- data/dependencies/SDL/include/SDL_opengl_glext.h +2260 -231
- data/dependencies/SDL/include/SDL_opengles2_gl2.h +374 -339
- data/dependencies/SDL/include/SDL_opengles2_gl2ext.h +3479 -1496
- data/dependencies/SDL/include/SDL_opengles2_gl2platform.h +6 -9
- data/dependencies/SDL/include/SDL_opengles2_khrplatform.h +43 -14
- data/dependencies/SDL/include/SDL_platform.h +32 -6
- data/dependencies/SDL/include/SDL_rect.h +154 -2
- data/dependencies/SDL/include/SDL_render.h +46 -17
- data/dependencies/SDL/include/SDL_revision.h +6 -1
- data/dependencies/SDL/include/SDL_rwops.h +1 -15
- data/dependencies/SDL/include/SDL_scancode.h +46 -21
- data/dependencies/SDL/include/SDL_sensor.h +24 -3
- data/dependencies/SDL/include/SDL_stdinc.h +119 -8
- data/dependencies/SDL/include/SDL_surface.h +3 -1
- data/dependencies/SDL/include/SDL_system.h +66 -6
- data/dependencies/SDL/include/SDL_syswm.h +2 -0
- data/dependencies/SDL/include/SDL_test_common.h +1 -0
- data/dependencies/SDL/include/SDL_test_font.h +90 -3
- data/dependencies/SDL/include/SDL_thread.h +3 -3
- data/dependencies/SDL/include/SDL_touch.h +8 -0
- data/dependencies/SDL/include/SDL_version.h +19 -3
- data/dependencies/SDL/include/SDL_video.h +71 -9
- data/dependencies/SDL/include/begin_code.h +4 -4
- data/dependencies/SDL/lib/x64/libSDL2.dll.a +0 -0
- data/dependencies/SDL/lib/x86/libSDL2.dll.a +0 -0
- data/dependencies/SDL_sound/SDL_sound.c +210 -71
- data/dependencies/SDL_sound/SDL_sound.h +1 -1
- data/dependencies/SDL_sound/SDL_sound_coreaudio.c +111 -168
- data/dependencies/SDL_sound/SDL_sound_flac.c +0 -6
- data/dependencies/SDL_sound/SDL_sound_internal.h +27 -5
- data/dependencies/SDL_sound/SDL_sound_modplug.c +20 -8
- data/dependencies/SDL_sound/SDL_sound_mp3.c +11 -7
- data/dependencies/SDL_sound/SDL_sound_raw.c +1 -1
- data/dependencies/SDL_sound/SDL_sound_shn.c +1 -5
- data/dependencies/SDL_sound/SDL_sound_voc.c +1 -1
- data/dependencies/SDL_sound/SDL_sound_vorbis.c +2 -4
- data/dependencies/SDL_sound/SDL_sound_wav.c +44 -20
- data/dependencies/SDL_sound/dr_flac.h +237 -95
- data/dependencies/SDL_sound/dr_mp3.h +46 -33
- data/dependencies/SDL_sound/libmodplug/fastmix.c +53 -39
- data/dependencies/SDL_sound/libmodplug/libmodplug.h +0 -12
- data/dependencies/SDL_sound/libmodplug/load_669.c +37 -32
- data/dependencies/SDL_sound/libmodplug/load_amf.c +57 -44
- data/dependencies/SDL_sound/libmodplug/load_ams.c +127 -100
- data/dependencies/SDL_sound/libmodplug/load_dbm.c +40 -37
- data/dependencies/SDL_sound/libmodplug/load_dmf.c +61 -49
- data/dependencies/SDL_sound/libmodplug/load_dsm.c +18 -13
- data/dependencies/SDL_sound/libmodplug/load_far.c +31 -24
- data/dependencies/SDL_sound/libmodplug/load_gdm.c +27 -21
- data/dependencies/SDL_sound/libmodplug/load_it.c +106 -91
- data/dependencies/SDL_sound/libmodplug/load_mdl.c +43 -35
- data/dependencies/SDL_sound/libmodplug/load_med.c +66 -52
- data/dependencies/SDL_sound/libmodplug/load_mod.c +30 -26
- data/dependencies/SDL_sound/libmodplug/load_mt2.c +61 -50
- data/dependencies/SDL_sound/libmodplug/load_mtm.c +23 -17
- data/dependencies/SDL_sound/libmodplug/load_okt.c +18 -16
- data/dependencies/SDL_sound/libmodplug/load_psm.c +44 -32
- data/dependencies/SDL_sound/libmodplug/load_ptm.c +18 -14
- data/dependencies/SDL_sound/libmodplug/load_s3m.c +59 -53
- data/dependencies/SDL_sound/libmodplug/load_stm.c +23 -18
- data/dependencies/SDL_sound/libmodplug/load_ult.c +33 -29
- data/dependencies/SDL_sound/libmodplug/load_xm.c +64 -57
- data/dependencies/SDL_sound/libmodplug/mmcmp.c +2 -1
- data/dependencies/SDL_sound/libmodplug/snd_dsp.c +30 -20
- data/dependencies/SDL_sound/libmodplug/snd_flt.c +6 -4
- data/dependencies/SDL_sound/libmodplug/snd_fx.c +91 -65
- data/dependencies/SDL_sound/libmodplug/sndfile.c +91 -66
- data/dependencies/SDL_sound/libmodplug/sndmix.c +58 -35
- data/dependencies/SDL_sound/stb_vorbis.h +14 -9
- data/dependencies/mojoAL/mojoal.c +41 -24
- data/dependencies/utf8proc/utf8proc.c +1 -1
- data/dependencies/utf8proc/utf8proc.h +1 -1
- data/dependencies/utf8proc/utf8proc_data.h +3366 -3184
- data/include/Gosu/Version.hpp +1 -1
- data/lib/SDL2.dll +0 -0
- data/lib64/SDL2.dll +0 -0
- data/src/RubyGosu.cxx +1 -1
- data/src/Window.cpp +6 -4
- metadata +3 -2
@@ -29,12 +29,6 @@
|
|
29
29
|
#define DRMP3_COPY_MEMORY(dst, src, sz) SDL_memcpy((dst), (src), (sz))
|
30
30
|
#define DRMP3_MOVE_MEMORY(dst, src, sz) SDL_memmove((dst), (src), (sz))
|
31
31
|
#define DRMP3_ZERO_MEMORY(p, sz) SDL_memset((p), 0, (sz))
|
32
|
-
#ifndef __WATCOMC__ /* #@!.!.. */
|
33
|
-
#if SDL_VERSION_ATLEAST(2, 0, 9)
|
34
|
-
#define exp SDL_exp
|
35
|
-
#endif
|
36
|
-
#define floor SDL_floor
|
37
|
-
#endif
|
38
32
|
|
39
33
|
#include "dr_mp3.h"
|
40
34
|
|
@@ -83,6 +77,7 @@ static int MP3_open(Sound_Sample *sample, const char *ext)
|
|
83
77
|
{
|
84
78
|
Sound_SampleInternal *internal = (Sound_SampleInternal *) sample->opaque;
|
85
79
|
drmp3 *dr = (drmp3 *) SDL_calloc(1, sizeof (drmp3));
|
80
|
+
Uint64 frames;
|
86
81
|
|
87
82
|
BAIL_IF_MACRO(!dr, ERR_OUT_OF_MEMORY, 0);
|
88
83
|
if (drmp3_init(dr, mp3_read, mp3_seek, sample, NULL) != DRMP3_TRUE)
|
@@ -99,7 +94,16 @@ static int MP3_open(Sound_Sample *sample, const char *ext)
|
|
99
94
|
sample->actual.rate = dr->sampleRate;
|
100
95
|
sample->actual.format = AUDIO_F32SYS; /* dr_mp3 only does float. */
|
101
96
|
|
102
|
-
|
97
|
+
frames = drmp3_get_pcm_frame_count(dr);
|
98
|
+
if (frames == 0) /* ever possible ??? */
|
99
|
+
internal->total_time = -1;
|
100
|
+
else
|
101
|
+
{
|
102
|
+
const Uint32 rate = dr->sampleRate;
|
103
|
+
internal->total_time = (frames / rate) * 1000;
|
104
|
+
internal->total_time += ((frames % rate) * 1000) / rate;
|
105
|
+
} /* else */
|
106
|
+
|
103
107
|
internal->decoder_private = dr;
|
104
108
|
|
105
109
|
return 1;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* SDL_sound;
|
2
|
+
* SDL_sound; An abstract sound format decoding API.
|
3
3
|
*
|
4
4
|
* Please see the file LICENSE.txt in the source's root directory.
|
5
5
|
*
|
@@ -174,10 +174,6 @@ static const Uint8 ulaw_outward[13][256] = {
|
|
174
174
|
#define M_PI 3.14159265358979323846
|
175
175
|
#endif
|
176
176
|
|
177
|
-
#if defined(HAVE_LIBC) && defined(__WATCOMC__) /* Watcom has issues... */
|
178
|
-
#define SDL_log log
|
179
|
-
#endif
|
180
|
-
|
181
177
|
|
182
178
|
static int word_get(shn_t *shn, SDL_RWops *rw, Uint32 *word)
|
183
179
|
{
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* SDL_sound;
|
2
|
+
* SDL_sound; An abstract sound format decoding API.
|
3
3
|
*
|
4
4
|
* Please see the file LICENSE.txt in the source's root directory.
|
5
5
|
*
|
@@ -27,12 +27,12 @@
|
|
27
27
|
#define STB_VORBIS_NO_CRT 1
|
28
28
|
#define STB_VORBIS_NO_PUSHDATA_API 1
|
29
29
|
#define STB_VORBIS_MAX_CHANNELS 6
|
30
|
-
#define STBV_CDECL
|
31
30
|
#define STB_VORBIS_NO_COMMENTS 1
|
32
31
|
#define STB_FORCEINLINE SDL_FORCE_INLINE
|
33
32
|
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
|
34
33
|
#define STB_VORBIS_BIG_ENDIAN 1
|
35
34
|
#endif
|
35
|
+
#define STBV_CDECL SDLCALL /* for SDL_qsort */
|
36
36
|
|
37
37
|
#if !defined(__clang_analyzer__)
|
38
38
|
#ifdef assert
|
@@ -52,7 +52,6 @@
|
|
52
52
|
#define malloc SDL_malloc
|
53
53
|
#define realloc SDL_realloc
|
54
54
|
#define free SDL_free
|
55
|
-
#ifndef __WATCOMC__ /* #@!.!.. */
|
56
55
|
#define pow SDL_pow
|
57
56
|
#define floor SDL_floor
|
58
57
|
#define ldexp(v, e) SDL_scalbn((v), (e))
|
@@ -64,7 +63,6 @@
|
|
64
63
|
#define exp SDL_exp
|
65
64
|
#endif
|
66
65
|
#endif
|
67
|
-
#endif
|
68
66
|
|
69
67
|
#include "stb_vorbis.h"
|
70
68
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* SDL_sound;
|
2
|
+
* SDL_sound; An abstract sound format decoding API.
|
3
3
|
*
|
4
4
|
* Please see the file LICENSE.txt in the source's root directory.
|
5
5
|
*
|
@@ -70,9 +70,10 @@ static SDL_INLINE int read_uint8(SDL_RWops *rw, Uint8 *ui8)
|
|
70
70
|
|
71
71
|
#define fmtID 0x20746D66 /* "fmt ", in ascii. */
|
72
72
|
|
73
|
-
#define FMT_NORMAL
|
74
|
-
#define FMT_ADPCM
|
75
|
-
#define FMT_IEEE_FLOAT
|
73
|
+
#define FMT_NORMAL 0x0001 /* Uncompressed waveform data. */
|
74
|
+
#define FMT_ADPCM 0x0002 /* ADPCM compressed waveform data. */
|
75
|
+
#define FMT_IEEE_FLOAT 0x0003 /* Uncompressed IEEE floating point waveform data. */
|
76
|
+
#define FMT_EXTENSIBLE 0xFFFE /* "Extensible" tag */
|
76
77
|
|
77
78
|
typedef struct
|
78
79
|
{
|
@@ -92,7 +93,7 @@ typedef struct S_WAV_FMT_T
|
|
92
93
|
{
|
93
94
|
Uint32 chunkID;
|
94
95
|
Sint32 chunkSize;
|
95
|
-
|
96
|
+
Uint16 wFormatTag;
|
96
97
|
Uint16 wChannels;
|
97
98
|
Uint32 dwSamplesPerSec;
|
98
99
|
Uint32 dwAvgBytesPerSec;
|
@@ -144,7 +145,7 @@ static int read_fmt_chunk(SDL_RWops *rw, fmt_t *fmt)
|
|
144
145
|
BAIL_IF_MACRO(fmt->chunkSize < 16, "WAV: Invalid chunk size", 0);
|
145
146
|
fmt->next_chunk_offset = SDL_RWtell(rw) + fmt->chunkSize;
|
146
147
|
|
147
|
-
BAIL_IF_MACRO(!
|
148
|
+
BAIL_IF_MACRO(!read_le16(rw, &fmt->wFormatTag), NULL, 0);
|
148
149
|
BAIL_IF_MACRO(!read_le16(rw, &fmt->wChannels), NULL, 0);
|
149
150
|
BAIL_IF_MACRO(!read_le32(rw, &fmt->dwSamplesPerSec), NULL, 0);
|
150
151
|
BAIL_IF_MACRO(!read_le32(rw, &fmt->dwAvgBytesPerSec), NULL, 0);
|
@@ -211,7 +212,19 @@ static Uint32 read_sample_fmt_normal(Sound_Sample *sample)
|
|
211
212
|
Sound_SampleInternal *internal = (Sound_SampleInternal *) sample->opaque;
|
212
213
|
wav_t *w = (wav_t *) internal->decoder_private;
|
213
214
|
Uint32 max = (internal->buffer_size < (Uint32) w->bytesLeft) ?
|
214
|
-
|
215
|
+
internal->buffer_size : (Uint32) w->bytesLeft;
|
216
|
+
|
217
|
+
/* We need to convert 24-bit PCM to an SDL-friendly AUDIO_S32SYS ... */
|
218
|
+
if (w->fmt->wBitsPerSample == 24) {
|
219
|
+
const Uint32 num_samples = max / 3;
|
220
|
+
|
221
|
+
/* we're going to expand by 25%...3 bytes to 4. Make sure the buffer has room to expand. */
|
222
|
+
max = (num_samples - (num_samples / 4)) * 3;
|
223
|
+
if (max == 0) {
|
224
|
+
sample->flags |= SOUND_SAMPLEFLAG_EOF;
|
225
|
+
return 0;
|
226
|
+
}
|
227
|
+
}
|
215
228
|
|
216
229
|
SDL_assert(max > 0);
|
217
230
|
|
@@ -234,6 +247,19 @@ static Uint32 read_sample_fmt_normal(Sound_Sample *sample)
|
|
234
247
|
else if (retval < internal->buffer_size)
|
235
248
|
sample->flags |= SOUND_SAMPLEFLAG_EAGAIN;
|
236
249
|
|
250
|
+
/* deal with 24-bit PCM. */
|
251
|
+
if ((retval > 0) && (w->fmt->wBitsPerSample == 24)) {
|
252
|
+
const Uint32 total = retval / 3;
|
253
|
+
const Uint8 *src = ((Uint8 *)internal->buffer + retval) - 3;
|
254
|
+
Uint32 *dst = (Uint32 *) (((Uint8 *)internal->buffer + (total * 4)) - 4);
|
255
|
+
Uint32 i;
|
256
|
+
for (i = 0; i < total; i++, dst--, src -= 3) {
|
257
|
+
const Uint32 sample = ((Uint32) src[0]) | (((Uint32) src[1]) << 8) | (((Uint32) src[2]) << 16);
|
258
|
+
*dst = sample << 8; /* shift it up so the most significant bits cover the 32-bit space. */
|
259
|
+
}
|
260
|
+
retval = total * 4;
|
261
|
+
}
|
262
|
+
|
237
263
|
return retval;
|
238
264
|
} /* read_sample_fmt_normal */
|
239
265
|
|
@@ -590,6 +616,7 @@ static int read_fmt(SDL_RWops *rw, fmt_t *fmt)
|
|
590
616
|
/* if it's in this switch statement, we support the format. */
|
591
617
|
switch (fmt->wFormatTag)
|
592
618
|
{
|
619
|
+
case FMT_EXTENSIBLE: /* !!! FIXME: this isn't correct */
|
593
620
|
case FMT_NORMAL:
|
594
621
|
SNDDBG(("WAV: Appears to be uncompressed audio.\n"));
|
595
622
|
return read_fmt_normal(rw, fmt);
|
@@ -603,7 +630,6 @@ static int read_fmt(SDL_RWops *rw, fmt_t *fmt)
|
|
603
630
|
return read_fmt_normal(rw, fmt); /* just normal PCM, otherwise. */
|
604
631
|
|
605
632
|
/* add other types here. */
|
606
|
-
|
607
633
|
} /* switch */
|
608
634
|
|
609
635
|
SNDDBG(("WAV: Format 0x%X is unknown.\n",
|
@@ -662,19 +688,17 @@ static int WAV_open_internal(Sound_Sample *sample, const char *ext, fmt_t *fmt)
|
|
662
688
|
} /* if */
|
663
689
|
else
|
664
690
|
{
|
665
|
-
|
666
|
-
sample->actual.format = AUDIO_S16SYS;
|
667
|
-
else if (fmt->wBitsPerSample == 8)
|
668
|
-
sample->actual.format = AUDIO_U8;
|
669
|
-
else if (fmt->wBitsPerSample == 16)
|
670
|
-
sample->actual.format = AUDIO_S16LSB;
|
671
|
-
else if (fmt->wBitsPerSample == 32)
|
672
|
-
sample->actual.format = AUDIO_S32LSB;
|
673
|
-
else
|
691
|
+
switch (fmt->wBitsPerSample)
|
674
692
|
{
|
675
|
-
|
676
|
-
|
677
|
-
|
693
|
+
case 4: sample->actual.format = AUDIO_S16SYS; break;
|
694
|
+
case 8: sample->actual.format = AUDIO_U8; break;
|
695
|
+
case 16: sample->actual.format = AUDIO_S16LSB; break;
|
696
|
+
case 24: sample->actual.format = AUDIO_S32SYS; break;
|
697
|
+
case 32: sample->actual.format = AUDIO_S32LSB; break;
|
698
|
+
default:
|
699
|
+
SNDDBG(("WAV: %d bits per sample!?\n", (int) fmt->wBitsPerSample));
|
700
|
+
BAIL_MACRO("WAV: Unsupported sample size.", 0);
|
701
|
+
} /* switch */
|
678
702
|
} /* else */
|
679
703
|
|
680
704
|
BAIL_IF_MACRO(!read_fmt(rw, fmt), NULL, 0);
|