ruby2d 0.9.2 → 0.10.0

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 (162) hide show
  1. checksums.yaml +4 -4
  2. data/assets/README.md +7 -8
  3. data/assets/Rakefile +85 -0
  4. data/assets/include/SDL2/SDL.h +4 -1
  5. data/assets/include/SDL2/SDL_assert.h +3 -1
  6. data/assets/include/SDL2/SDL_atomic.h +20 -2
  7. data/assets/include/SDL2/SDL_audio.h +47 -14
  8. data/assets/include/SDL2/SDL_bits.h +10 -1
  9. data/assets/include/SDL2/SDL_blendmode.h +10 -7
  10. data/assets/include/SDL2/SDL_clipboard.h +1 -1
  11. data/assets/include/SDL2/SDL_config.h +24 -390
  12. data/assets/include/SDL2/SDL_config_android.h +182 -0
  13. data/assets/include/SDL2/SDL_config_iphoneos.h +207 -0
  14. data/assets/include/SDL2/SDL_config_macosx.h +266 -0
  15. data/assets/include/SDL2/SDL_config_minimal.h +85 -0
  16. data/assets/include/SDL2/SDL_config_os2.h +188 -0
  17. data/assets/include/SDL2/SDL_config_pandora.h +135 -0
  18. data/assets/include/SDL2/SDL_config_psp.h +165 -0
  19. data/assets/include/SDL2/SDL_config_windows.h +288 -0
  20. data/assets/include/SDL2/SDL_config_winrt.h +243 -0
  21. data/assets/include/SDL2/SDL_config_wiz.h +149 -0
  22. data/assets/include/SDL2/SDL_copying.h +20 -0
  23. data/assets/include/SDL2/SDL_cpuinfo.h +119 -8
  24. data/assets/include/SDL2/SDL_egl.h +4 -1
  25. data/assets/include/SDL2/SDL_endian.h +6 -3
  26. data/assets/include/SDL2/SDL_error.h +38 -2
  27. data/assets/include/SDL2/SDL_events.h +67 -28
  28. data/assets/include/SDL2/SDL_filesystem.h +1 -1
  29. data/assets/include/SDL2/SDL_gamecontroller.h +160 -9
  30. data/assets/include/SDL2/SDL_gesture.h +1 -1
  31. data/assets/include/SDL2/SDL_haptic.h +10 -1
  32. data/assets/include/SDL2/SDL_hints.h +460 -17
  33. data/assets/include/SDL2/SDL_image.h +2 -2
  34. data/assets/include/SDL2/SDL_joystick.h +115 -24
  35. data/assets/include/SDL2/SDL_keyboard.h +1 -1
  36. data/assets/include/SDL2/SDL_keycode.h +11 -9
  37. data/assets/include/SDL2/SDL_loadso.h +1 -1
  38. data/assets/include/SDL2/SDL_locale.h +101 -0
  39. data/assets/include/SDL2/SDL_log.h +3 -3
  40. data/assets/include/SDL2/SDL_main.h +28 -16
  41. data/assets/include/SDL2/SDL_messagebox.h +6 -4
  42. data/assets/include/SDL2/SDL_metal.h +117 -0
  43. data/assets/include/SDL2/SDL_misc.h +75 -0
  44. data/assets/include/SDL2/SDL_mouse.h +1 -1
  45. data/assets/include/SDL2/SDL_mutex.h +1 -1
  46. data/assets/include/SDL2/SDL_name.h +1 -1
  47. data/assets/include/SDL2/SDL_opengl.h +1 -1
  48. data/assets/include/SDL2/SDL_opengl_glext.h +3 -0
  49. data/assets/include/SDL2/SDL_opengles.h +1 -1
  50. data/assets/include/SDL2/SDL_opengles2.h +1 -1
  51. data/assets/include/SDL2/SDL_pixels.h +27 -18
  52. data/assets/include/SDL2/SDL_platform.h +1 -1
  53. data/assets/include/SDL2/SDL_power.h +1 -1
  54. data/assets/include/SDL2/SDL_quit.h +1 -1
  55. data/assets/include/SDL2/SDL_rect.h +29 -3
  56. data/assets/include/SDL2/SDL_render.h +230 -3
  57. data/assets/include/SDL2/SDL_revision.h +2 -2
  58. data/assets/include/SDL2/SDL_rwops.h +51 -22
  59. data/assets/include/SDL2/SDL_scancode.h +2 -2
  60. data/assets/include/SDL2/SDL_sensor.h +28 -12
  61. data/assets/include/SDL2/SDL_shape.h +1 -1
  62. data/assets/include/SDL2/SDL_stdinc.h +44 -4
  63. data/assets/include/SDL2/SDL_surface.h +12 -2
  64. data/assets/include/SDL2/SDL_system.h +50 -4
  65. data/assets/include/SDL2/SDL_syswm.h +39 -9
  66. data/assets/include/SDL2/SDL_test.h +1 -1
  67. data/assets/include/SDL2/SDL_test_assert.h +1 -1
  68. data/assets/include/SDL2/SDL_test_common.h +32 -2
  69. data/assets/include/SDL2/SDL_test_compare.h +1 -1
  70. data/assets/include/SDL2/SDL_test_crc32.h +1 -1
  71. data/assets/include/SDL2/SDL_test_font.h +1 -1
  72. data/assets/include/SDL2/SDL_test_fuzzer.h +1 -1
  73. data/assets/include/SDL2/SDL_test_harness.h +1 -1
  74. data/assets/include/SDL2/SDL_test_images.h +1 -1
  75. data/assets/include/SDL2/SDL_test_log.h +1 -1
  76. data/assets/include/SDL2/SDL_test_md5.h +1 -1
  77. data/assets/include/SDL2/SDL_test_memory.h +3 -3
  78. data/assets/include/SDL2/SDL_test_random.h +1 -1
  79. data/assets/include/SDL2/SDL_thread.h +34 -11
  80. data/assets/include/SDL2/SDL_timer.h +1 -1
  81. data/assets/include/SDL2/SDL_touch.h +17 -1
  82. data/assets/include/SDL2/SDL_types.h +1 -1
  83. data/assets/include/SDL2/SDL_version.h +2 -2
  84. data/assets/include/SDL2/SDL_video.h +11 -5
  85. data/assets/include/SDL2/SDL_vulkan.h +9 -11
  86. data/assets/include/SDL2/begin_code.h +8 -9
  87. data/assets/include/SDL2/close_code.h +4 -1
  88. data/assets/macos/lib/libFLAC.a +0 -0
  89. data/assets/macos/lib/libSDL2.a +0 -0
  90. data/assets/macos/lib/libSDL2_image.a +0 -0
  91. data/assets/macos/lib/libSDL2_mixer.a +0 -0
  92. data/assets/macos/lib/libSDL2_ttf.a +0 -0
  93. data/assets/macos/lib/libfreetype.a +0 -0
  94. data/assets/macos/lib/libjpeg.a +0 -0
  95. data/assets/macos/lib/libmpg123.a +0 -0
  96. data/assets/macos/lib/libogg.a +0 -0
  97. data/assets/macos/lib/libpng16.a +0 -0
  98. data/assets/macos/lib/libtiff.a +0 -0
  99. data/assets/macos/lib/libvorbis.a +0 -0
  100. data/assets/macos/lib/libvorbisfile.a +0 -0
  101. data/assets/macos/lib/libwebp.a +0 -0
  102. data/assets/mingw/bin/SDL2.dll +0 -0
  103. data/assets/mingw/bin/SDL2_image.dll +0 -0
  104. data/assets/mingw/bin/libpng16-16.dll +0 -0
  105. data/assets/mingw/bin/libtiff-5.dll +0 -0
  106. data/assets/mingw/bin/libwebp-7.dll +0 -0
  107. data/assets/mingw/lib/libSDL2.a +0 -0
  108. data/assets/mingw/lib/libSDL2.dll.a +0 -0
  109. data/assets/mingw/lib/libSDL2_image.a +0 -0
  110. data/assets/mingw/lib/libSDL2_image.dll.a +0 -0
  111. data/assets/mingw/lib/libSDL2_test.a +0 -0
  112. data/assets/mingw/lib/libSDL2main.a +0 -0
  113. data/bin/ruby2d +2 -1
  114. data/{assets/linux/simple2d/src/simple2d.c → ext/ruby2d/common.c} +32 -32
  115. data/{assets/linux/simple2d/src → ext/ruby2d}/controllers.c +17 -17
  116. data/ext/ruby2d/extconf.rb +6 -36
  117. data/{assets/linux/simple2d/src → ext/ruby2d}/gl.c +106 -85
  118. data/{assets/linux/simple2d/src → ext/ruby2d}/gl2.c +35 -20
  119. data/{assets/linux/simple2d/src → ext/ruby2d}/gl3.c +146 -58
  120. data/{assets/linux/simple2d/src → ext/ruby2d}/gles.c +41 -26
  121. data/{assets/linux/simple2d/src → ext/ruby2d}/image.c +16 -16
  122. data/{assets/linux/simple2d/src → ext/ruby2d}/input.c +8 -8
  123. data/{assets/linux/simple2d/src → ext/ruby2d}/music.c +30 -17
  124. data/ext/ruby2d/ruby2d.c +427 -290
  125. data/ext/ruby2d/ruby2d.h +789 -0
  126. data/{assets/linux/simple2d/src → ext/ruby2d}/shapes.c +18 -18
  127. data/ext/ruby2d/sound.c +118 -0
  128. data/{assets/linux/simple2d/src → ext/ruby2d}/sprite.c +16 -16
  129. data/{assets/linux/simple2d/src → ext/ruby2d}/text.c +22 -22
  130. data/ext/ruby2d/tileset.c +30 -0
  131. data/{assets/linux/simple2d/src → ext/ruby2d}/window.c +71 -60
  132. data/lib/ruby2d.rb +5 -2
  133. data/lib/ruby2d/circle.rb +18 -2
  134. data/lib/ruby2d/cli/build.rb +3 -8
  135. data/lib/ruby2d/cli/colorize.rb +10 -0
  136. data/lib/ruby2d/dsl.rb +16 -9
  137. data/lib/ruby2d/entity.rb +17 -0
  138. data/lib/ruby2d/font.rb +4 -3
  139. data/lib/ruby2d/image.rb +24 -1
  140. data/lib/ruby2d/line.rb +20 -0
  141. data/lib/ruby2d/music.rb +5 -0
  142. data/lib/ruby2d/pixel.rb +17 -0
  143. data/lib/ruby2d/quad.rb +18 -0
  144. data/lib/ruby2d/rectangle.rb +11 -2
  145. data/lib/ruby2d/renderable.rb +4 -8
  146. data/lib/ruby2d/sound.rb +5 -0
  147. data/lib/ruby2d/sprite.rb +35 -3
  148. data/lib/ruby2d/square.rb +9 -0
  149. data/lib/ruby2d/text.rb +22 -1
  150. data/lib/ruby2d/tileset.rb +69 -0
  151. data/lib/ruby2d/triangle.rb +16 -0
  152. data/lib/ruby2d/version.rb +1 -1
  153. data/lib/ruby2d/window.rb +249 -22
  154. metadata +41 -27
  155. data/assets/include/simple2d.h +0 -735
  156. data/assets/linux/simple2d/Makefile +0 -250
  157. data/assets/linux/simple2d/bin/simple2d.sh +0 -1249
  158. data/assets/linux/simple2d/include/simple2d.h +0 -735
  159. data/assets/linux/simple2d/src/sound.c +0 -56
  160. data/assets/macos/lib/libsimple2d.a +0 -0
  161. data/assets/mingw/lib/libsimple2d.a +0 -0
  162. data/lib/ruby2d/colorize.rb +0 -10
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -38,7 +38,7 @@
38
38
  * SDL_Event structure.
