Skip to content

Instantly share code, notes, and snippets.

View icculus's full-sized avatar

Ryan C. Gordon icculus

View GitHub Profile
@icculus
icculus / sdl3-threadsafety-docs-todo.txt
Last active October 22, 2024 17:48
SDL3 functions that don't currently have `\threadsafety` tags...
SDL_AcquireGPUCommandBuffer
SDL_AcquireGPUSwapchainTexture
SDL_AddSurfaceAlternateImage
SDL_AppInit
SDL_AttachVirtualJoystick
SDL_BeginGPUComputePass
SDL_BeginGPUCopyPass
SDL_BeginGPURenderPass
SDL_BindGPUComputePipeline
SDL_BindGPUComputeSamplers
@icculus
icculus / coreaudio-replug-problem.m
Created August 5, 2024 02:50
Standalone reproduction case for CoreAudio hotplugging issue
// This is only intended for macOS; I cut out the iOS-specific pieces when pulling this code out of SDL for a reproduction case!
// clang -Wall -O0 -ggdb3 -fobjc-arc -o coreaudio-replug-problem coreaudio-replug-problem.m -framework AudioToolbox
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <math.h>
#include <pthread.h>
#include <signal.h>
@icculus
icculus / SDL-whisthq.diff
Created August 1, 2024 04:27
Patch between SDL 2.0.22 and WhistHQ's fork.
diff -ruBbN '--exclude=.git' SDL-2.0.22/android-project/build.gradle SDL-whisthq/android-project/build.gradle
--- SDL-2.0.22/android-project/build.gradle 2024-08-01 00:22:36.006294486 -0400
+++ SDL-whisthq/android-project/build.gradle 2024-08-01 00:21:19.933039042 -0400
@@ -6,7 +6,7 @@
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.0.3'
+ classpath 'com.android.tools.build:gradle:7.3.0'
CC=cc CFLAGS="-O0 -g" ../configure
checking build system type... x86_64-pc-solaris2.10
checking host system type... x86_64-pc-solaris2.10
checking how to print strings... printf
checking for gcc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
gmake V=1
/bin/bash ../build-scripts/updaterev.sh --vendor ""
/bin/bash ../build-scripts/mkinstalldirs build
umask 22
mkdir build
touch build/.created
/bin/bash ./libtool --tag=CC --mode=compile cc -O0 -g -DUSING_GENERATED_CONFIG_H -Iinclude -I/projects/SDL/include -idirafter /projects/SDL/src/video/khronos -DSDL_BUILD_MAJOR_VERSION=2 -DSDL_BUILD_MINOR_VERSION=31 -DSDL_BUILD_MICRO_VERSION=0 -fno-strict-aliasing -I/usr/include -DNO_SHARED_MEMORY -c /projects/SDL/src/SDL.c -o build/SDL.lo
libtool: compile: cc -O0 -g -DUSING_GENERATED_CONFIG_H -Iinclude -I/projects/SDL/include -idirafter /projects/SDL/src/video/khronos -DSDL_BUILD_MAJOR_VERSION=2 -DSDL_BUILD_MINOR_VERSION=31 -DSDL_BUILD_MICRO_VERSION=0 -fno-strict-aliasing -I/usr/include -DNO_SHARED_MEMORY -c /projects/SDL/src/SDL.c -KPIC -DPIC -o build/.libs/SDL.o
cc: Warning: Option -dirafter passed to ld, if ld is invoked, ignored otherwise
@icculus
icculus / d3-mission-sort.diff
Created May 2, 2024 15:00
From Descent 3 Steam 2020: Sort mission menu to have retail game things first.
commit 8855673c539fad6949244e3914319ebc29e6885e
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Sat Jun 15 00:07:18 2019 -0400
Sort mission menu to have retail game things first.
Pilot Training, Descent 3: Retribution (the main retail game) and
Mercenary (the mission pack) come first. Third party levels come after.
diff --git a/Main/menu.cpp b/Main/menu.cpp
@icculus
icculus / d3-asan.diff
Created May 2, 2024 14:48
AddressSanitizer and valgrind fixes from Ryan's 2020 Descent 3 build...
commit ee39d8b93ac9c70f7ef11ada3f684d26c9135bd4
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Sun Jun 9 00:18:36 2019 -0400
Some initial fixes from AddressSanitizer.
diff --git a/Main/ddio_lnx/lnxfile.cpp b/Main/ddio_lnx/lnxfile.cpp
index 2d9ecb0..de35fe8 100644
--- a/Main/ddio_lnx/lnxfile.cpp
+++ b/Main/ddio_lnx/lnxfile.cpp
@icculus
icculus / sdl-wikiheaders-coverage-gaps.txt
Last active September 9, 2024 06:49
Output of wikiheaders.pl --report-coverage-gaps with red herrings like SDL_oldnames.h, SDL_test*, and SDL_opengl*, etc, trimmed out.
(SDL_gpu.h is in-progress elsewhere, but is not yet complete; I've removed it from this file for now.)
SDL_stdinc.h:78: # define SDL_SIZE_MAX SIZE_MAX
SDL_stdinc.h:80: # define SDL_SIZE_MAX ((size_t) -1)
SDL_stdinc.h:89: #define SDL_HAS_BUILTIN(x) __has_builtin(x)
SDL_stdinc.h:91: #define SDL_HAS_BUILTIN(x) 0
SDL_stdinc.h:322: #define SDL_PRIs64 "I64d"
SDL_stdinc.h:324: #define SDL_PRIs64 PRIs64
SDL_stdinc.h:326: #define SDL_PRIs64 "ld"
SDL_stdinc.h:328: #define SDL_PRIs64 "lld"
commit e8744109411830081d1f4a6feaa8bbbfb2471d11
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Sun Jun 9 00:24:25 2019 -0400
Huge pile of changes from long to int, for 64-bit support.
This is a hit-and-miss sort of thing, so there might be more to do, but this
(probably) won't make anything worse, as Descent 3 already expected long and
int to be the same size.
@icculus
icculus / sdl3-audiostream-format-changes.diff
Created August 30, 2023 17:26
Attempt to generalize SDL3 audio stream format management
diff --git a/src/audio/SDL_audiocvt.c b/src/audio/SDL_audiocvt.c
index 5b3feb044..aac258b97 100644
--- a/src/audio/SDL_audiocvt.c
+++ b/src/audio/SDL_audiocvt.c
@@ -43,8 +43,9 @@ static Sint64 GetResampleRate(const int src_rate, const int dst_rate)
SDL_assert(src_rate > 0);
SDL_assert(dst_rate > 0);
- if (src_rate == dst_rate)
+ if (src_rate == dst_rate) {