Skip to content

Instantly share code, notes, and snippets.

View icculus's full-sized avatar

Ryan C. Gordon icculus

View GitHub Profile
@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) {
@icculus
icculus / testdynaudiostream.c
Last active April 3, 2023 19:31
Changing audio stream samplerate on the fly with SDL3
/*
Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely.