gosu 1.4.1 → 1.4.4

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.
Files changed (80) 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/ext/gosu/extconf.rb +6 -3
  42. data/include/Gosu/Buttons.hpp +103 -103
  43. data/include/Gosu/Directories.hpp +31 -24
  44. data/include/Gosu/Font.hpp +4 -2
  45. data/include/Gosu/Gosu.hpp +5 -8
  46. data/include/Gosu/IO.hpp +0 -3
  47. data/include/Gosu/Input.hpp +7 -1
  48. data/include/Gosu/Math.hpp +0 -3
  49. data/include/Gosu/TextInput.hpp +3 -3
  50. data/include/Gosu/Timing.hpp +3 -6
  51. data/include/Gosu/Version.hpp +1 -1
  52. data/include/Gosu/Window.hpp +3 -2
  53. data/rdoc/gosu.rb +16 -2
  54. data/src/Audio.cpp +2 -2
  55. data/src/AudioFileAudioToolbox.cpp +1 -1
  56. data/src/AudioFileSDLSound.cpp +1 -1
  57. data/src/AudioImpl.cpp +0 -7
  58. data/src/AudioImpl.hpp +1 -3
  59. data/src/BitmapIO.cpp +23 -2
  60. data/src/BlockAllocator.cpp +1 -1
  61. data/src/DirectoriesApple.cpp +25 -24
  62. data/src/DirectoriesUnix.cpp +14 -12
  63. data/src/DirectoriesWin.cpp +26 -30
  64. data/src/FileUnix.cpp +1 -1
  65. data/src/FileWin.cpp +1 -1
  66. data/src/Font.cpp +13 -3
  67. data/src/Graphics.cpp +1 -1
  68. data/src/Image.cpp +10 -15
  69. data/src/Input.cpp +16 -1
  70. data/src/InputUIKit.cpp +1 -1
  71. data/src/Macro.cpp +1 -1
  72. data/src/RubyGosu.cxx +76 -34
  73. data/src/TextInput.cpp +1 -1
  74. data/src/TimingApple.cpp +2 -2
  75. data/src/TimingUnix.cpp +3 -7
  76. data/src/TimingWin.cpp +1 -2
  77. data/src/TrueTypeFont.cpp +1 -1
  78. data/src/Window.cpp +5 -4
  79. data/src/WindowUIKit.cpp +1 -1
  80. metadata +3 -3
@@ -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)