39
39
  *
40
40
  * The values in this enumeration are based on the USB usage page standard:
41
- * http://www.usb.org/developers/hidpage/Hut1_12v2.pdf
41
+ * https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf
42
42
  */
43
43
  typedef enum
44
44
  {
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -26,8 +26,8 @@
26
26
  *
27
27
  */
28
28
 
29
- #ifndef _SDL_sensor_h
30
- #define _SDL_sensor_h
29
+ #ifndef SDL_sensor_h_
30
+ #define SDL_sensor_h_
31
31
 
32
32
  #include "SDL_stdinc.h"
33
33
  #include "SDL_error.h"
@@ -78,14 +78,16 @@ typedef enum
78
78
  * Accelerometer sensor
79
79
  *
80
80
  * The accelerometer returns the current acceleration in SI meters per
81
- * second squared. This includes gravity, so a device at rest will have
82
- * an acceleration of SDL_STANDARD_GRAVITY straight down.
81
+ * second squared. This measurement includes the force of gravity, so
82
+ * a device at rest will have an value of SDL_STANDARD_GRAVITY away
83
+ * from the center of the earth.
83
84
  *
84
85
  * values[0]: Acceleration on the x axis
85
86
  * values[1]: Acceleration on the y axis
86
87
  * values[2]: Acceleration on the z axis
87
88
  *
88
- * For phones held in portrait mode, the axes are defined as follows:
89
+ * For phones held in portrait mode and game controllers held in front of you,
90
+ * the axes are defined as follows:
89
91
  * -X ... +X : left ... right
90
92
  * -Y ... +Y : bottom ... top
91
93
  * -Z ... +Z : farther ... closer
@@ -105,22 +107,36 @@ typedef enum
105
107
  * see positive rotation on that axis when it appeared to be rotating
106
108
  * counter-clockwise.
107
109
  *
108
- * values[0]: Angular speed around the x axis
109
- * values[1]: Angular speed around the y axis
110
- * values[2]: Angular speed around the z axis
110
+ * values[0]: Angular speed around the x axis (pitch)
111
+ * values[1]: Angular speed around the y axis (yaw)
112
+ * values[2]: Angular speed around the z axis (roll)
111
113
  *
112
- * For phones held in portrait mode, the axes are defined as follows:
114
+ * For phones held in portrait mode and game controllers held in front of you,
115
+ * the axes are defined as follows:
113
116
  * -X ... +X : left ... right
114
117
  * -Y ... +Y : bottom ... top
115
118
  * -Z ... +Z : farther ... closer
116
119
  *
117
- * The axis data is not changed when the phone is rotated.
120
+ * The axis data is not changed when the phone or controller is rotated.
118
121
  *
119
122
  * \sa SDL_GetDisplayOrientation()
120
123
  */
121
124
 
122
125
  /* Function prototypes */
123
126
 
127
+ /**
128
+ * Locking for multi-threaded access to the sensor API
129
+ *
130
+ * If you are using the sensor API or handling events from multiple threads
131
+ * you should use these locking functions to protect access to the sensors.
132
+ *
133
+ * In particular, you are guaranteed that the sensor list won't change, so
134
+ * the API functions that take a sensor index will be valid, and sensor
135
+ * events will not be delivered.
136
+ */
137
+ extern DECLSPEC void SDLCALL SDL_LockSensors(void);
138
+ extern DECLSPEC void SDLCALL SDL_UnlockSensors(void);
139
+
124
140
  /**
125
141
  * \brief Count the number of sensors attached to the system right now
126
142
  */
@@ -246,6 +262,6 @@ extern DECLSPEC void SDLCALL SDL_SensorUpdate(void);
246
262
  #endif
247
263
  #include "close_code.h"
248
264
 
249
- #endif /* _SDL_sensor_h */
265
+ #endif /* SDL_sensor_h_ */
250
266
 
251
267
  /* vi: set ts=4 sw=4 expandtab: */
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -30,6 +30,12 @@
30
30
 
31
31
  #include "SDL_config.h"
32
32
 
33
+ #ifdef __APPLE__
34
+ #ifndef _DARWIN_C_SOURCE
35
+ #define _DARWIN_C_SOURCE 1 /* for memset_pattern4() */
36
+ #endif
37
+ #endif
38
+
33
39
  #ifdef HAVE_SYS_TYPES_H
34
40
  #include <sys/types.h>
35
41
  #endif
@@ -408,18 +414,25 @@ extern DECLSPEC int SDLCALL SDL_abs(int x);
408
414
 
409
415
  extern DECLSPEC int SDLCALL SDL_isdigit(int x);
410
416
  extern DECLSPEC int SDLCALL SDL_isspace(int x);
417
+ extern DECLSPEC int SDLCALL SDL_isupper(int x);
418
+ extern DECLSPEC int SDLCALL SDL_islower(int x);
411
419
  extern DECLSPEC int SDLCALL SDL_toupper(int x);
412
420
  extern DECLSPEC int SDLCALL SDL_tolower(int x);
413
421
 
422
+ extern DECLSPEC Uint32 SDLCALL SDL_crc32(Uint32 crc, const void *data, size_t len);
423
+
414
424
  extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c, size_t len);
