gosu 1.4.1 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/dependencies/SDL_sound/SDL_sound.c +21 -63
  3. data/dependencies/SDL_sound/SDL_sound.h +2 -2
  4. data/dependencies/SDL_sound/SDL_sound_aiff.c +26 -23
  5. data/dependencies/SDL_sound/SDL_sound_au.c +8 -8
  6. data/dependencies/SDL_sound/SDL_sound_coreaudio.c +4 -5
  7. data/dependencies/SDL_sound/SDL_sound_flac.c +28 -30
  8. data/dependencies/SDL_sound/SDL_sound_internal.h +4 -4
  9. data/dependencies/SDL_sound/SDL_sound_modplug.c +1 -1
  10. data/dependencies/SDL_sound/SDL_sound_mp3.c +19 -23
  11. data/dependencies/SDL_sound/SDL_sound_raw.c +5 -6
  12. data/dependencies/SDL_sound/SDL_sound_shn.c +4 -4
  13. data/dependencies/SDL_sound/SDL_sound_voc.c +15 -15
  14. data/dependencies/SDL_sound/SDL_sound_vorbis.c +14 -7
  15. data/dependencies/SDL_sound/SDL_sound_wav.c +17 -17
  16. data/dependencies/SDL_sound/dr_flac.h +10840 -4779
  17. data/dependencies/SDL_sound/dr_mp3.h +2793 -1004
  18. data/dependencies/SDL_sound/libmodplug/fastmix.c +5 -0
  19. data/dependencies/SDL_sound/libmodplug/load_669.c +1 -1
  20. data/dependencies/SDL_sound/libmodplug/load_amf.c +1 -0
  21. data/dependencies/SDL_sound/libmodplug/load_ams.c +38 -22
  22. data/dependencies/SDL_sound/libmodplug/load_it.c +18 -14
  23. data/dependencies/SDL_sound/libmodplug/load_mdl.c +18 -9
  24. data/dependencies/SDL_sound/libmodplug/load_med.c +7 -6
  25. data/dependencies/SDL_sound/libmodplug/load_mt2.c +36 -17
  26. data/dependencies/SDL_sound/libmodplug/load_okt.c +51 -24
  27. data/dependencies/SDL_sound/libmodplug/load_psm.c +4 -2
  28. data/dependencies/SDL_sound/libmodplug/load_s3m.c +4 -4
  29. data/dependencies/SDL_sound/libmodplug/load_ult.c +4 -3
  30. data/dependencies/SDL_sound/libmodplug/load_xm.c +5 -5
  31. data/dependencies/SDL_sound/libmodplug/snd_fx.c +8 -1
  32. data/dependencies/SDL_sound/libmodplug/sndfile.c +21 -4
  33. data/dependencies/SDL_sound/stb_vorbis.h +10 -18
  34. data/dependencies/mojoAL/mojoal.c +260 -6
  35. data/dependencies/stb/stb_image.h +208 -73
  36. data/dependencies/stb/stb_image_write.h +57 -23
  37. data/dependencies/stb/stb_truetype.h +345 -279
  38. data/dependencies/utf8proc/utf8proc.c +37 -18
  39. data/dependencies/utf8proc/utf8proc.h +17 -5
  40. data/dependencies/utf8proc/utf8proc_data.h +12012 -10089
  41. data/include/Gosu/Buttons.hpp +103 -103
  42. data/include/Gosu/Directories.hpp +31 -24
  43. data/include/Gosu/Font.hpp +4 -2
  44. data/include/Gosu/Gosu.hpp +5 -8
  45. data/include/Gosu/IO.hpp +0 -3
  46. data/include/Gosu/Math.hpp +0 -3
  47. data/include/Gosu/Timing.hpp +2 -8
  48. data/include/Gosu/Version.hpp +1 -1
  49. data/src/AudioImpl.cpp +0 -7
  50. data/src/AudioImpl.hpp +1 -3
  51. data/src/BitmapIO.cpp +23 -2
  52. data/src/DirectoriesApple.cpp +25 -24
  53. data/src/DirectoriesUnix.cpp +14 -12
  54. data/src/DirectoriesWin.cpp +26 -30
  55. data/src/Font.cpp +12 -2
  56. data/src/Image.cpp +10 -15
  57. data/src/RubyGosu.cxx +6 -34
  58. data/src/TimingApple.cpp +1 -7
  59. data/src/TimingUnix.cpp +0 -6
  60. data/src/TimingWin.cpp +0 -6
  61. data/src/Window.cpp +4 -3
  62. metadata +2 -2
