From 5ea6cdf51d39ed8289f7eb417c55dfef53f1c1cb Mon Sep 17 00:00:00 2001
From: Ozkan Sezer
Date: Tue, 24 May 2022 20:55:04 +0300
Subject: [PATCH 01/21] image.c: accept type 1 (paletted) TGA files.
(from QSS - in case we need some day.)
---
Quake/image.c | 47 ++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 42 insertions(+), 5 deletions(-)
diff --git a/Quake/image.c b/Quake/image.c
index caf99f4d..51e0427b 100644
--- a/Quake/image.c
+++ b/Quake/image.c
@@ -212,11 +212,19 @@ byte *Image_LoadTGA (FILE *fin, int *width, int *height)
targa_header.pixel_size = fgetc(fin);
targa_header.attributes = fgetc(fin);
- if (targa_header.image_type!=2 && targa_header.image_type!=10)
- Sys_Error ("Image_LoadTGA: %s is not a type 2 or type 10 targa", loadfilename);
+ if (targa_header.image_type==1)
+ {
+ if (targa_header.pixel_size != 8 || targa_header.colormap_size != 24 || targa_header.colormap_length > 256)
+ Sys_Error ("Image_LoadTGA: %s has an %ibit palette", loadfilename, targa_header.colormap_type);
+ }
+ else
+ {
+ if (targa_header.image_type!=2 && targa_header.image_type!=10)
+ Sys_Error ("Image_LoadTGA: %s is not a type 2 or type 10 targa (%i)", loadfilename, targa_header.image_type);
- if (targa_header.colormap_type !=0 || (targa_header.pixel_size!=32 && targa_header.pixel_size!=24))
- Sys_Error ("Image_LoadTGA: %s is not a 24bit or 32bit targa", loadfilename);
+ if (targa_header.colormap_type !=0 || (targa_header.pixel_size!=32 && targa_header.pixel_size!=24))
+ Sys_Error ("Image_LoadTGA: %s is not a 24bit or 32bit targa", loadfilename);
+ }
columns = targa_header.width;
rows = targa_header.height;
@@ -230,7 +238,36 @@ byte *Image_LoadTGA (FILE *fin, int *width, int *height)
buf = Buf_Alloc(fin);
- if (targa_header.image_type==2) // Uncompressed, RGB images
+ if (targa_header.image_type==1) // Uncompressed, paletted images
+ {
+ byte palette[256*4];
+ int i;
+ //palette data comes first
+ for (i = 0; i < targa_header.colormap_length; i++)
+ { //this palette data is bgr.
+ palette[i*3+2] = Buf_GetC(buf);
+ palette[i*3+1] = Buf_GetC(buf);
+ palette[i*3+0] = Buf_GetC(buf);
+ palette[i*3+3] = 255;
+ }
+ for (i = targa_header.colormap_length*4; i < sizeof(palette); i++)
+ palette[i] = 0;
+ for(row=rows-1; row>=0; row--)
+ {
+ realrow = upside_down ? row : rows - 1 - row;
+ pixbuf = targa_rgba + realrow*columns*4;
+
+ for(column=0; column=0; row--)
{
From 2a67d5bcb236212b0cd8ed7abae9e7089af34ff2 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer
Date: Tue, 24 May 2022 20:55:04 +0300
Subject: [PATCH 02/21] removed SDL version checks at runtime for compatibility
with new SDL2:
With the new SDL2 versioning scheme, SDL_VERSIONNUM macro overflows the
minor version into the thousands digit after 2.9.0, e.g. encodes 2.23.0
as 4300, and we used to reject that thinking it is SDL v3 or something.
---
Quake/main_sdl.c | 34 +---------------------------------
1 file changed, 1 insertion(+), 33 deletions(-)
diff --git a/Quake/main_sdl.c b/Quake/main_sdl.c
index 7ad1095f..f6e0432d 100644
--- a/Quake/main_sdl.c
+++ b/Quake/main_sdl.c
@@ -33,27 +33,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#endif
#include
-#if defined(USE_SDL2)
-
-/* need at least SDL_2.0.0 */
-#define SDL_MIN_X 2
-#define SDL_MIN_Y 0
-#define SDL_MIN_Z 0
-#define SDL_REQUIREDVERSION (SDL_VERSIONNUM(SDL_MIN_X,SDL_MIN_Y,SDL_MIN_Z))
-#define SDL_NEW_VERSION_REJECT (SDL_VERSIONNUM(3,0,0))
-
-#else
-
-/* need at least SDL_1.2.10 */
-#define SDL_MIN_X 1
-#define SDL_MIN_Y 2
-#define SDL_MIN_Z 10
-#define SDL_REQUIREDVERSION (SDL_VERSIONNUM(SDL_MIN_X,SDL_MIN_Y,SDL_MIN_Z))
-/* reject 1.3.0 and newer at runtime. */
-#define SDL_NEW_VERSION_REJECT (SDL_VERSIONNUM(1,3,0))
-
-#endif
-
static void Sys_AtExit (void)
{
SDL_Quit();
@@ -70,18 +49,8 @@ static void Sys_InitSDL (void)
#endif
Sys_Printf("Found SDL version %i.%i.%i\n",sdl_version->major,sdl_version->minor,sdl_version->patch);
- if (SDL_VERSIONNUM(sdl_version->major,sdl_version->minor,sdl_version->patch) < SDL_REQUIREDVERSION)
- { /*reject running under older SDL versions */
- Sys_Error("You need at least v%d.%d.%d of SDL to run this game.", SDL_MIN_X,SDL_MIN_Y,SDL_MIN_Z);
- }
- if (SDL_VERSIONNUM(sdl_version->major,sdl_version->minor,sdl_version->patch) >= SDL_NEW_VERSION_REJECT)
- { /*reject running under newer (1.3.x) SDL */
- Sys_Error("Your version of SDL library is incompatible with me.\n"
- "You need a library version in the line of %d.%d.%d\n", SDL_MIN_X,SDL_MIN_Y,SDL_MIN_Z);
- }
- if (SDL_Init(0) < 0)
- {
+ if (SDL_Init(0) < 0) {
Sys_Error("Couldn't init SDL: %s", SDL_GetError());
}
atexit(Sys_AtExit);
@@ -190,4 +159,3 @@ int main(int argc, char *argv[])
return 0;
}
-
From 0dd1c12dd9f405cd8d9ecf96f86425bbe268876d Mon Sep 17 00:00:00 2001
From: Ozkan Sezer
Date: Tue, 24 May 2022 20:55:04 +0300
Subject: [PATCH 03/21] bump version to 0.94.5, update documents.
---
Linux/sgml/Quakespasm.sgml | 8 +-
MacOSX/English.lproj/InfoPlist.strings | Bin 536 -> 536 bytes
MacOSX/Info.plist | 2 +-
Quake/quakedef.h | 2 +-
Quakespasm.html | 99 ++++++++++--------
Quakespasm.txt | 136 +++++++++++++------------
6 files changed, 135 insertions(+), 112 deletions(-)
diff --git a/Linux/sgml/Quakespasm.sgml b/Linux/sgml/Quakespasm.sgml
index 2490789d..7afad889 100644
--- a/Linux/sgml/Quakespasm.sgml
+++ b/Linux/sgml/Quakespasm.sgml
@@ -3,7 +3,7 @@
QuakeSpasm
-Page last edited: April 2022.
+Page last edited: May 2022.
About
@@ -140,6 +140,12 @@ QuakeSpasm 0.94.0 has initial support for playing the 2021 re-release content: C
Changes
+ Changes in 0.94.5
+
+- Compatibility with new SDL2 versioning scheme.
+
+
+
Changes in 0.94.4
- Fixed getting stuck with loading plaque upon attempting to load a bad save from the menu
diff --git a/MacOSX/English.lproj/InfoPlist.strings b/MacOSX/English.lproj/InfoPlist.strings
index ecd738e5a27a50fdd2ef6cfed1eb6d868e6875b5..c85d1b69b6b900c57506f32221b7789ab10414fb 100644
GIT binary patch
delta 20
ccmbQiGJ|Ep9Y)iM{o)h9I5C<|HfMYY08tnRy8r+H
delta 20
ccmbQiGJ|Ep9Y&Lh{o)h9I5C<`HfMYY08s`9xc~qF
diff --git a/MacOSX/Info.plist b/MacOSX/Info.plist
index af707a73..9e3925c4 100644
--- a/MacOSX/Info.plist
+++ b/MacOSX/Info.plist
@@ -17,7 +17,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 0.94.4
+ 0.94.5
CFBundleSignature
????
LSApplicationCategoryType
diff --git a/Quake/quakedef.h b/Quake/quakedef.h
index 4f6caef9..b03ed0f9 100644
--- a/Quake/quakedef.h
+++ b/Quake/quakedef.h
@@ -37,7 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define FITZQUAKE_VERSION 0.85 //johnfitz
#define QUAKESPASM_VERSION 0.94
-#define QUAKESPASM_VER_PATCH 4 // helper to print a string like 0.94.4
+#define QUAKESPASM_VER_PATCH 5 // helper to print a string like 0.94.4
#ifndef QUAKESPASM_VER_SUFFIX
#define QUAKESPASM_VER_SUFFIX // optional version suffix string literal like "-beta1"
#endif
diff --git a/Quakespasm.html b/Quakespasm.html
index 624be5fa..b56aa6bc 100644
--- a/Quakespasm.html
+++ b/Quakespasm.html
@@ -8,7 +8,7 @@
QuakeSpasm
-Page last edited: April 2022.
+Page last edited: May 2022.
@@ -36,28 +36,29 @@
@@ -225,7 +226,15 @@ Compile time options include
-
+
+- Compatibility with new SDL2 versioning scheme.
+
+
+5.2 Changes in 0.94.4
@@ -247,7 +256,7 @@ Compile time options include
Thanks to Andrei Drexler, 'atsb' and 'temx' for their several patches.
-5.2 Changes in 0.94.3
+5.3 Changes in 0.94.3
@@ -257,7 +266,7 @@ Compile time options include
Updated included SDL2 to latest version 2.0.18.
-5.3 Changes in 0.94.2
+5.4 Changes in 0.94.2
@@ -268,7 +277,7 @@ Compile time options include
2021 rerelease: Look for QuakeEX.kpf under userdir, too.
-5.4 Changes in 0.94.1
+5.5 Changes in 0.94.1
@@ -276,7 +285,7 @@ Compile time options include
Fix lightmap issues after vkQuake surface mark/cull optimizations merge (sf.net bug/50)
-5.5 Changes in 0.94.0
+5.6 Changes in 0.94.0
@@ -301,7 +310,7 @@ Compile time options include
Source repository moved to git.
-5.6 Changes in 0.93.2
+5.7 Changes in 0.93.2
@@ -314,7 +323,7 @@ Compile time options include
Update the third-party libraries. Other fixes/cleanups.
-5.7 Changes in 0.93.1
+5.8 Changes in 0.93.1
@@ -328,7 +337,7 @@ Compile time options include
Update the third-party libraries. Other fixes/cleanups.
-5.8 Changes in 0.93.0
+5.9 Changes in 0.93.0
@@ -371,7 +380,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Update the third-party libraries.
-5.9 Changes in 0.92.1
+5.10 Changes in 0.92.1
@@ -381,7 +390,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Updated some of the third-party libraries.
-5.10 Changes in 0.92.0
+5.11 Changes in 0.92.0
@@ -401,7 +410,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Updated some of the third-party libraries. Other fixes/clean-ups.
-5.11 Changes in 0.91.0
+5.12 Changes in 0.91.0
@@ -461,7 +470,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Raised MAX_SFX to 1024 (was 512).
-5.12 Changes in 0.90.1
+5.13 Changes in 0.90.1
@@ -521,7 +530,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Update 3rd-party libraries.
-5.13 Changes in 0.90.0
+5.14 Changes in 0.90.0
@@ -567,7 +576,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Other fixes and clean-ups.
-5.14 Changes in 0.85.9
+5.15 Changes in 0.85.9
@@ -591,7 +600,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Several other minor fixes/cleanups.
-5.15 Changes in 0.85.8
+5.16 Changes in 0.85.8
@@ -616,7 +625,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Miscellaneous source code cleanups.
-5.16 Changes in 0.85.7
+5.17 Changes in 0.85.7
@@ -634,7 +643,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Several other small changes mostly invisible to the end-user
-5.17 Changes in 0.85.6
+5.18 Changes in 0.85.6
@@ -645,7 +654,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Minor SDL video fixes.
-5.18 Changes in 0.85.5
+5.19 Changes in 0.85.5
@@ -664,7 +673,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Several code updates from uHexen2 project, several code cleanups.
-5.19 Changes in 0.85.4
+5.20 Changes in 0.85.4
@@ -682,7 +691,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
Other minor sound and cdaudio updates
-5.20 Changes in 0.85.3
+5.21 Changes in 0.85.3
@@ -705,7 +714,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
-5.21 Changes in 0.85.2
+5.22 Changes in 0.85.2
@@ -724,7 +733,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
-5.22 Changes in 0.85.1
+5.23 Changes in 0.85.1
diff --git a/Quakespasm.txt b/Quakespasm.txt
index ae48aa08..7445bbfc 100644
--- a/Quakespasm.txt
+++ b/Quakespasm.txt
@@ -19,38 +19,39 @@
4.4 Quake '2021 re-release'
5. Changes
- 5.1 Changes in 0.94.4
- 5.2 Changes in 0.94.3
- 5.3 Changes in 0.94.2
- 5.4 Changes in 0.94.1
- 5.5 Changes in 0.94.0
- 5.6 Changes in 0.93.2
- 5.7 Changes in 0.93.1
- 5.8 Changes in 0.93.0
- 5.9 Changes in 0.92.1
- 5.10 Changes in 0.92.0
- 5.11 Changes in 0.91.0
- 5.11.1 Bugfixes
- 5.11.2 Visual improvements
- 5.11.3 Interface improvements
- 5.11.4 Code cleanup / Other
- 5.11.5 Raised limits
- 5.12 Changes in 0.90.1
+ 5.1 Changes in 0.94.5
+ 5.2 Changes in 0.94.4
+ 5.3 Changes in 0.94.3
+ 5.4 Changes in 0.94.2
+ 5.5 Changes in 0.94.1
+ 5.6 Changes in 0.94.0
+ 5.7 Changes in 0.93.2
+ 5.8 Changes in 0.93.1
+ 5.9 Changes in 0.93.0
+ 5.10 Changes in 0.92.1
+ 5.11 Changes in 0.92.0
+ 5.12 Changes in 0.91.0
5.12.1 Bugfixes
- 5.12.2 Performance
- 5.12.3 Visual improvements
- 5.12.4 Interface improvements
- 5.12.5 Code cleanup
- 5.13 Changes in 0.90.0
- 5.14 Changes in 0.85.9
- 5.15 Changes in 0.85.8
- 5.16 Changes in 0.85.7
- 5.17 Changes in 0.85.6
- 5.18 Changes in 0.85.5
- 5.19 Changes in 0.85.4
- 5.20 Changes in 0.85.3
- 5.21 Changes in 0.85.2
- 5.22 Changes in 0.85.1
+ 5.12.2 Visual improvements
+ 5.12.3 Interface improvements
+ 5.12.4 Code cleanup / Other
+ 5.12.5 Raised limits
+ 5.13 Changes in 0.90.1
+ 5.13.1 Bugfixes
+ 5.13.2 Performance
+ 5.13.3 Visual improvements
+ 5.13.4 Interface improvements
+ 5.13.5 Code cleanup
+ 5.14 Changes in 0.90.0
+ 5.15 Changes in 0.85.9
+ 5.16 Changes in 0.85.8
+ 5.17 Changes in 0.85.7
+ 5.18 Changes in 0.85.6
+ 5.19 Changes in 0.85.5
+ 5.20 Changes in 0.85.4
+ 5.21 Changes in 0.85.3
+ 5.22 Changes in 0.85.2
+ 5.23 Changes in 0.85.1
6. Copyright
7. Contact
@@ -59,7 +60,8 @@
______________________________________________________________________
- Page last edited: April 2022.
+
+ Page last edited: May 2022.
1. About
@@ -264,7 +266,12 @@
5. Changes
- 5.1. Changes in 0.94.4
+ 5.1. Changes in 0.94.5
+
+ o Compatibility with new SDL2 versioning scheme.
+
+
+ 5.2. Changes in 0.94.4
o Fixed getting stuck with loading plaque upon attempting to load a
bad save from the menu
@@ -300,7 +307,7 @@
patches.
- 5.2. Changes in 0.94.3
+ 5.3. Changes in 0.94.3
o Handle sky textures with non-standard sizes and warn about them
(e.g. ad_tears)
@@ -312,7 +319,7 @@
o Updated included SDL2 to latest version 2.0.18.
- 5.3. Changes in 0.94.2
+ 5.4. Changes in 0.94.2
o 2021 rerelease: Support for playing the latest update.
@@ -323,13 +330,13 @@
o 2021 rerelease: Look for QuakeEX.kpf under userdir, too.
- 5.4. Changes in 0.94.1
+ 5.5. Changes in 0.94.1
o Fix lightmap issues after vkQuake surface mark/cull optimizations
merge (sf.net bug/50)
- 5.5. Changes in 0.94.0
+ 5.6. Changes in 0.94.0
o Initial support for playing the 'Quake 2021 re-release' content
(thanks to Andrei Drexler for bulk of the work, Guillaume Plourde
@@ -378,7 +385,7 @@
o Source repository moved to git.
- 5.6. Changes in 0.93.2
+ 5.7. Changes in 0.93.2
o Lightmaps are now dynamically allocated (from QSS), and
BLOCK_WIDTH/HEIGHT raised from 128 to 256.
@@ -398,7 +405,7 @@
o Update the third-party libraries. Other fixes/cleanups.
- 5.7. Changes in 0.93.1
+ 5.8. Changes in 0.93.1
o Fixed a fog regression which was introduced in 0.93.0.
@@ -416,7 +423,7 @@
o Update the third-party libraries. Other fixes/cleanups.
- 5.8. Changes in 0.93.0
+ 5.9. Changes in 0.93.0
o Raise default "joy_deadzone_trigger" cvar to 0.2.
@@ -501,7 +508,7 @@
o Update the third-party libraries.
- 5.9. Changes in 0.92.1
+ 5.10. Changes in 0.92.1
o Fixed large menu scale factors (was broken in 0.92.0).
@@ -510,7 +517,7 @@
o Updated some of the third-party libraries.
- 5.10. Changes in 0.92.0
+ 5.11. Changes in 0.92.0
o SDL2 Game Controller support.
@@ -547,9 +554,9 @@
o Updated some of the third-party libraries. Other fixes/clean-ups.
- 5.11. Changes in 0.91.0
+ 5.12. Changes in 0.91.0
- 5.11.1. Bugfixes
+ 5.12.1. Bugfixes
o Fix unwanted fog mode change upon video restart.
@@ -585,7 +592,7 @@
o Prevent a possible vulnerability in MSG_ReadString (old Q1/Q2 bug).
- 5.11.2. Visual improvements
+ 5.12.2. Visual improvements
o New cvars r_lavaalpha, r_slimealpha, r_telealpha for fine-tuning
specific liquid opacities (from DirectQ/RMQEngine, non-archived,
@@ -596,18 +603,18 @@
o GLSL gamma is now supported on older hardware without NPOT
extension.
- 5.11.3. Interface improvements
+ 5.12.3. Interface improvements
o New r_pos command to show player position.
o NaN detection in traceline with "developer 1" set now warns instead
of errors.
- 5.11.4. Code cleanup / Other
+ 5.12.4. Code cleanup / Other
o Update third-party libraries.
- 5.11.5. Raised limits
+ 5.12.5. Raised limits
o Default max_edicts 8192 (was 2048) and no longer saved to
config.cfg.
@@ -619,9 +626,9 @@
o Raised MAX_SFX to 1024 (was 512).
- 5.12. Changes in 0.90.1
+ 5.13. Changes in 0.90.1
- 5.12.1. Bugfixes
+ 5.13.1. Bugfixes
o Fix dynamic light artifact where changing lightmap are rendered one
frame late (bug introduced in 0.90.0).
@@ -644,13 +651,13 @@
o Fix crash on out-of-bounds skin number.
- 5.12.2. Performance
+ 5.13.2. Performance
o Use multithreaded OpenGL on OS X for better performance.
o New, faster mdl renderer using GLSL. Disable with "-noglslalias".
- 5.12.3. Visual improvements
+ 5.13.3. Visual improvements
o New gamma correction implementation using GLSL. Fixes all known
gamma issues (affecting the full display, persisting after
@@ -664,7 +671,7 @@
o r_noshadow_list cvar added (from MarkV.)
- 5.12.4. Interface improvements
+ 5.13.4. Interface improvements
o Support pausing demo playback with the "pause" command.
@@ -681,14 +688,14 @@
"trying to load ent", "bad chunk length", "meshing",
"PR_AlocStringSlots: realloc'ing"
- 5.12.5. Code cleanup
+ 5.13.5. Code cleanup
o Clean up IDE project files to build on fresh systems.
o Update 3rd-party libraries.
- 5.13. Changes in 0.90.0
+ 5.14. Changes in 0.90.0
o Fix issues on Windows systems with DPI scaling.
@@ -796,7 +803,7 @@
o Other fixes and clean-ups.
- 5.14. Changes in 0.85.9
+ 5.15. Changes in 0.85.9
o Fixes for several undefined behaviors in C code (gcc-4.8 support.)
@@ -843,7 +850,7 @@
o Several other minor fixes/cleanups.
- 5.15. Changes in 0.85.8
+ 5.16. Changes in 0.85.8
o Made Quake shareware 1.00 and 1.01 versions to be recognized
properly.
@@ -890,7 +897,7 @@
o Miscellaneous source code cleanups.
- 5.16. Changes in 0.85.7
+ 5.17. Changes in 0.85.7
o Added support for cross-level demo playback
@@ -916,7 +923,7 @@
o Several other small changes mostly invisible to the end-user
- 5.17. Changes in 0.85.6
+ 5.18. Changes in 0.85.6
o More work for string buffer safety
@@ -929,7 +936,7 @@
o Minor SDL video fixes.
- 5.18. Changes in 0.85.5
+ 5.19. Changes in 0.85.5
o SDL input driver updated adding native keymap and dead key support
to the console
@@ -960,7 +967,7 @@
o Several code updates from uHexen2 project, several code cleanups.
- 5.19. Changes in 0.85.4
+ 5.20. Changes in 0.85.4
o Implement music (OGG, MP3, WAV) playback
@@ -988,7 +995,7 @@
o Other minor sound and cdaudio updates
- 5.20. Changes in 0.85.3
+ 5.21. Changes in 0.85.3
o Fix the "-dedicated" option (thanks Oz) and add platform specific
networking code (default) rather than SDL_net
@@ -1025,7 +1032,7 @@
some other CD tweaks.
- 5.21. Changes in 0.85.2
+ 5.22. Changes in 0.85.2
o Replace the old "Screen size" slider with a "Scale" slider
@@ -1053,7 +1060,7 @@
o Add OSX Makefile (tested?)
- 5.22. Changes in 0.85.1
+ 5.23. Changes in 0.85.1
o 64 bit CPU support
@@ -1126,3 +1133,4 @@
http://www.celephais.net/board/view_thread.php?id=60452
o Inside3D forums: http://forums.insideqc.com
+
From 74f1621e0f37b1ea4dfa02f2832e18ef273f595f Mon Sep 17 00:00:00 2001
From: Ozkan Sezer
Date: Thu, 26 May 2022 11:55:00 +0300
Subject: [PATCH 04/21] updated SDL2-2.0.22 builds with several backports from
SDL2 main branch.
---
.../Versions/A/Headers/SDL_assert.h | 4 +++-
.../Versions/A/Headers/SDL_endian.h | 22 ++++++++++++++++++
.../Versions/A/Headers/SDL_rect.h | 8 +++----
.../Versions/A/Headers/SDL_revision.h | 2 +-
.../Versions/A/Headers/SDL_stdinc.h | 2 +-
.../Versions/A/Headers/SDL_system.h | 2 +-
.../Versions/A/Headers/SDL_thread.h | 2 +-
MacOSX/SDL2.framework/Versions/A/SDL2 | Bin 4731184 -> 4731408 bytes
Windows/SDL2/include/SDL_assert.h | 4 +++-
Windows/SDL2/include/SDL_endian.h | 22 ++++++++++++++++++
Windows/SDL2/include/SDL_rect.h | 8 +++----
Windows/SDL2/include/SDL_revision.h | 2 +-
Windows/SDL2/include/SDL_stdinc.h | 2 +-
Windows/SDL2/include/SDL_system.h | 2 +-
Windows/SDL2/include/SDL_thread.h | 2 +-
Windows/SDL2/lib/SDL2.dll | Bin 2041856 -> 1138176 bytes
Windows/SDL2/lib64/SDL2.dll | Bin 2255872 -> 1342464 bytes
17 files changed, 66 insertions(+), 18 deletions(-)
diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_assert.h b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_assert.h
index defadf13..427c4c63 100644
--- a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_assert.h
+++ b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_assert.h
@@ -22,7 +22,7 @@
#ifndef SDL_assert_h_
#define SDL_assert_h_
-#include "SDL_config.h"
+#include "SDL_stdinc.h"
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
@@ -51,6 +51,8 @@ assert can have unique static variables associated with it.
/* Don't include intrin.h here because it contains C++ code */
extern void __cdecl __debugbreak(void);
#define SDL_TriggerBreakpoint() __debugbreak()
+#elif _SDL_HAS_BUILTIN(__builtin_debugtrap)
+ #define SDL_TriggerBreakpoint() __builtin_debugtrap()
#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) )
#define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" )
#elif ( defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__)) ) /* this might work on other ARM targets, but this is a known quantity... */
diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_endian.h b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_endian.h
index 2866f4be..e1c6b5ef 100644
--- a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_endian.h
+++ b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_endian.h
@@ -87,6 +87,28 @@ _m_prefetch(void *__P)
#endif /* __linux__ */
#endif /* !SDL_BYTEORDER */
+#ifndef SDL_FLOATWORDORDER /* Not defined in SDL_config.h? */
+/* predefs from newer gcc versions: */
+#if defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__FLOAT_WORD_ORDER__)
+#if (__FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN
+#elif (__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__)
+#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN
+#else
+#error Unsupported endianness
+#endif /**/
+#elif defined(__MAVERICK__)
+/* For Maverick, float words are always little-endian. */
+#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN
+#elif (defined(__arm__) || defined(__thumb__)) && !defined(__VFP_FP__) && !defined(__ARM_EABI__)
+/* For FPA, float words are always big-endian. */
+#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN
+#else
+/* By default, assume that floats words follow the memory system mode. */
+#define SDL_FLOATWORDORDER SDL_BYTEORDER
+#endif /* __FLOAT_WORD_ORDER__ */
+#endif /* !SDL_FLOATWORDORDER */
+
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_rect.h b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_rect.h
index b678c7a3..6c641c58 100644
--- a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_rect.h
+++ b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_rect.h
@@ -252,10 +252,10 @@ SDL_FORCE_INLINE SDL_bool SDL_FRectEmpty(const SDL_FRect *r)
SDL_FORCE_INLINE SDL_bool SDL_FRectEqualsEpsilon(const SDL_FRect *a, const SDL_FRect *b, const float epsilon)
{
return (a && b && ((a == b) ||
- ((SDL_fabs(a->x - b->x) <= epsilon) &&
- (SDL_fabs(a->y - b->y) <= epsilon) &&
- (SDL_fabs(a->w - b->w) <= epsilon) &&
- (SDL_fabs(a->h - b->h) <= epsilon))))
+ ((SDL_fabsf(a->x - b->x) <= epsilon) &&
+ (SDL_fabsf(a->y - b->y) <= epsilon) &&
+ (SDL_fabsf(a->w - b->w) <= epsilon) &&
+ (SDL_fabsf(a->h - b->h) <= epsilon))))
? SDL_TRUE : SDL_FALSE;
}
diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_revision.h b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_revision.h
index db133803..10bdf64f 100644
--- a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_revision.h
+++ b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_revision.h
@@ -1,2 +1,2 @@
-#define SDL_REVISION "https://github.com/libsdl-org/SDL.git@981e1e3c4489add5bf6d4df5415af3cf1ef2773d"
+#define SDL_REVISION "@56c8381b400ec81732095e429649ce5e74f8cb28"
#define SDL_REVISION_NUMBER 0
diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_stdinc.h b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_stdinc.h
index 449e6445..741094c8 100644
--- a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_stdinc.h
+++ b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_stdinc.h
@@ -462,7 +462,7 @@ extern DECLSPEC int SDLCALL SDL_GetNumAllocations(void);
extern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite);
-extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (*compare) (const void *, const void *));
+extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (SDLCALL *compare) (const void *, const void *));
extern DECLSPEC int SDLCALL SDL_abs(int x);
diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_system.h b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_system.h
index 41563add..c540e474 100644
--- a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_system.h
+++ b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_system.h
@@ -195,7 +195,7 @@ extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID,
*
* \sa SDL_iPhoneSetEventPump
*/
-extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
+extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (SDLCALL *callback)(void*), void *callbackParam);
#define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled)
diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_thread.h b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_thread.h
index 35e680dd..1e04a4f8 100644
--- a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_thread.h
+++ b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_thread.h
@@ -129,7 +129,7 @@ SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data,
pfnSDL_CurrentEndThread pfnEndThread);
extern DECLSPEC SDL_Thread *SDLCALL
-SDL_CreateThreadWithStackSize(int (SDLCALL * fn) (void *),
+SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn,
const char *name, const size_t stacksize, void *data,
pfnSDL_CurrentBeginThread pfnBeginThread,
pfnSDL_CurrentEndThread pfnEndThread);
diff --git a/MacOSX/SDL2.framework/Versions/A/SDL2 b/MacOSX/SDL2.framework/Versions/A/SDL2
index 1e741a8f5a06186d9ca839ada1ed1a372640e016..096844500ebd15ef58222ab76ab87261f7f48702 100755
GIT binary patch
delta 1117155
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
YU`0qI>?8K_gqVkLZy4)^ER`TF`4;Fj|xr9+G$c
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
PjsKVOfh0-Zin6L7@I{&H)Yi1bBPgX(bCwO_j
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