415
425
 
416
426
  #define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x)))
417
427
  #define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
428
+ #define SDL_zeroa(x) SDL_memset((x), 0, sizeof((x)))
418
429
 
419
430
  /* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */
420
431
  SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords)
421
432
  {
422
- #if defined(__GNUC__) && defined(i386)
433
+ #ifdef __APPLE__
434
+ memset_pattern4(dst, &val, dwords * 4);
435
+ #elif defined(__GNUC__) && defined(i386)
423
436
  int u0, u1, u2;
424
437
  __asm__ __volatile__ (
425
438
  "cld \n\t"
@@ -450,11 +463,16 @@ extern DECLSPEC void *SDLCALL SDL_memcpy(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_
450
463
  extern DECLSPEC void *SDLCALL SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len);
451
464
  extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len);
452
465
 
453
- extern DECLSPEC wchar_t *SDLCALL SDL_wcsdup(const wchar_t *wstr);
454
466
  extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr);
455
467
  extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen);
456
468
  extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen);
469
+ extern DECLSPEC wchar_t *SDLCALL SDL_wcsdup(const wchar_t *wstr);
470
+ extern DECLSPEC wchar_t *SDLCALL SDL_wcsstr(const wchar_t *haystack, const wchar_t *needle);
471
+
457
472
  extern DECLSPEC int SDLCALL SDL_wcscmp(const wchar_t *str1, const wchar_t *str2);