@@ -1,4 +1,4 @@
1
- /* stb_image_write - v1.15 - public domain - http://nothings.org/stb
1
+ /* stb_image_write - v1.16 - public domain - http://nothings.org/stb
2
2
  writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015
3
3
  no warranty implied; use at your own risk
4
4
 
@@ -140,6 +140,7 @@ CREDITS:
140
140
  Ivan Tikhonov
141
141
  github:ignotion
142
142
  Adam Schackart
143
+ Andrew Kensler
143
144
 
144
145
  LICENSE
145
146
 
@@ -166,9 +167,9 @@ LICENSE
166
167
  #endif
167
168
 
168
169
  #ifndef STB_IMAGE_WRITE_STATIC // C++ forbids static forward declarations
169
- extern int stbi_write_tga_with_rle;
170
- extern int stbi_write_png_compression_level;
171
- extern int stbi_write_force_png_filter;
170
+ STBIWDEF int stbi_write_tga_with_rle;
171
+ STBIWDEF int stbi_write_png_compression_level;
172
+ STBIWDEF int stbi_write_force_png_filter;
172
173
  #endif
173
174
 
174
175
  #ifndef STBI_WRITE_NO_STDIO
@@ -178,7 +179,7 @@ STBIWDEF int stbi_write_tga(char const *filename, int w, int h, int comp, const
178
179
  STBIWDEF int stbi_write_hdr(char const *filename, int w, int h, int comp, const float *data);
179
180
  STBIWDEF int stbi_write_jpg(char const *filename, int x, int y, int comp, const void *data, int quality);
180
181
 
181
- #ifdef STBI_WINDOWS_UTF8
182
+ #ifdef STBIW_WINDOWS_UTF8
182
183
  STBIWDEF int stbiw_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input);
183
184
  #endif
184
185
  #endif
@@ -285,7 +286,7 @@ static void stbi__stdio_write(void *context, void *data, int size)
285
286
  fwrite(data,1,size,(FILE*) context);
286
287
  }
287
288
 
288
- #if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8)
289
+ #if defined(_WIN32) && defined(STBIW_WINDOWS_UTF8)
289
290
  #ifdef __cplusplus
290
291
  #define STBIW_EXTERN extern "C"
291
292
  #else
@@ -296,25 +297,25 @@ STBIW_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned in
296
297
 
297
298
  STBIWDEF int stbiw_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input)
298
299
  {
299
- return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL);
300
+ return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL);
300
301
  }
301
302
  #endif
302
303
 
303
304
  static FILE *stbiw__fopen(char const *filename, char const *mode)
304
305
  {
305
306
  FILE *f;
306
- #if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8)
307
+ #if defined(_WIN32) && defined(STBIW_WINDOWS_UTF8)
307
308
  wchar_t wMode[64];
308
309
  wchar_t wFilename[1024];
309
- if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename)))
310
+ if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename)/sizeof(*wFilename)))
310
311
  return 0;
311
312
 
312
- if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode)))
313
+ if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode)/sizeof(*wMode)))
313
314
  return 0;
314
315
 
315
- #if _MSC_VER >= 1400
316
- if (0 != _wfopen_s(&f, wFilename, wMode))
317
- f = 0;
316
+ #if defined(_MSC_VER) && _MSC_VER >= 1400
317
+ if (0 != _wfopen_s(&f, wFilename, wMode))
318
+ f = 0;
318
319
  #else
319
320
  f = _wfopen(wFilename, wMode);
320
321
  #endif
@@ -397,7 +398,7 @@ static void stbiw__putc(stbi__write_context *s, unsigned char c)
397
398
 
398
399
  static void stbiw__write1(stbi__write_context *s, unsigned char a)
399
400
  {
400
- if (s->buf_used + 1 > sizeof(s->buffer))
401
+ if ((size_t)s->buf_used + 1 > sizeof(s->buffer))
401
402
  stbiw__write_flush(s);
402
403
  s->buffer[s->buf_used++] = a;
403
404
  }
@@ -405,7 +406,7 @@ static void stbiw__write1(stbi__write_context *s, unsigned char a)
405
406
  static void stbiw__write3(stbi__write_context *s, unsigned char a, unsigned char b, unsigned char c)
406
407
  {
407
408
  int n;
408
- if (s->buf_used + 3 > sizeof(s->buffer))
409
+ if ((size_t)s->buf_used + 3 > sizeof(s->buffer))
409
410
  stbiw__write_flush(s);
410
411
  n = s->buf_used;
411
412
  s->buf_used = n+3;
@@ -490,11 +491,22 @@ static int stbiw__outfile(stbi__write_context *s, int rgb_dir, int vdir, int x,
490
491
 
491
492
  static int stbi_write_bmp_core(stbi__write_context *s, int x, int y, int comp, const void *data)
492
493
  {
493
- int pad = (-x*3) & 3;
494
- return stbiw__outfile(s,-1,-1,x,y,comp,1,(void *) data,0,pad,
495
- "11 4 22 4" "4 44 22 444444",
496
- 'B', 'M', 14+40+(x*3+pad)*y, 0,0, 14+40, // file header
497
- 40, x,y, 1,24, 0,0,0,0,0,0); // bitmap header
494
+ if (comp != 4) {
495
+ // write RGB bitmap
496
+ int pad = (-x*3) & 3;
497
+ return stbiw__outfile(s,-1,-1,x,y,comp,1,(void *) data,0,pad,
498
+ "11 4 22 4" "4 44 22 444444",
499
+ 'B', 'M', 14+40+(x*3+pad)*y, 0,0, 14+40, // file header
500
+ 40, x,y, 1,24, 0,0,0,0,0,0); // bitmap header
501
+ } else {
502
+ // RGBA bitmaps need a v4 header
503
+ // use BI_BITFIELDS mode with 32bpp and alpha mask
504
+ // (straight BI_RGB with alpha mask doesn't work in most readers)
505
+ return stbiw__outfile(s,-1,-1,x,y,comp,1,(void *)data,1,0,
506
+ "11 4 22 4" "4 44 22 444444 4444 4 444 444 444 444",
507
+ 'B', 'M', 14+108+x*y*4, 0, 0, 14+108, // file header
508
+ 108, x,y, 1,32, 3,0,0,0,0,0, 0xff0000,0xff00,0xff,0xff000000u, 0, 0,0,0, 0,0,0, 0,0,0, 0,0,0); // bitmap V4 header
509
+ }
498
510
  }
499
511
 
500
512
  STBIWDEF int stbi_write_bmp_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data)
@@ -622,6 +634,8 @@ STBIWDEF int stbi_write_tga(char const *filename, int x, int y, int comp, const
622
634
 
623
635
  #define stbiw__max(a, b) ((a) > (b) ? (a) : (b))
624
636
 
637
+ #ifndef STBI_WRITE_NO_STDIO
638
+
625
639
  static void stbiw__linear_to_rgbe(unsigned char *rgbe, float *linear)
626
640
  {
627
641
  int exponent;
@@ -756,7 +770,7 @@ static int stbi_write_hdr_core(stbi__write_context *s, int x, int y, int comp, f
756
770
  char header[] = "#?RADIANCE\n# Written by stb_image_write.h\nFORMAT=32-bit_rle_rgbe\n";
757
771
  s->func(s->context, header, sizeof(header)-1);
758
772
 
759
- #ifdef __STDC_WANT_SECURE_LIB__
773
+ #ifdef __STDC_LIB_EXT1__
760
774
  len = sprintf_s(buffer, sizeof(buffer), "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x);
761
775
  #else
762
776
  len = sprintf(buffer, "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x);
@@ -777,7 +791,6 @@ STBIWDEF int stbi_write_hdr_to_func(stbi_write_func *func, void *context, int x,
777
791
  return stbi_write_hdr_core(&s, x, y, comp, (float *) data);
778
792
  }
779
793
 
780
- #ifndef STBI_WRITE_NO_STDIO
781
794
  STBIWDEF int stbi_write_hdr(char const *filename, int x, int y, int comp, const float *data)
782
795
  {
783
796
  stbi__write_context s = { 0 };
@@ -968,6 +981,23 @@ STBIWDEF unsigned char * stbi_zlib_compress(unsigned char *data, int data_len, i
968
981
  (void) stbiw__sbfree(hash_table[i]);
969
982
  STBIW_FREE(hash_table);
970
983
 
984
+ // store uncompressed instead if compression was worse
985
+ if (stbiw__sbn(out) > data_len + 2 + ((data_len+32766)/32767)*5) {
986
+ stbiw__sbn(out) = 2; // truncate to DEFLATE 32K window and FLEVEL = 1
987
+ for (j = 0; j < data_len;) {
988
+ int blocklen = data_len - j;
989
+ if (blocklen > 32767) blocklen = 32767;
990
+ stbiw__sbpush(out, data_len - j == blocklen); // BFINAL = ?, BTYPE = 0 -- no compression
991
+ stbiw__sbpush(out, STBIW_UCHAR(blocklen)); // LEN
992
+ stbiw__sbpush(out, STBIW_UCHAR(blocklen >> 8));
993
+ stbiw__sbpush(out, STBIW_UCHAR(~blocklen)); // NLEN
994
+ stbiw__sbpush(out, STBIW_UCHAR(~blocklen >> 8));
995
+ memcpy(out+stbiw__sbn(out), data+j, blocklen);
996
+ stbiw__sbn(out) += blocklen;
997
+ j += blocklen;
998
+ }
999
+ }
1000
+
971
1001
  {
972
1002
  // compute adler32 on input
973
1003
  unsigned int s1=1, s2=0;
@@ -1598,6 +1628,10 @@ STBIWDEF int stbi_write_jpg(char const *filename, int x, int y, int comp, const
1598
1628
  #endif // STB_IMAGE_WRITE_IMPLEMENTATION
1599
1629
 
1600
1630
  /* Revision history
1631
+ 1.16 (2021-07-11)
1632
+ make Deflate code emit uncompressed blocks when it would otherwise expand
1633
+ support writing BMPs with alpha channel
1634
+ 1.15 (2020-07-13) unknown
1601
1635
  1.14 (2020-02-02) updated JPEG writer to downsample chroma channels
1602
1636
  1.13
1603
1637
  1.12
@@ -1635,7 +1669,7 @@ STBIWDEF int stbi_write_jpg(char const *filename, int x, int y, int comp, const
1635
1669
  add HDR output
1636
1670
  fix monochrome BMP
1637
1671
  0.95 (2014-08-17)
1638
- add monochrome TGA output
1672
+ add monochrome TGA output
1639
1673
  0.94 (2014-05-31)
1640
1674
  rename private functions to avoid conflicts with stb_image.h
1641
1675
  0.93 (2014-05-27)