473
+ extern DECLSPEC int SDLCALL SDL_wcsncmp(const wchar_t *str1, const wchar_t *str2, size_t maxlen);
474
+ extern DECLSPEC int SDLCALL SDL_wcscasecmp(const wchar_t *str1, const wchar_t *str2);
475
+ extern DECLSPEC int SDLCALL SDL_wcsncasecmp(const wchar_t *str1, const wchar_t *str2, size_t len);
458
476
 
459
477
  extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str);
460
478
  extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen);
@@ -467,6 +485,7 @@ extern DECLSPEC char *SDLCALL SDL_strlwr(char *str);
467
485
  extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c);
468
486
  extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c);
469
487
  extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle);
488
+ extern DECLSPEC char *SDLCALL SDL_strtokr(char *s1, const char *s2, char **saveptr);
470
489
  extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str);
471
490
 
472
491
  extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix);
@@ -520,6 +539,8 @@ extern DECLSPEC double SDLCALL SDL_fabs(double x);
520
539
  extern DECLSPEC float SDLCALL SDL_fabsf(float x);
521
540
  extern DECLSPEC double SDLCALL SDL_floor(double x);
522
541
  extern DECLSPEC float SDLCALL SDL_floorf(float x);
542
+ extern DECLSPEC double SDLCALL SDL_trunc(double x);
543
+ extern DECLSPEC float SDLCALL SDL_truncf(float x);
523
544
  extern DECLSPEC double SDLCALL SDL_fmod(double x, double y);
524
545
  extern DECLSPEC float SDLCALL SDL_fmodf(float x, float y);
525
546
  extern DECLSPEC double SDLCALL SDL_log(double x);
@@ -566,6 +587,17 @@ extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode,
566
587
  /* force builds using Clang's static analysis tools to use literal C runtime
567
588
  here, since there are possibly tests that are ineffective otherwise. */
568
589
  #if defined(__clang_analyzer__) && !defined(SDL_DISABLE_ANALYZE_MACROS)
590
+
591
+ /* The analyzer knows about strlcpy even when the system doesn't provide it */
592
+ #ifndef HAVE_STRLCPY
593
+ size_t strlcpy(char* dst, const char* src, size_t size);
594
+ #endif
595
+
596
+ /* The analyzer knows about strlcat even when the system doesn't provide it */
597
+ #ifndef HAVE_STRLCAT
598
+ size_t strlcat(char* dst, const char* src, size_t size);
599
+ #endif
600
+
569
601
  #define SDL_malloc malloc
570
602
  #define SDL_calloc calloc
571
603
  #define SDL_realloc realloc
@@ -574,15 +606,23 @@ extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode,
574
606
  #define SDL_memcpy memcpy
575
607
  #define SDL_memmove memmove
576
608
  #define SDL_memcmp memcmp
577
- #define SDL_strlen strlen
578
609
  #define SDL_strlcpy strlcpy
579
610
  #define SDL_strlcat strlcat
611
+ #define SDL_strlen strlen
612
+ #define SDL_wcslen wcslen
613
+ #define SDL_wcslcpy wcslcpy
614
+ #define SDL_wcslcat wcslcat
580
615
  #define SDL_strdup strdup
616
+ #define SDL_wcsdup wcsdup
581
617
  #define SDL_strchr strchr
582
618
  #define SDL_strrchr strrchr
583
619
  #define SDL_strstr strstr
620
+ #define SDL_wcsstr wcsstr
621
+ #define SDL_strtokr strtok_r
584
622
  #define SDL_strcmp strcmp
623
+ #define SDL_wcscmp wcscmp
585
624
  #define SDL_strncmp strncmp
625
+ #define SDL_wcsncmp wcsncmp
586
626
  #define SDL_strcasecmp strcasecmp
587
627
  #define SDL_strncasecmp strncasecmp
588
628
  #define SDL_sscanf sscanf
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -53,6 +53,7 @@ extern "C" {
53
53
  #define SDL_PREALLOC 0x00000001 /**< Surface uses preallocated memory */
54
54
  #define SDL_RLEACCEL 0x00000002 /**< Surface is RLE encoded */
55
55
  #define SDL_DONTFREE 0x00000004 /**< Surface is referenced internally */
56
+ #define SDL_SIMD_ALIGNED 0x00000008 /**< Surface uses aligned memory */
56
57
  /* @} *//* Surface flags */
57
58
 
58
59
  /**
@@ -79,7 +80,9 @@ typedef struct SDL_Surface
79
80
 
80
81
  /** information needed for surfaces requiring locks */
81
82
  int locked; /**< Read-only */
82
- void *lock_data; /**< Read-only */
83
+
84
+ /** list of BlitMap that hold a reference to this surface */
85
+ void *list_blitmap; /**< Private */
83
86
 
84
87
  /** clipping information */
85
88
  SDL_Rect clip_rect; /**< Read-only */
@@ -234,6 +237,13 @@ extern DECLSPEC int SDLCALL SDL_SaveBMP_RW
234
237
  extern DECLSPEC int SDLCALL SDL_SetSurfaceRLE(SDL_Surface * surface,
235
238
  int flag);
236
239
 
240
+ /**
241
+ * \brief Returns whether the surface is RLE enabled
242
+ *
243
+ * \return SDL_TRUE if the surface is RLE enabled, or SDL_FALSE if the surface is NULL or not RLE enabled
244
+ */
245
+ extern DECLSPEC SDL_bool SDLCALL SDL_HasSurfaceRLE(SDL_Surface * surface);
246
+
237
247
  /**
238
248
  * \brief Sets the color key (transparent pixel) in a blittable surface.
239
249
  *
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -89,7 +89,7 @@ extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriority(Sint64 threadID, int prio
89
89
  #endif /* __LINUX__ */
90
90
 
91
91
  /* Platform specific functions for iOS */
92
- #if defined(__IPHONEOS__) && __IPHONEOS__
92
+ #ifdef __IPHONEOS__
93
93
 
94
94
  #define SDL_iOSSetAnimationCallback(window, interval, callback, callbackParam) SDL_iPhoneSetAnimationCallback(window, interval, callback, callbackParam)
95
95
  extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
@@ -101,7 +101,7 @@ extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled);
101
101
 
102
102
 
103
103
  /* Platform specific functions for Android */
104
- #if defined(__ANDROID__) && __ANDROID__
104
+ #ifdef __ANDROID__
105
105
 
106
106
  /**
107
107
  \brief Get the JNI environment for the current thread
@@ -120,6 +120,33 @@ extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(void);
120
120
  */
121
121
  extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(void);
122
122
 
123
+ /**
124
+ \brief Return API level of the current device
125
+
126
+ API level 30: Android 11
127
+ API level 29: Android 10
128
+ API level 28: Android 9
129
+ API level 27: Android 8.1
130
+ API level 26: Android 8.0
131
+ API level 25: Android 7.1
132
+ API level 24: Android 7.0
133
+ API level 23: Android 6.0
134
+ API level 22: Android 5.1
135
+ API level 21: Android 5.0
136
+ API level 20: Android 4.4W
137
+ API level 19: Android 4.4
138
+ API level 18: Android 4.3
139
+ API level 17: Android 4.2
140
+ API level 16: Android 4.1
141
+ API level 15: Android 4.0.3
142
+ API level 14: Android 4.0
143
+ API level 13: Android 3.2
144
+ API level 12: Android 3.1
145
+ API level 11: Android 3.0
146
+ API level 10: Android 2.3.3
147
+ */
148
+ extern DECLSPEC int SDLCALL SDL_GetAndroidSDKVersion(void);
149
+
123
150
  /**
124
151
  \brief Return true if the application is running on Android TV
125
152
  */
@@ -172,10 +199,18 @@ extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(void);
172
199
  */
173
200
  extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(void);
174
201
 
202
+ /**
203
+ \brief Request permissions at runtime.
204
+
205
+ This blocks the calling thread until the permission is granted or
206
+ denied. Returns SDL_TRUE if the permission was granted.
207
+ */
208
+ extern DECLSPEC SDL_bool SDLCALL SDL_AndroidRequestPermission(const char *permission);
209
+
175
210
  #endif /* __ANDROID__ */
176
211
 
177
212
  /* Platform specific functions for WinRT */
178
- #if defined(__WINRT__) && __WINRT__
213
+ #ifdef __WINRT__
179
214
 
180
215
  /**
181
216
  * \brief WinRT / Windows Phone path types
@@ -268,6 +303,17 @@ extern DECLSPEC SDL_WinRT_DeviceFamily SDLCALL SDL_WinRTGetDeviceFamily();
268
303
  */
269
304
  extern DECLSPEC SDL_bool SDLCALL SDL_IsTablet(void);
270
305
 
306
+ /* Functions used by iOS application delegates to notify SDL about state changes */
307
+ extern DECLSPEC void SDLCALL SDL_OnApplicationWillTerminate(void);
308
+ extern DECLSPEC void SDLCALL SDL_OnApplicationDidReceiveMemoryWarning(void);
309
+ extern DECLSPEC void SDLCALL SDL_OnApplicationWillResignActive(void);
310
+ extern DECLSPEC void SDLCALL SDL_OnApplicationDidEnterBackground(void);
311
+ extern DECLSPEC void SDLCALL SDL_OnApplicationWillEnterForeground(void);
312
+ extern DECLSPEC void SDLCALL SDL_OnApplicationDidBecomeActive(void);
313
+ #ifdef __IPHONEOS__
314
+ extern DECLSPEC void SDLCALL SDL_OnApplicationDidChangeStatusBarOrientation(void);
315
+ #endif
316
+
271
317
  /* Ends C function definitions when using C++ */
272
318
  #ifdef __cplusplus
273
319
  }
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  Simple DirectMedia Layer
3
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
3
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4
4
 
5
5
  This software is provided 'as-is', without any express or implied
6
6
  warranty. In no event will the authors be held liable for any damages
@@ -34,21 +34,24 @@
34
34
  #include "SDL_version.h"
35
35
 
36
36
  /**
37
- * \file SDL_syswm.h
37
+ * \brief SDL_syswm.h
38
38
  *
39
39
  * Your application has access to a special type of event ::SDL_SYSWMEVENT,
40
40
  * which contains window-manager specific information and arrives whenever
41
41
  * an unhandled window event occurs. This event is ignored by default, but
42
42
  * you can enable it with SDL_EventState().
43
43
  */
44
- #ifdef SDL_PROTOTYPES_ONLY
45
44
  struct SDL_SysWMinfo;
46
- #else
45
+
46
+ #if !defined(SDL_PROTOTYPES_ONLY)
47
47
 
48
48
  #if defined(SDL_VIDEO_DRIVER_WINDOWS)
49
49
  #ifndef WIN32_LEAN_AND_MEAN
50
50
  #define WIN32_LEAN_AND_MEAN
51
51
  #endif
52
+ #ifndef NOMINMAX /* don't define min() and max(). */
53
+ #define NOMINMAX
54
+ #endif
52
55
  #include <windows.h>
53
56
  #endif
54
57
 
@@ -104,12 +107,20 @@ typedef void *EGLSurface;
104
107
  #include "SDL_egl.h"
105
108
  #endif
106
109
 
110
+ #if defined(SDL_VIDEO_DRIVER_OS2)
111
+ #define INCL_WIN
112
+ #include <os2.h>
113
+ #endif
114
+ #endif /* SDL_PROTOTYPES_ONLY */
115
+
116
+
107
117
  #include "begin_code.h"
108
118
  /* Set up for C function definitions, even when using C++ */
109
119
  #ifdef __cplusplus
110
120
  extern "C" {
111
121
  #endif
112
122
 
123
+ #if !defined(SDL_PROTOTYPES_ONLY)
113
124
  /**
114
125
  * These are the various supported windowing subsystems
115
126
  */
@@ -122,11 +133,12 @@ typedef enum
122
133
  SDL_SYSWM_COCOA,
123
134
  SDL_SYSWM_UIKIT,
124
135
  SDL_SYSWM_WAYLAND,
125
- SDL_SYSWM_MIR,
136
+ SDL_SYSWM_MIR, /* no longer available, left for API/ABI compatibility. Remove in 2.1! */
126
137
  SDL_SYSWM_WINRT,
127
138
  SDL_SYSWM_ANDROID,
128
139
  SDL_SYSWM_VIVANTE,
129
- SDL_SYSWM_OS2
140
+ SDL_SYSWM_OS2,
141
+ SDL_SYSWM_HAIKU
130
142
  } SDL_SYSWM_TYPE;
131
143
 
132
144
  /**
@@ -179,6 +191,16 @@ struct SDL_SysWMmsg
179
191
  int dummy;
180
192
  /* No Vivante window events yet */
181
193
  } vivante;
194
+ #endif
195
+ #if defined(SDL_VIDEO_DRIVER_OS2)
196
+ struct
197
+ {
198
+ BOOL fFrame; /**< TRUE if hwnd is a frame window */
199
+ HWND hwnd; /**< The window receiving the message */
200
+ ULONG msg; /**< The message identifier */
201
+ MPARAM mp1; /**< The first first message parameter */
202
+ MPARAM mp2; /**< The second first message parameter */
203
+ } os2;
182
204
  #endif
183
205
  /* Can't have an empty union */
184
206
  int dummy;
@@ -257,11 +279,11 @@ struct SDL_SysWMinfo
257
279
  struct wl_shell_surface *shell_surface; /**< Wayland shell_surface (window manager handle) */
258
280
  } wl;
259
281
  #endif
260
- #if defined(SDL_VIDEO_DRIVER_MIR)
282
+ #if defined(SDL_VIDEO_DRIVER_MIR) /* no longer available, left for API/ABI compatibility. Remove in 2.1! */
261
283
  struct
262
284
  {
263
- struct MirConnection *connection; /**< Mir display server connection */
264
- struct MirSurface *surface; /**< Mir surface */
285
+ void *connection; /**< Mir display server connection */
286
+ void *surface; /**< Mir surface */
265
287
  } mir;
266
288
  #endif
267
289
 
@@ -273,6 +295,14 @@ struct SDL_SysWMinfo
273
295
  } android;
274
296
  #endif
275
297
 
298
+ #if defined(SDL_VIDEO_DRIVER_OS2)
299
+ struct
300
+ {
301
+ HWND hwnd; /**< The window handle */
302
+ HWND hwndFrame; /**< The frame window handle */
303
+ } os2;
304
+ #endif
305
+
276
306
  #if defined(SDL_VIDEO_DRIVER_VIVANTE)
277
307
  struct
278
308
  {