mirror of https://github.com/encounter/SDL.git
Merge remote-tracking branch 'fork/VK_EXT_metal_surface' into merged
# Conflicts: # src/dynapi/SDL_dynapi.h # src/thread/SDL_thread_c.h
This commit is contained in:
commit
dc054c8e45
|
@ -0,0 +1,86 @@
|
|||
---
|
||||
AlignConsecutiveMacros: Consecutive
|
||||
AlignConsecutiveAssignments: None
|
||||
AlignConsecutiveBitFields: None
|
||||
AlignConsecutiveDeclarations: None
|
||||
AlignEscapedNewlines: Right
|
||||
AlignOperands: Align
|
||||
AlignTrailingComments: true
|
||||
|
||||
AllowAllArgumentsOnNextLine: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: true
|
||||
AllowShortEnumsOnASingleLine: true
|
||||
AllowShortBlocksOnASingleLine: Never
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: All
|
||||
AllowShortIfStatementsOnASingleLine: AllIfsAndElse
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
|
||||
AlwaysBreakAfterDefinitionReturnType: All
|
||||
AlwaysBreakAfterReturnType: AllDefinitions
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
AlwaysBreakTemplateDeclarations: MultiLine
|
||||
|
||||
# Custom brace breaking
|
||||
BreakBeforeBraces: Custom
|
||||
BraceWrapping:
|
||||
AfterCaseLabel: true
|
||||
AfterClass: true
|
||||
AfterControlStatement: Never
|
||||
AfterEnum: true
|
||||
AfterFunction: true
|
||||
AfterNamespace: true
|
||||
AfterObjCDeclaration: true
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
AfterExternBlock: false
|
||||
BeforeElse: false
|
||||
BeforeWhile: true
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: true
|
||||
SplitEmptyRecord: true
|
||||
|
||||
# Make the closing brace of container literals go to a new line
|
||||
Cpp11BracedListStyle: false
|
||||
|
||||
# Never format includes
|
||||
IncludeBlocks: Preserve
|
||||
SortIncludes: Never
|
||||
|
||||
# No length limit, in case it breaks macros, you can
|
||||
# disable it with /* clang-format off/on */ comments
|
||||
ColumnLimit: 0
|
||||
|
||||
IndentWidth: 4
|
||||
ContinuationIndentWidth: 4
|
||||
IndentCaseLabels: false
|
||||
IndentCaseBlocks: false
|
||||
IndentGotoLabels: true
|
||||
IndentPPDirectives: None
|
||||
IndentExternBlock: NoIndent
|
||||
|
||||
SpaceAfterCStyleCast: true
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInConditionalStatement: false
|
||||
SpacesInContainerLiterals: true
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
SpaceBeforeCaseColon: false
|
||||
SpaceBeforeParens: ControlStatements
|
||||
SpaceAroundPointerQualifiers: Default
|
||||
SpaceInEmptyBlock: false
|
||||
SpaceInEmptyParentheses: false
|
||||
|
||||
UseCRLF: false
|
||||
UseTab: Never
|
||||
|
||||
ForEachMacros:
|
||||
[
|
||||
"spa_list_for_each",
|
||||
"spa_list_for_each_safe",
|
||||
"wl_list_for_each",
|
||||
"wl_array_for_each",
|
||||
"udev_list_entry_foreach",
|
||||
]
|
||||
|
||||
---
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
# For format see editorconfig.org
|
||||
# Copyright 2022 Collabora Ltd.
|
||||
# SPDX-License-Identifier: Zlib
|
||||
|
||||
root = true
|
||||
|
||||
[*.{c,cg,cpp,gradle,h,java,m,metal,pl,py,S,sh,txt}]
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
|
||||
[*.{html,js,json,m4,yml,yaml,vcxproj,vcxproj.filters}]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
[*.xml]
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
|
||||
[{CMakeLists.txt,sdl2-config*.cmake.in,cmake/*.cmake}]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
[{cmake_uninstall.cmake.in,test/CMakeLists.txt}]
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
|
||||
[configure.ac]
|
||||
# Inconsistently 2-, 4- or occasionally 3-space indented, but mostly 4,
|
||||
# so let's use 4 for new code
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
|
||||
[{Makefile.*,*.mk,*.sln,*.pbxproj,*.plist}]
|
||||
indent_size = 8
|
||||
indent_style = tab
|
||||
tab_width = 8
|
||||
|
||||
[Makefile.os2]
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
|
||||
[test/Makefile.os2]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
[{src/core/os2/geniconv/makefile,src/core/os2/geniconv/os2cp.c}]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
[src/joystick/controller_type.h]
|
||||
indent_style = tab
|
||||
|
||||
[src/joystick/hidapi/steam/*.h]
|
||||
indent_style = tab
|
||||
|
||||
[src/libm/*.c]
|
||||
indent_style = tab
|
||||
|
||||
[src/test/SDL_test_{crc32,md5,random}.c]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
[src/video/yuv2rgb/*.{c,h}]
|
||||
indent_style = tab
|
||||
|
||||
[src/wayland-protocols/*.xml]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
|
||||
[*.{markdown,md}]
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
# Markdown syntax treats tabs as 4 spaces
|
||||
tab_width = 4
|
||||
|
||||
[{*.bat,*.rc}]
|
||||
end_of_line = crlf
|
|
@ -11,6 +11,6 @@ jobs:
|
|||
with:
|
||||
version: 2.0.27
|
||||
- name: Configure CMake
|
||||
run: emcmake cmake -B build
|
||||
run: emcmake cmake -B build -DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
- name: Build
|
||||
run: cmake --build build/
|
||||
|
|
|
@ -17,7 +17,8 @@ jobs:
|
|||
platform:
|
||||
- { name: Windows (mingw32), os: windows-latest, shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686 }
|
||||
- { name: Windows (mingw64), os: windows-latest, shell: 'msys2 {0}', msystem: mingw64, msys-env: mingw-w64-x86_64 }
|
||||
- { name: Linux, os: ubuntu-20.04, shell: sh, flags: -GNinja }
|
||||
- { name: Linux (CMake), os: ubuntu-20.04, shell: sh, flags: -GNinja }
|
||||
- { name: Linux (autotools), os: ubuntu-20.04, shell: sh, autotools: 'true' }
|
||||
- { name: MacOS, os: macos-latest, shell: sh }
|
||||
|
||||
steps:
|
||||
|
@ -36,7 +37,10 @@ jobs:
|
|||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install wayland-protocols \
|
||||
sudo apt-get install \
|
||||
autoconf \
|
||||
gnome-desktop-testing \
|
||||
wayland-protocols \
|
||||
pkg-config \
|
||||
ninja-build \
|
||||
libasound2-dev \
|
||||
|
@ -73,11 +77,105 @@ jobs:
|
|||
git clone --depth 1 https://gitlab.gnome.org/jadahl/libdecor.git --branch 0.1.0
|
||||
cd libdecor
|
||||
meson build --buildtype release -Ddemo=false -Ddbus=disabled
|
||||
ninja -C build
|
||||
ninja -v -C build
|
||||
sudo meson install -C build
|
||||
- uses: actions/checkout@v2
|
||||
- name: Check that versioning is consistent
|
||||
# We only need to run this once: arbitrarily use the Linux/CMake build
|
||||
if: "runner.os == 'Linux' && ! matrix.platform.autotools"
|
||||
run: ./test/versioning.sh
|
||||
- name: Configure CMake
|
||||
run: cmake -B build -DSDL_TEST=ON ${{ matrix.platform.flags }}
|
||||
if: "! matrix.platform.autotools"
|
||||
run: cmake -B build -DSDL_TEST=ON -DCMAKE_VERBOSE_MAKEFILE=ON -DSDL_INSTALL_TESTS=ON ${{ matrix.platform.flags }}
|
||||
- name: Build
|
||||
if: "! matrix.platform.autotools"
|
||||
run: cmake --build build/ --config Release
|
||||
|
||||
- name: Run build-time tests
|
||||
if: "matrix.platform.shell == 'sh' && ! matrix.platform.autotools"
|
||||
run: |
|
||||
set -eu
|
||||
export SDL_TESTS_QUICK=1
|
||||
ctest -VV --test-dir build/
|
||||
- name: Install
|
||||
if: "matrix.platform.shell == 'sh' && ! matrix.platform.autotools"
|
||||
run: |
|
||||
set -eu
|
||||
rm -fr DESTDIR-cmake
|
||||
DESTDIR=$(pwd)/DESTDIR-cmake cmake --install build/ --config Release
|
||||
( cd DESTDIR-cmake; find ) | LC_ALL=C sort -u
|
||||
- name: Configure Autotools
|
||||
if: matrix.platform.autotools
|
||||
run: |
|
||||
set -eu
|
||||
rm -fr build-autotools
|
||||
mkdir build-autotools
|
||||
./autogen.sh
|
||||
( cd build-autotools && ../configure )
|
||||
curdir="$(pwd)"
|
||||
multiarch="$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
|
||||
(
|
||||
mkdir -p build-autotools/test
|
||||
cd build-autotools/test
|
||||
../../test/configure \
|
||||
--x-includes=/usr/include \
|
||||
--x-libraries="/usr/lib/${multiarch}" \
|
||||
SDL_CFLAGS="-I${curdir}/include" \
|
||||
SDL_LIBS="-L${curdir}/build-autotools/build/.libs -lSDL2" \
|
||||
ac_cv_lib_SDL2_ttf_TTF_Init=no \
|
||||
${NULL+}
|
||||
)
|
||||
- name: Build with Autotools
|
||||
if: matrix.platform.autotools
|
||||
run: |
|
||||
set -eu
|
||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||
make -j"${parallel}" -C build-autotools V=1
|
||||
make -j"${parallel}" -C build-autotools/test V=1
|
||||
- name: Run build-time tests with Autotools
|
||||
if: matrix.platform.autotools
|
||||
run: |
|
||||
set -eu
|
||||
curdir="$(pwd)"
|
||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||
export SDL_TESTS_QUICK=1
|
||||
make -j"${parallel}" -C build-autotools/test check LD_LIBRARY_PATH="${curdir}/build-autotools/build/.libs"
|
||||
- name: Install with Autotools
|
||||
if: matrix.platform.autotools
|
||||
run: |
|
||||
set -eu
|
||||
curdir="$(pwd)"
|
||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||
rm -fr DESTDIR-autotools
|
||||
mkdir DESTDIR-autotools
|
||||
make -j"${parallel}" -C build-autotools install DESTDIR="${curdir}/DESTDIR-autotools" V=1
|
||||
make -j"${parallel}" -C build-autotools/test install DESTDIR="${curdir}/DESTDIR-autotools" V=1
|
||||
( cd DESTDIR-autotools; find ) | LC_ALL=C sort -u
|
||||
- name: Distcheck
|
||||
if: matrix.platform.autotools
|
||||
run: |
|
||||
set -eu
|
||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||
make -j"${parallel}" -C build-autotools dist V=1
|
||||
# Similar to Automake `make distcheck`: check that the tarball
|
||||
# release is sufficient to do a new build
|
||||
mkdir distcheck
|
||||
tar -C distcheck -zxf build-autotools/SDL2-*.tar.gz
|
||||
( cd distcheck/SDL2-* && ./configure )
|
||||
make -j"${parallel}" -C distcheck/SDL2-*
|
||||
- name: Run installed-tests from Autotools
|
||||
if: "runner.os == 'Linux' && matrix.platform.autotools"
|
||||
run: |
|
||||
set -eu
|
||||
parallel="$(getconf _NPROCESSORS_ONLN)"
|
||||
sudo make -j"${parallel}" -C build-autotools install
|
||||
sudo make -j"${parallel}" -C build-autotools/test install
|
||||
export SDL_TESTS_QUICK=1
|
||||
# We need to set LD_LIBRARY_PATH because it isn't in the default
|
||||
# linker search path. We don't need to set XDG_DATA_DIRS for
|
||||
# ginsttest-runner, because /usr/local/share *is* in the default
|
||||
# search path for that.
|
||||
env --chdir=/ \
|
||||
LD_LIBRARY_PATH=/usr/local/lib \
|
||||
SDL_AUDIODRIVER=dummy \
|
||||
SDL_VIDEODRIVER=dummy \
|
||||
ginsttest-runner --tap SDL2
|
||||
|
|
|
@ -13,8 +13,11 @@ jobs:
|
|||
platform:
|
||||
- { name: Windows (x64), flags: -A x64, project: VisualC/SDL.sln, projectflags: '/p:Platform=x64' }
|
||||
- { name: Windows (x86), flags: -A Win32, project: VisualC/SDL.sln, projectflags: '/p:Platform=Win32' }
|
||||
- { name: Windows static VCRT (x64), flags: -A x64 -DSDL_FORCE_STATIC_VCRT=ON }
|
||||
- { name: Windows static VCRT (x86), flags: -A Win32 -DSDL_FORCE_STATIC_VCRT=ON }
|
||||
- { name: Windows (clang-cl x64), flags: -T ClangCL -A x64 }
|
||||
- { name: Windows (clang-cl x86), flags: -T ClangCL -A Win32 }
|
||||
- { name: Windows (ARM), flags: -A ARM }
|
||||
- { name: Windows (ARM64), flags: -A ARM64 }
|
||||
- { name: UWP (x64), flags: -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0" -DSDL_TEST=OFF, project: VisualC-WinRT/SDL-UWP.sln, projectflags: '/p:Platform=x64 /p:WindowsTargetPlatformVersion=10.0.17763.0' }
|
||||
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
name: Build (OS/2)
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
os2:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: open-watcom/setup-watcom@v0
|
||||
- name: Build SDL2
|
||||
run: |
|
||||
wmake -f Makefile.os2
|
||||
- name: Build tests
|
||||
run: |
|
||||
cd test && wmake -f Makefile.os2
|
||||
cd ..
|
||||
- name: distclean
|
||||
run: |
|
||||
wmake -f Makefile.os2 distclean
|
||||
cd test && wmake -f Makefile.os2 distclean
|
||||
cd ..
|
|
@ -12,7 +12,7 @@ jobs:
|
|||
- name: Configure
|
||||
run: ./configure --host=arm-unknown-riscos --disable-gcc-atomics
|
||||
- name: Build
|
||||
run: make -j`nproc`
|
||||
run: make -j`nproc` V=1
|
||||
|
||||
cmake:
|
||||
name: CMake
|
||||
|
@ -23,6 +23,6 @@ jobs:
|
|||
run: apt-get update && apt-get install -y cmake ninja-build
|
||||
- uses: actions/checkout@v2
|
||||
- name: Configure CMake
|
||||
run: cmake -S. -Bbuild -G Ninja -DCMAKE_TOOLCHAIN_FILE=/home/riscos/env/toolchain-riscos.cmake -DRISCOS=ON -DSDL_GCC_ATOMICS=OFF -DCMAKE_BUILD_TYPE=Release
|
||||
run: cmake -S. -Bbuild -G Ninja -DCMAKE_TOOLCHAIN_FILE=/home/riscos/env/toolchain-riscos.cmake -DRISCOS=ON -DSDL_GCC_ATOMICS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
- name: Build
|
||||
run: cmake --build build
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
name: Build (OpenWatcom)
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
os2:
|
||||
name: ${{ matrix.platform.name }}
|
||||
runs-on: windows-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
platform:
|
||||
- { name: Windows, makefile: Makefile.w32 }
|
||||
- { name: OS/2, makefile: Makefile.os2 }
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: open-watcom/setup-watcom@v0
|
||||
- name: Build SDL2
|
||||
run: |
|
||||
wmake -f ${{ matrix.platform.makefile }}
|
||||
- name: Build tests
|
||||
run: |
|
||||
cd test && wmake -f ${{ matrix.platform.makefile }}
|
||||
cd ..
|
||||
- name: Run tests
|
||||
if: "matrix.platform.makefile == 'Makefile.w32'"
|
||||
run: |
|
||||
cd test && wmake -f ${{ matrix.platform.makefile }} check-quick
|
||||
cd ..
|
||||
- name: distclean
|
||||
run: |
|
||||
wmake -f ${{ matrix.platform.makefile }} distclean
|
||||
cd test && wmake -f ${{ matrix.platform.makefile }} distclean
|
||||
cd ..
|
|
@ -22,6 +22,7 @@ buildbot
|
|||
*.exe
|
||||
*.o
|
||||
*.obj
|
||||
*.res
|
||||
*.lib
|
||||
*.a
|
||||
*.la
|
||||
|
|
|
@ -56,23 +56,11 @@ set(CMAKE_MODULE_PATH "${SDL2_SOURCE_DIR}/cmake")
|
|||
include(${SDL2_SOURCE_DIR}/cmake/macros.cmake)
|
||||
include(${SDL2_SOURCE_DIR}/cmake/sdlchecks.cmake)
|
||||
|
||||
# General settings
|
||||
# Edit include/SDL_version.h and change the version, then:
|
||||
# SDL_MICRO_VERSION += 1;
|
||||
# SDL_INTERFACE_AGE += 1;
|
||||
# SDL_BINARY_AGE += 1;
|
||||
# if any functions have been added, set SDL_INTERFACE_AGE to 0.
|
||||
# if backwards compatibility has been broken,
|
||||
# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
|
||||
# See docs/release_checklist.md
|
||||
set(SDL_MAJOR_VERSION 2)
|
||||
set(SDL_MINOR_VERSION 0)
|
||||
set(SDL_MICRO_VERSION 22)
|
||||
set(SDL_INTERFACE_AGE 0)
|
||||
set(SDL_BINARY_AGE 22)
|
||||
set(SDL_MINOR_VERSION 23)
|
||||
set(SDL_MICRO_VERSION 0)
|
||||
set(SDL_VERSION "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}.${SDL_MICRO_VERSION}")
|
||||
# the following should match the versions in Xcode project file:
|
||||
set(DYLIB_CURRENT_VERSION 23.0.0)
|
||||
set(DYLIB_COMPATIBILITY_VERSION 1.0.0)
|
||||
|
||||
# Set defaults preventing destination file conflicts
|
||||
set(SDL_CMAKE_DEBUG_POSTFIX "d"
|
||||
|
@ -81,13 +69,40 @@ set(SDL_CMAKE_DEBUG_POSTFIX "d"
|
|||
mark_as_advanced(CMAKE_IMPORT_LIBRARY_SUFFIX SDL_CMAKE_DEBUG_POSTFIX)
|
||||
|
||||
# Calculate a libtool-like version number
|
||||
math(EXPR LT_CURRENT "${SDL_MICRO_VERSION} - ${SDL_INTERFACE_AGE}")
|
||||
math(EXPR SDL_BINARY_AGE "${SDL_MINOR_VERSION} * 100 + ${SDL_MICRO_VERSION}")
|
||||
if(SDL_MINOR_VERSION MATCHES "[02468]$")
|
||||
# Stable branch, 2.24.1 -> libSDL2-2.0.so.0.2400.1
|
||||
set(SDL_INTERFACE_AGE ${SDL_MICRO_VERSION})
|
||||
else()
|
||||
# Development branch, 2.23.1 -> libSDL2-2.0.so.0.2301.0
|
||||
set(SDL_INTERFACE_AGE 0)
|
||||
endif()
|
||||
|
||||
# Increment this if there is an incompatible change - but if that happens,
|
||||
# we should rename the library from SDL2 to SDL3, at which point this would
|
||||
# reset to 0 anyway.
|
||||
set(LT_MAJOR "0")
|
||||
|
||||
math(EXPR LT_AGE "${SDL_BINARY_AGE} - ${SDL_INTERFACE_AGE}")
|
||||
math(EXPR LT_MAJOR "${LT_CURRENT}- ${LT_AGE}")
|
||||
math(EXPR LT_CURRENT "${LT_MAJOR} + ${LT_AGE}")
|
||||
set(LT_REVISION "${SDL_INTERFACE_AGE}")
|
||||
set(LT_RELEASE "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}")
|
||||
# For historical reasons, the library name redundantly includes the major
|
||||
# version twice: libSDL2-2.0.so.0.
|
||||
# TODO: in SDL 3, set the OUTPUT_NAME to plain SDL3, which will simplify
|
||||
# it to libSDL3.so.0
|
||||
set(LT_RELEASE "2.0")
|
||||
set(LT_VERSION "${LT_MAJOR}.${LT_AGE}.${LT_REVISION}")
|
||||
|
||||
# The following should match the versions in the Xcode project file.
|
||||
# Each version is 1 higher than you might expect, for compatibility
|
||||
# with libtool: macOS ABI versioning is 1-based, unlike other platforms
|
||||
# which are normally 0-based.
|
||||
math(EXPR DYLIB_CURRENT_VERSION_MAJOR "${LT_MAJOR} + ${LT_AGE} + 1")
|
||||
math(EXPR DYLIB_CURRENT_VERSION_MINOR "${LT_REVISION}")
|
||||
math(EXPR DYLIB_COMPAT_VERSION_MAJOR "${LT_MAJOR} + 1")
|
||||
set(DYLIB_CURRENT_VERSION "${DYLIB_CURRENT_VERSION_MAJOR}.${DYLIB_CURRENT_VERSION_MINOR}.0")
|
||||
set(DYLIB_COMPATIBILITY_VERSION "${DYLIB_COMPAT_VERSION_MAJOR}.0.0")
|
||||
|
||||
#message(STATUS "${LT_VERSION} :: ${LT_AGE} :: ${LT_REVISION} :: ${LT_CURRENT} :: ${LT_RELEASE}")
|
||||
|
||||
# General settings & flags
|
||||
|
@ -423,7 +438,7 @@ set_option(SDL_RPATH "Use an rpath when linking SDL" ${UNIX_SYS})
|
|||
set_option(SDL_CLOCK_GETTIME "Use clock_gettime() instead of gettimeofday()" ${UNIX_SYS})
|
||||
set_option(SDL_X11 "Use X11 video driver" ${UNIX_SYS})
|
||||
dep_option(SDL_X11_SHARED "Dynamically load X11 support" ON "SDL_X11" OFF)
|
||||
set(SDL_X11_OPTIONS Xcursor Xdbe Xinerama XInput Xfixes Xrandr Xscrnsaver XShape Xvm)
|
||||
set(SDL_X11_OPTIONS Xcursor Xdbe XInput Xfixes Xrandr Xscrnsaver XShape)
|
||||
foreach(_SUB ${SDL_X11_OPTIONS})
|
||||
string(TOUPPER "SDL_X11_${_SUB}" _OPT)
|
||||
dep_option(${_OPT} "Enable ${_SUB} support" ON "SDL_X11" OFF)
|
||||
|
@ -457,6 +472,7 @@ set(SDL_STATIC ${SDL_STATIC_ENABLED_BY_DEFAULT} CACHE BOOL "Build a static versi
|
|||
|
||||
dep_option(SDL_STATIC_PIC "Static version of the library should be built with Position Independent Code" OFF "SDL_STATIC" OFF)
|
||||
set_option(SDL_TEST "Build the test directory" OFF)
|
||||
set_option(SDL_INSTALL_TESTS "Install test-cases" OFF)
|
||||
|
||||
if(VITA)
|
||||
set_option(VIDEO_VITA_PIB "Build with PSVita piglet gles2 support" OFF)
|
||||
|
@ -611,10 +627,14 @@ if(USE_GCC OR USE_CLANG)
|
|||
endif()
|
||||
endif()
|
||||
endif()
|
||||
if(MSVC)
|
||||
target_compile_definitions(sdl-build-options INTERFACE "-D_CRT_SECURE_NO_DEPRECATE")
|
||||
target_compile_definitions(sdl-build-options INTERFACE "-D_CRT_NONSTDC_NO_DEPRECATE")
|
||||
target_compile_definitions(sdl-build-options INTERFACE "-D_CRT_SECURE_NO_WARNINGS")
|
||||
endif()
|
||||
|
||||
if(SDL_ASSEMBLY)
|
||||
if(USE_GCC OR USE_CLANG)
|
||||
set(SDL_ASSEMBLY_ROUTINES 1)
|
||||
# TODO: Those all seem to be quite GCC specific - needs to be
|
||||
# reworked for better compiler support
|
||||
set(HAVE_ASSEMBLY TRUE)
|
||||
|
@ -832,7 +852,6 @@ if(SDL_ASSEMBLY)
|
|||
set(HAVE_SSE2 TRUE)
|
||||
set(HAVE_SSE3 TRUE)
|
||||
check_include_file("immintrin.h" HAVE_IMMINTRIN_H)
|
||||
set(SDL_ASSEMBLY_ROUTINES 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -848,7 +867,7 @@ if(SDL_LIBC)
|
|||
endforeach()
|
||||
set(HAVE_SIGNAL_H 1)
|
||||
foreach(_FN
|
||||
malloc calloc realloc free qsort abs memset memcpy memmove memcmp
|
||||
malloc calloc realloc free bsearch qsort abs memset memcpy memmove memcmp
|
||||
wcslen _wcsdup wcsdup wcsstr wcscmp wcsncmp _wcsicmp _wcsnicmp
|
||||
strlen _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa
|
||||
_ultoa strtol strtoul strtoll strtod atoi atof strcmp strncmp
|
||||
|
@ -885,7 +904,7 @@ if(SDL_LIBC)
|
|||
int main(void) { return 0; }" HAVE_MPROTECT)
|
||||
foreach(_FN
|
||||
strtod malloc calloc realloc free getenv setenv putenv unsetenv
|
||||
qsort abs bcopy memset memcpy memmove memcmp strlen strlcpy strlcat
|
||||
bsearch qsort abs bcopy memset memcpy memmove memcmp strlen strlcpy strlcat
|
||||
_strrev _strupr _strlwr index rindex strchr strrchr strstr strtok_r
|
||||
itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull
|
||||
atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp
|
||||
|
@ -1529,7 +1548,7 @@ elseif(WINDOWS)
|
|||
if(MSVC AND NOT SDL_LIBC)
|
||||
# Prevent codegen that would use the VC runtime libraries.
|
||||
set_property(DIRECTORY . APPEND PROPERTY COMPILE_OPTIONS "/GS-")
|
||||
if(NOT ARCH_64)
|
||||
if(NOT ARCH_64 AND NOT CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
|
||||
set_property(DIRECTORY . APPEND PROPERTY COMPILE_OPTIONS "/arch:SSE")
|
||||
endif()
|
||||
endif()
|
||||
|
@ -1561,7 +1580,7 @@ elseif(WINDOWS)
|
|||
check_include_file(ddraw.h HAVE_DDRAW_H)
|
||||
check_include_file(dsound.h HAVE_DSOUND_H)
|
||||
check_include_file(dinput.h HAVE_DINPUT_H)
|
||||
if(WINDOWS_STORE OR VCPKG_TARGET_TRIPLET MATCHES "arm-windows")
|
||||
if(WINDOWS_STORE OR CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
|
||||
set(HAVE_DINPUT_H 0)
|
||||
endif()
|
||||
check_include_file(dxgi.h HAVE_DXGI_H)
|
||||
|
@ -2920,6 +2939,9 @@ if(NOT WINDOWS_STORE AND NOT SDL2_DISABLE_SDL2MAIN)
|
|||
add_library(SDL2::SDL2main ALIAS SDL2main)
|
||||
target_include_directories(SDL2main BEFORE PRIVATE "${SDL2_BINARY_DIR}/include")
|
||||
target_include_directories(SDL2main PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>" $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/SDL2>)
|
||||
if (WIN32)
|
||||
target_link_libraries(SDL2main PRIVATE shell32)
|
||||
endif()
|
||||
if (NOT ANDROID)
|
||||
set_target_properties(SDL2main PROPERTIES DEBUG_POSTFIX "${SDL_CMAKE_DEBUG_POSTFIX}")
|
||||
endif()
|
||||
|
@ -2929,7 +2951,7 @@ if(ANDROID)
|
|||
target_include_directories(sdl-build-options INTERFACE "${ANDROID_NDK}/sources/android/cpufeatures")
|
||||
endif()
|
||||
|
||||
if(IOS OR TVOS)
|
||||
if(APPLE)
|
||||
target_compile_options(sdl-build-options INTERFACE "-fobjc-arc")
|
||||
endif()
|
||||
|
||||
|
@ -2960,7 +2982,7 @@ if(SDL_SHARED)
|
|||
OUTPUT_NAME "SDL2")
|
||||
endif()
|
||||
# Note: The clang toolset for Visual Studio does not support /NODEFAULTLIB.
|
||||
if(MSVC AND NOT SDL_LIBC AND NOT MSVC_CLANG)
|
||||
if(MSVC AND NOT SDL_LIBC AND NOT MSVC_CLANG AND NOT CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
|
||||
# Don't try to link with the default set of libraries.
|
||||
if(NOT WINDOWS_STORE)
|
||||
set_target_properties(SDL2 PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB")
|
||||
|
@ -2992,7 +3014,7 @@ if(SDL_STATIC)
|
|||
endif()
|
||||
set_target_properties(SDL2-static PROPERTIES POSITION_INDEPENDENT_CODE ${SDL_STATIC_PIC})
|
||||
# Note: The clang toolset for Visual Studio does not support /NODEFAULTLIB.
|
||||
if(MSVC AND NOT SDL_LIBC AND NOT MSVC_CLANG)
|
||||
if(MSVC AND NOT SDL_LIBC AND NOT MSVC_CLANG AND NOT CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
|
||||
set_target_properties(SDL2-static PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB")
|
||||
set_target_properties(SDL2-static PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB")
|
||||
set_target_properties(SDL2-static PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB")
|
||||
|
@ -3009,14 +3031,18 @@ if(SDL_STATIC)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSDL_BUILD_MAJOR_VERSION=${SDL_MAJOR_VERSION}")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSDL_BUILD_MINOR_VERSION=${SDL_MINOR_VERSION}")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSDL_BUILD_MICRO_VERSION=${SDL_MICRO_VERSION}")
|
||||
|
||||
##### Tests #####
|
||||
|
||||
if(SDL_TEST)
|
||||
include(CTest)
|
||||
include_directories(BEFORE "${SDL2_BINARY_DIR}/include")
|
||||
include_directories(AFTER "${SDL2_SOURCE_DIR}/include")
|
||||
file(GLOB TEST_SOURCES ${SDL2_SOURCE_DIR}/src/test/*.c)
|
||||
add_library(SDL2_test STATIC ${TEST_SOURCES})
|
||||
add_subdirectory(test)
|
||||
endif()
|
||||
|
||||
##### Installation targets #####
|
||||
|
@ -3142,3 +3168,8 @@ if(NOT SDL2_DISABLE_UNINSTALL)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
##### Tests subproject (must appear after the install/uninstall targets) #####
|
||||
|
||||
if(SDL_TEST)
|
||||
add_subdirectory(test)
|
||||
endif()
|
||||
|
|
|
@ -11,7 +11,10 @@
|
|||
# wmake -f Makefile.os2 HIDAPI=1
|
||||
|
||||
LIBNAME = SDL2
|
||||
VERSION = 2.0.22
|
||||
MAJOR_VERSION = 2
|
||||
MINOR_VERSION = 23
|
||||
MICRO_VERSION = 0
|
||||
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
||||
DESCRIPTION = Simple DirectMedia Layer 2
|
||||
|
||||
LIBICONV=0
|
||||
|
@ -60,6 +63,10 @@ CFLAGS_DLL+= -DHAVE_LIBUSB_H=1
|
|||
# building SDL itself (for DECLSPEC):
|
||||
CFLAGS_DLL+= -DBUILD_SDL
|
||||
|
||||
CFLAGS_DLL+= -DSDL_BUILD_MAJOR_VERSION=$(MAJOR_VERSION)
|
||||
CFLAGS_DLL+= -DSDL_BUILD_MINOR_VERSION=$(MINOR_VERSION)
|
||||
CFLAGS_DLL+= -DSDL_BUILD_MICRO_VERSION=$(MICRO_VERSION)
|
||||
|
||||
SRCS = SDL.c SDL_assert.c SDL_error.c SDL_log.c SDL_dataqueue.c SDL_hints.c SDL_list.c
|
||||
SRCS+= SDL_getenv.c SDL_iconv.c SDL_malloc.c SDL_qsort.c SDL_stdlib.c SDL_string.c SDL_strtokr.c SDL_crc32.c
|
||||
SRCS+= SDL_cpuinfo.c SDL_atomic.c SDL_spinlock.c SDL_thread.c SDL_timer.c
|
||||
|
|
|
@ -0,0 +1,222 @@
|
|||
# Open Watcom makefile to build SDL2.dll for Win32
|
||||
# wmake -f Makefile.w32
|
||||
|
||||
LIBNAME = SDL2
|
||||
MAJOR_VERSION = 2
|
||||
MINOR_VERSION = 23
|
||||
MICRO_VERSION = 0
|
||||
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
||||
DESCRIPTION = Simple DirectMedia Layer 2
|
||||
|
||||
LIBHOME = .
|
||||
DLLFILE = $(LIBHOME)/$(LIBNAME).dll
|
||||
LIBFILE = $(LIBHOME)/$(LIBNAME).lib
|
||||
EXPFILE = $(LIBHOME)/$(LIBNAME).exp
|
||||
LNKFILE = $(LIBNAME).lnk
|
||||
|
||||
INCPATH = -I"$(%WATCOM)/h/nt" -I"$(%WATCOM)/h/nt/directx" -I"$(%WATCOM)/h"
|
||||
INCPATH+= -Iinclude
|
||||
INCPATH+= -I"src/video/khronos"
|
||||
|
||||
TLIB = SDL2test.lib
|
||||
LIBS = user32.lib gdi32.lib winmm.lib imm32.lib ole32.lib oleaut32.lib shell32.lib setupapi.lib version.lib uuid.lib dxguid.lib
|
||||
|
||||
CFLAGS = -bt=nt -d0 -q -bm -5s -fp5 -fpi87 -sg -oeatxhn -ei
|
||||
# max warnings:
|
||||
CFLAGS+= -wx
|
||||
# newer OpenWatcom versions enable W303 by default
|
||||
CFLAGS+= -wcd=303
|
||||
# the include paths :
|
||||
CFLAGS+= $(INCPATH)
|
||||
CFLAGS_STATIC=$(CFLAGS)
|
||||
# building dll:
|
||||
CFLAGS_DLL =$(CFLAGS)
|
||||
CFLAGS_DLL+= -bd
|
||||
# we override the DECLSPEC define in begin_code.h, because we are using
|
||||
# an exports file to remove the _cdecl '_' prefix from the symbol names
|
||||
CFLAGS_DLL+= -DDECLSPEC=
|
||||
|
||||
CFLAGS_DLL+= -DSDL_BUILD_MAJOR_VERSION=$(MAJOR_VERSION)
|
||||
CFLAGS_DLL+= -DSDL_BUILD_MINOR_VERSION=$(MINOR_VERSION)
|
||||
CFLAGS_DLL+= -DSDL_BUILD_MICRO_VERSION=$(MICRO_VERSION)
|
||||
|
||||
RCFLAGS = -q -r -bt=nt $(INCPATH)
|
||||
|
||||
SRCS = SDL.c SDL_assert.c SDL_error.c SDL_log.c SDL_dataqueue.c SDL_hints.c SDL_list.c
|
||||
SRCS+= SDL_getenv.c SDL_iconv.c SDL_malloc.c SDL_qsort.c SDL_stdlib.c SDL_string.c SDL_strtokr.c SDL_crc32.c
|
||||
SRCS+= SDL_cpuinfo.c SDL_atomic.c SDL_spinlock.c SDL_thread.c SDL_timer.c
|
||||
SRCS+= SDL_rwops.c SDL_power.c
|
||||
SRCS+= SDL_audio.c SDL_audiocvt.c SDL_audiodev.c SDL_audiotypecvt.c SDL_mixer.c SDL_wave.c
|
||||
SRCS+= SDL_events.c SDL_quit.c SDL_keyboard.c SDL_mouse.c SDL_windowevents.c &
|
||||
SDL_clipboardevents.c SDL_dropevents.c SDL_displayevents.c SDL_gesture.c &
|
||||
SDL_sensor.c SDL_touch.c
|
||||
SRCS+= SDL_haptic.c SDL_hidapi.c SDL_gamecontroller.c SDL_joystick.c
|
||||
SRCS+= SDL_render.c yuv_rgb.c SDL_yuv.c SDL_yuv_sw.c SDL_blendfillrect.c &
|
||||
SDL_blendline.c SDL_blendpoint.c SDL_drawline.c SDL_drawpoint.c &
|
||||
SDL_render_sw.c SDL_rotate.c SDL_triangle.c
|
||||
SRCS+= SDL_blit.c SDL_blit_0.c SDL_blit_1.c SDL_blit_A.c SDL_blit_auto.c &
|
||||
SDL_blit_copy.c SDL_blit_N.c SDL_blit_slow.c SDL_fillrect.c SDL_bmp.c &
|
||||
SDL_pixels.c SDL_rect.c SDL_RLEaccel.c SDL_shape.c SDL_stretch.c &
|
||||
SDL_surface.c SDL_video.c SDL_clipboard.c SDL_vulkan_utils.c SDL_egl.c
|
||||
|
||||
SRCS+= e_atan2.c e_exp.c e_fmod.c e_log10.c e_log.c e_pow.c e_rem_pio2.c e_sqrt.c &
|
||||
k_cos.c k_rem_pio2.c k_sin.c k_tan.c &
|
||||
s_atan.c s_copysign.c s_cos.c s_fabs.c s_floor.c s_scalbn.c s_sin.c s_tan.c
|
||||
|
||||
SRCS+= SDL_syscond.c SDL_sysmutex.c SDL_syssem.c SDL_systhread.c SDL_systls.c
|
||||
SRCS+= SDL_systimer.c
|
||||
SRCS+= SDL_sysloadso.c
|
||||
SRCS+= SDL_sysfilesystem.c
|
||||
SRCS+= SDL_syshaptic.c SDL_sysjoystick.c SDL_virtualjoystick.c
|
||||
SRCS+= SDL_hidapijoystick.c SDL_hidapi_rumble.c SDL_hidapi_gamecube.c SDL_hidapi_luna.c SDL_hidapi_ps4.c SDL_hidapi_ps5.c SDL_hidapi_stadia.c SDL_hidapi_switch.c SDL_hidapi_xbox360.c SDL_hidapi_xbox360w.c SDL_hidapi_xboxone.c SDL_hidapi_steam.c
|
||||
SRCS+= SDL_dummyaudio.c SDL_diskaudio.c
|
||||
SRCS+= SDL_nullvideo.c SDL_nullframebuffer.c SDL_nullevents.c
|
||||
SRCS+= SDL_dummysensor.c
|
||||
SRCS+= SDL_locale.c SDL_syslocale.c
|
||||
SRCS+= SDL_url.c SDL_sysurl.c
|
||||
|
||||
SRCS+= SDL_winmm.c SDL_directsound.c SDL_wasapi.c SDL_wasapi_win32.c
|
||||
SRCS+= SDL_hid.c SDL_windows.c SDL_xinput.c
|
||||
SRCS+= SDL_dinputhaptic.c SDL_windowshaptic.c SDL_xinputhaptic.c
|
||||
SRCS+= SDL_dinputjoystick.c SDL_rawinputjoystick.c SDL_windowsjoystick.c SDL_windows_gaming_input.c SDL_xinputjoystick.c
|
||||
SRCS+= SDL_syspower.c
|
||||
SRCS+= SDL_d3dmath.c
|
||||
SRCS+= SDL_render_d3d.c SDL_shaders_d3d.c
|
||||
SRCS+= SDL_render_d3d11.c SDL_shaders_d3d11.c
|
||||
SRCS+= SDL_render_gl.c SDL_shaders_gl.c
|
||||
SRCS+= SDL_render_gles2.c SDL_shaders_gles2.c
|
||||
SRCS+= SDL_windowssensor.c
|
||||
SRCS+= SDL_syscond_cv.c
|
||||
SRCS+= SDL_windowsclipboard.c SDL_windowsevents.c SDL_windowsframebuffer.c SDL_windowskeyboard.c SDL_windowsmessagebox.c SDL_windowsmodes.c SDL_windowsmouse.c SDL_windowsopengl.c SDL_windowsopengles.c SDL_windowsshape.c SDL_windowsvideo.c SDL_windowsvulkan.c SDL_windowswindow.c
|
||||
|
||||
SRCS+= SDL_dynapi.c
|
||||
|
||||
RCSRCS+= version.rc
|
||||
|
||||
OBJS = $(SRCS:.c=.obj)
|
||||
RCOBJS= $(RCSRCS:.rc=.res)
|
||||
|
||||
.extensions:
|
||||
.extensions: .lib .dll .obj .res .c .rc .asm
|
||||
|
||||
.c: ./src/libm;
|
||||
.c: ./src;./src/dynapi;./src/audio;./src/cpuinfo;./src/events;./src/file;./src/haptic;./src/joystick;./src/power;./src/render;./src/render/software;./src/sensor;./src/stdlib;./src/thread;./src/timer;./src/video;./src/video/yuv2rgb;./src/atomic;./src/audio/disk;
|
||||
.c: ./src/haptic/dummy;./src/joystick/dummy;./src/joystick/virtual;./src/audio/dummy;./src/video/dummy;./src/sensor/dummy;
|
||||
.c: ./src/core/windows;./src/audio/winmm;./src/audio/directsound;./src/audio/wasapi;./src/loadso/windows;./src/filesystem/windows;./src/haptic/windows;./src/joystick/windows;./src/sensor/windows;./src/thread/windows;./src/timer/windows;./src/video/windows;
|
||||
.c: ./src/locale/;./src/locale/windows;./src/misc;./src/misc/windows;./src/power/windows;./src/joystick/hidapi;./src/hidapi;./src/render/direct3d;./src/render/direct3d11;./src/render/opengl;./src/render/opengles2
|
||||
.rc: ./src/main/windows
|
||||
|
||||
all: $(DLLFILE) $(LIBFILE) $(TLIB) .symbolic
|
||||
|
||||
build_dll: .symbolic
|
||||
@echo * Compiling dll objects
|
||||
|
||||
$(DLLFILE): build_dll $(OBJS) $(MOBJS) $(RCOBJS) $(LNKFILE)
|
||||
@echo * Linking: $@
|
||||
wlink @$(LNKFILE)
|
||||
wrc $(RCOBJS) $^@
|
||||
|
||||
$(LIBFILE): $(DLLFILE)
|
||||
@echo * Creating LIB file: $@
|
||||
wlib -q -b -n -c -pa -s -t -zld -ii -io $* @$(EXPFILE)
|
||||
|
||||
.c.obj:
|
||||
wcc386 $(CFLAGS_DLL) -fo=$^@ $<
|
||||
|
||||
.rc.res:
|
||||
wrc $(RCFLAGS) -fo=$^@ $<
|
||||
|
||||
SDL_syscond.obj: "src/thread/generic/SDL_syscond.c"
|
||||
wcc386 $(CFLAGS_DLL) -fo=$^@ $<
|
||||
SDL_cpuinfo.obj: SDL_cpuinfo.c
|
||||
wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
|
||||
SDL_wave.obj: SDL_wave.c
|
||||
wcc386 $(CFLAGS_DLL) -wcd=124 -fo=$^@ $<
|
||||
SDL_blendfillrect.obj: SDL_blendfillrect.c
|
||||
wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
|
||||
SDL_blendline.obj: SDL_blendline.c
|
||||
wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
|
||||
SDL_blendpoint.obj: SDL_blendpoint.c
|
||||
wcc386 $(CFLAGS_DLL) -wcd=200 -fo=$^@ $<
|
||||
SDL_RLEaccel.obj: SDL_RLEaccel.c
|
||||
wcc386 $(CFLAGS_DLL) -wcd=201 -fo=$^@ $<
|
||||
# c99 mode needed because of structs with flexible array members in libusb.h
|
||||
SDL_hidapi.obj: SDL_hidapi.c
|
||||
wcc386 $(CFLAGS_DLL) -za99 -fo=$^@ $<
|
||||
|
||||
# SDL2test
|
||||
TSRCS = SDL_test_assert.c SDL_test_common.c SDL_test_compare.c &
|
||||
SDL_test_crc32.c SDL_test_font.c SDL_test_fuzzer.c SDL_test_harness.c &
|
||||
SDL_test_imageBlit.c SDL_test_imageBlitBlend.c SDL_test_imageFace.c &
|
||||
SDL_test_imagePrimitives.c SDL_test_imagePrimitivesBlend.c &
|
||||
SDL_test_log.c SDL_test_md5.c SDL_test_random.c SDL_test_memory.c
|
||||
TOBJS= $(TSRCS:.c=.obj)
|
||||
|
||||
.c: ./src/test;
|
||||
SDL_test_assert.obj: SDL_test_assert.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_common.obj: SDL_test_common.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_compare.obj: SDL_test_compare.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_crc32.obj: SDL_test_crc32.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_font.obj: SDL_test_font.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_fuzzer.obj: SDL_test_fuzzer.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_harness.obj: SDL_test_harness.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_imageBlit.obj: SDL_test_imageBlit.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_imageBlitBlend.obj: SDL_test_imageBlitBlend.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_imageFace.obj: SDL_test_imageFace.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_imagePrimitives.obj: SDL_test_imagePrimitives.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_imagePrimitivesBlend.obj: SDL_test_imagePrimitivesBlend.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_log.obj: SDL_test_log.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_md5.obj: SDL_test_md5.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_random.obj: SDL_test_random.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
SDL_test_memory.obj: SDL_test_memory.c
|
||||
wcc386 $(CFLAGS_STATIC) -fo=$^@ $<
|
||||
|
||||
build_tlib: .symbolic
|
||||
@echo * Compiling testlib objects
|
||||
$(TLIB): build_tlib $(TOBJS)
|
||||
@echo * Creating: $@
|
||||
wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(TOBJS)
|
||||
|
||||
$(LNKFILE): Makefile.w32
|
||||
@echo * Creating linker file: $@
|
||||
@%create $@
|
||||
@%append $@ SYSTEM nt_dll INITINSTANCE TERMINSTANCE
|
||||
@%append $@ NAME $(DLLFILE)
|
||||
@for %i in ($(OBJS)) do @%append $@ FILE %i
|
||||
@for %i in ($(LIBS)) do @%append $@ LIB %i
|
||||
@%append $@ EXPORT=src/dynapi/SDL2.exports
|
||||
@%append $@ OPTION QUIET
|
||||
@%append $@ OPTION IMPF=$(EXPFILE)
|
||||
@%append $@ OPTION MAP=$(LIBHOME)/$^&.map
|
||||
@%append $@ OPTION DESCRIPTION '@$#libsdl org:$(VERSION)$#@$(DESCRIPTION)'
|
||||
@%append $@ OPTION ELIMINATE
|
||||
@%append $@ OPTION OSNAME='Windows NT'
|
||||
@%append $@ OPTION SHOWDEAD
|
||||
|
||||
clean: .SYMBOLIC
|
||||
@echo * Clean: $(LIBNAME)
|
||||
@if exist *.obj rm *.obj
|
||||
@if exist *.err rm *.err
|
||||
@if exist $(LNKFILE) rm $(LNKFILE)
|
||||
|
||||
distclean: .SYMBOLIC clean
|
||||
@if exist $(LIBHOME)/*.exp rm $(LIBHOME)/*.exp
|
||||
@if exist $(LIBHOME)/*.map rm $(LIBHOME)/*.map
|
||||
@if exist $(LIBFILE) rm $(LIBFILE)
|
||||
@if exist $(DLLFILE) rm $(DLLFILE)
|
||||
@if exist $(TLIB) rm $(TLIB)
|
|
@ -145,6 +145,7 @@
|
|||
<ClInclude Include="..\src\SDL_hints_c.h" />
|
||||
<ClInclude Include="..\src\SDL_internal.h" />
|
||||
<ClInclude Include="..\src\SDL_list.h" />
|
||||
<ClInclude Include="..\src\SDL_log_c.h" />
|
||||
<ClInclude Include="..\src\sensor\dummy\SDL_dummysensor.h" />
|
||||
<ClInclude Include="..\src\sensor\SDL_sensor_c.h" />
|
||||
<ClInclude Include="..\src\sensor\SDL_syssensor.h" />
|
||||
|
|
|
@ -330,6 +330,9 @@
|
|||
<ClInclude Include="..\src\SDL_internal.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\SDL_log_c.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\locale\SDL_syslocale.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
@ -370,6 +370,7 @@
|
|||
<ClInclude Include="..\..\src\SDL_hints_c.h" />
|
||||
<ClInclude Include="..\..\src\SDL_internal.h" />
|
||||
<ClInclude Include="..\..\src\SDL_list.h" />
|
||||
<ClInclude Include="..\..\src\SDL_log_c.h" />
|
||||
<ClInclude Include="..\..\src\sensor\dummy\SDL_dummysensor.h" />
|
||||
<ClInclude Include="..\..\src\sensor\SDL_sensor_c.h" />
|
||||
<ClInclude Include="..\..\src\sensor\SDL_syssensor.h" />
|
||||
|
|
|
@ -825,6 +825,7 @@
|
|||
<ClInclude Include="..\..\src\SDL_assert_c.h" />
|
||||
<ClInclude Include="..\..\src\SDL_hints_c.h" />
|
||||
<ClInclude Include="..\..\src\SDL_internal.h" />
|
||||
<ClInclude Include="..\..\src\SDL_log_c.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\audio\wasapi\SDL_wasapi.c" />
|
||||
|
|
|
@ -271,6 +271,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\test\controllermap.c" />
|
||||
<ClCompile Include="..\..\..\test\testutils.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
|
|
@ -203,6 +203,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\Test\loopwave.c" />
|
||||
<ClCompile Include="..\..\..\test\testutils.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\..\..\test\sample.wav">
|
||||
|
@ -227,4 +228,4 @@
|
|||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
@ -271,6 +271,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\test\testgamecontroller.c" />
|
||||
<ClCompile Include="..\..\..\test\testutils.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
|
|
@ -217,6 +217,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\test\testoverlay2.c" />
|
||||
<ClCompile Include="..\..\..\test\testutils.c" />
|
||||
<ClCompile Include="..\..\..\test\testyuv_cvt.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
|
|
|
@ -241,8 +241,9 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\test\testrendertarget.c" />
|
||||
<ClCompile Include="..\..\..\test\testutils.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
@ -241,8 +241,9 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\test\testscale.c" />
|
||||
<ClCompile Include="..\..\..\test\testutils.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
@ -223,8 +223,9 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\test\testsprite2.c" />
|
||||
<ClCompile Include="..\..\..\test\testutils.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
25
WhatsNew.txt
25
WhatsNew.txt
|
@ -1,6 +1,31 @@
|
|||
|
||||
This is a list of major changes in SDL's version history.
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
2.24.0:
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
General:
|
||||
* New version numbering scheme, similar to GLib and Flatpak.
|
||||
* An even number in the minor version (second component) indicates
|
||||
a production-ready stable release such as 2.24.0, which would have
|
||||
been 2.0.24 under the old system.
|
||||
* The patchlevel (micro version, third component) indicates a
|
||||
bugfix-only update: for example, 2.24.1 would be a bugfix-only
|
||||
release to fix bugs in 2.24.0, without adding new features.
|
||||
* An odd number in the minor version indicates a prerelease such
|
||||
as 2.23.0. Stable distributions should not use these prereleases.
|
||||
* The patchlevel indicates successive prereleases, for example
|
||||
2.23.1 and 2.23.2 would be prereleases during development of
|
||||
the SDL 2.24.0 stable release.
|
||||
* Added SDL_bsearch() to the stdlib routines
|
||||
* Added functions to get the platform dependent name for a joystick or game controller:
|
||||
* SDL_JoystickPathForIndex()
|
||||
* SDL_JoystickPath()
|
||||
* SDL_GameControllerPathForIndex()
|
||||
* SDL_GameControllerPath()
|
||||
* Added joystick event SDL_JOYBATTERYUPDATED for when battery status changes.
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
2.0.22:
|
||||
---------------------------------------------------------------------------
|
||||
|
|
|
@ -19,10 +19,10 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.0.22</string>
|
||||
<string>2.23.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>SDLX</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.0.22</string>
|
||||
<string>2.23.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -3469,13 +3469,13 @@
|
|||
F395C1A22569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; };
|
||||
F395C1A32569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; };
|
||||
F395C1A42569C68F00942BFF /* SDL_iokitjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F395C1922569C68E00942BFF /* SDL_iokitjoystick.c */; };
|
||||
F395C1B12569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
|
||||
F395C1B12569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; };
|
||||
F395C1B22569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; };
|
||||
F395C1B32569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; };
|
||||
F395C1B42569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
|
||||
F395C1B42569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; };
|
||||
F395C1B52569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; };
|
||||
F395C1B62569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; };
|
||||
F395C1B72569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
|
||||
F395C1B72569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; };
|
||||
F395C1B82569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; };
|
||||
F395C1B92569C6A000942BFF /* SDL_mfijoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = F395C1AF2569C6A000942BFF /* SDL_mfijoystick.m */; };
|
||||
F395C1BA2569C6A000942BFF /* SDL_mfijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F395C1B02569C6A000942BFF /* SDL_mfijoystick_c.h */; };
|
||||
|
@ -7172,6 +7172,7 @@
|
|||
A7D88ABF23E2437C00DCD162 /* Sources */,
|
||||
A7D88B4623E2437C00DCD162 /* Frameworks */,
|
||||
A75FDB9F23E4CAFA00529352 /* Embed Frameworks */,
|
||||
F3ED8107281DB8E600C33C5B /* Convert SDL includes to SDL Framework includes */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
@ -7193,6 +7194,7 @@
|
|||
A7D88C7823E24BED00DCD162 /* Sources */,
|
||||
A7D88D0423E24BED00DCD162 /* Frameworks */,
|
||||
A75FDBA223E4CAFF00529352 /* Embed Frameworks */,
|
||||
F3ED8108281DB8F200C33C5B /* Convert SDL includes to SDL Framework includes */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
@ -7234,6 +7236,7 @@
|
|||
BECDF62C0761BA81005FE872 /* Sources */,
|
||||
BECDF6680761BA81005FE872 /* Frameworks */,
|
||||
A75FDB9C23E4CAEF00529352 /* Embed Frameworks */,
|
||||
F3ED8106281DB8A500C33C5B /* Convert SDL includes to SDL Framework includes */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
@ -7424,6 +7427,60 @@
|
|||
shellPath = /bin/sh;
|
||||
shellScript = "# Sign framework\nif [ \"$SDL_CODESIGN_IDENTITY\" != \"\" ]; then\n codesign --force --deep --sign \"$SDL_CODESIGN_IDENTITY\" $TARGET_BUILD_DIR/SDL2.framework/Versions/A || exit $?\nfi\n\n# clean up the framework, remove headers, extra files\nmkdir -p build/dmg-tmp\ncp -a $TARGET_BUILD_DIR/SDL2.framework build/dmg-tmp/\n\ncp pkg-support/resources/License.txt build/dmg-tmp\ncp pkg-support/resources/ReadMe.txt build/dmg-tmp\n\n# remove the .DS_Store files if any (we may want to provide one in the future for fancy .dmgs)\nfind build/dmg-tmp -name .DS_Store -exec rm -f \"{}\" \\;\n\n# for fancy .dmg\nmkdir -p build/dmg-tmp/.logo\ncp pkg-support/resources/SDL_DS_Store build/dmg-tmp/.DS_Store\ncp pkg-support/sdl_logo.pdf build/dmg-tmp/.logo\n\n# create the dmg\nhdiutil create -ov -fs HFS+ -volname SDL2 -srcfolder build/dmg-tmp build/SDL2.dmg\n\n# clean up\nrm -rf build/dmg-tmp\n";
|
||||
};
|
||||
F3ED8106281DB8A500C33C5B /* Convert SDL includes to SDL Framework includes */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Convert SDL includes to SDL Framework includes";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "cd \"$BUILT_PRODUCTS_DIR/$PUBLIC_HEADERS_FOLDER_PATH\"\nsed -i '' -e 's,#include \"\\(.*\\)\",#include <SDL2/\\1>,' *.h\n";
|
||||
};
|
||||
F3ED8107281DB8E600C33C5B /* Convert SDL includes to SDL Framework includes */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Convert SDL includes to SDL Framework includes";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "cd \"$BUILT_PRODUCTS_DIR/$PUBLIC_HEADERS_FOLDER_PATH\"\nsed -i '' -e 's,#include \"\\(.*\\)\",#include <SDL2/\\1>,' *.h\n";
|
||||
};
|
||||
F3ED8108281DB8F200C33C5B /* Convert SDL includes to SDL Framework includes */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "Convert SDL includes to SDL Framework includes";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "cd \"$BUILT_PRODUCTS_DIR/$PUBLIC_HEADERS_FOLDER_PATH\"\nsed -i '' -e 's,#include \"\\(.*\\)\",#include <SDL2/\\1>,' *.h\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
|
@ -9131,6 +9188,7 @@
|
|||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
|
@ -9151,7 +9209,7 @@
|
|||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEPLOYMENT_POSTPROCESSING = YES;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1.0.0;
|
||||
DYLIB_CURRENT_VERSION = 23.0.0;
|
||||
DYLIB_CURRENT_VERSION = 2301.0.0;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_ALTIVEC_EXTENSIONS = YES;
|
||||
|
@ -9180,7 +9238,7 @@
|
|||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL2;
|
||||
PRODUCT_NAME = SDL2;
|
||||
STRIP_STYLE = "non-global";
|
||||
|
@ -9216,6 +9274,7 @@
|
|||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
|
@ -9235,7 +9294,7 @@
|
|||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1.0.0;
|
||||
DYLIB_CURRENT_VERSION = 23.0.0;
|
||||
DYLIB_CURRENT_VERSION = 2301.0.0;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
|
@ -9264,7 +9323,7 @@
|
|||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.libsdl.SDL2;
|
||||
PRODUCT_NAME = SDL2;
|
||||
|
|
|
@ -4041,6 +4041,7 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../SDL/build/$(CONFIGURATION)",
|
||||
"$(HOME)/Library/Frameworks",
|
||||
|
@ -4048,7 +4049,7 @@
|
|||
);
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
HEADER_SEARCH_PATHS = ../../include;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
|
@ -4168,6 +4169,7 @@
|
|||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(SRCROOT)/../SDL/build/$(CONFIGURATION)",
|
||||
"$(HOME)/Library/Frameworks",
|
||||
|
@ -4175,7 +4177,7 @@
|
|||
);
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
HEADER_SEARCH_PATHS = ../../include;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
|
|
|
@ -30,6 +30,6 @@
|
|||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.6</string>
|
||||
<string>10.7</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "Generating build information using autoconf"
|
||||
echo "This may take a while ..."
|
||||
|
||||
|
@ -10,11 +12,7 @@ cd "$srcdir"
|
|||
# Regenerate configuration files
|
||||
cat acinclude/* >aclocal.m4
|
||||
|
||||
if test "$AUTOCONF"x = x; then
|
||||
AUTOCONF=autoconf
|
||||
fi
|
||||
|
||||
$AUTOCONF || exit 1
|
||||
"${AUTOCONF:-autoconf}"
|
||||
rm aclocal.m4
|
||||
rm -rf autom4te.cache
|
||||
|
||||
|
|
|
@ -33,22 +33,21 @@ lib=
|
|||
ndk_args=
|
||||
|
||||
# Allow an external caller to specify locations.
|
||||
for arg in $*
|
||||
do
|
||||
if [ "${arg:0:8}" == "NDK_OUT=" ]; then
|
||||
obj=${arg#NDK_OUT=}
|
||||
elif [ "${arg:0:13}" == "NDK_LIBS_OUT=" ]; then
|
||||
lib=${arg#NDK_LIBS_OUT=}
|
||||
else
|
||||
ndk_args="$ndk_args $arg"
|
||||
fi
|
||||
for arg in $*; do
|
||||
if [ "${arg:0:8}" == "NDK_OUT=" ]; then
|
||||
obj=${arg#NDK_OUT=}
|
||||
elif [ "${arg:0:13}" == "NDK_LIBS_OUT=" ]; then
|
||||
lib=${arg#NDK_LIBS_OUT=}
|
||||
else
|
||||
ndk_args="$ndk_args $arg"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z $obj ]; then
|
||||
obj=$buildandroid/obj
|
||||
obj=$buildandroid/obj
|
||||
fi
|
||||
if [ -z $lib ]; then
|
||||
lib=$buildandroid/lib
|
||||
lib=$buildandroid/lib
|
||||
fi
|
||||
|
||||
for dir in $build $buildandroid $obj $lib; do
|
||||
|
@ -64,11 +63,11 @@ done
|
|||
# ndk-build makefile segments that use them, e.g., default-application.mk.
|
||||
# For consistency, pass all values on the command line.
|
||||
ndk-build \
|
||||
NDK_PROJECT_PATH=null \
|
||||
NDK_OUT=$obj \
|
||||
NDK_LIBS_OUT=$lib \
|
||||
APP_BUILD_SCRIPT=Android.mk \
|
||||
APP_ABI="armeabi-v7a arm64-v8a x86 x86_64" \
|
||||
APP_PLATFORM=android-16 \
|
||||
APP_MODULES="SDL2 SDL2_main" \
|
||||
$ndk_args
|
||||
NDK_PROJECT_PATH=null \
|
||||
NDK_OUT=$obj \
|
||||
NDK_LIBS_OUT=$lib \
|
||||
APP_BUILD_SCRIPT=Android.mk \
|
||||
APP_ABI="armeabi-v7a arm64-v8a x86 x86_64" \
|
||||
APP_PLATFORM=android-16 \
|
||||
APP_MODULES="SDL2 SDL2_main" \
|
||||
$ndk_args
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
|
||||
DEVELOPER="`xcode-select -print-path`/Platforms/MacOSX.platform/Developer"
|
||||
|
||||
# Intel 64-bit compiler flags (10.6 runtime compatibility)
|
||||
CLANG_COMPILE_X64="clang++ -arch x86_64 -mmacosx-version-min=10.6 \
|
||||
# Intel 64-bit compiler flags (10.7 runtime compatibility)
|
||||
CLANG_COMPILE_X64="clang++ -arch x86_64 -mmacosx-version-min=10.7 \
|
||||
-I/usr/local/include"
|
||||
|
||||
CLANG_LINK_X64="-mmacosx-version-min=10.6"
|
||||
CLANG_LINK_X64="-mmacosx-version-min=10.7"
|
||||
|
||||
# ARM 64-bit compiler flags (11.0 runtime compatibility)
|
||||
CLANG_COMPILE_ARM64="clang++ -arch arm64 -mmacosx-version-min=11.0 \
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
|
||||
DEVELOPER="`xcode-select -print-path`/Platforms/MacOSX.platform/Developer"
|
||||
|
||||
# Intel 64-bit compiler flags (10.6 runtime compatibility)
|
||||
CLANG_COMPILE_X64="clang -arch x86_64 -mmacosx-version-min=10.6 \
|
||||
-DMAC_OS_X_VERSION_MIN_REQUIRED=1060 \
|
||||
# Intel 64-bit compiler flags (10.7 runtime compatibility)
|
||||
CLANG_COMPILE_X64="clang -arch x86_64 -mmacosx-version-min=10.7 \
|
||||
-DMAC_OS_X_VERSION_MIN_REQUIRED=1070 \
|
||||
-I/usr/local/include"
|
||||
|
||||
CLANG_LINK_X64="-mmacosx-version-min=10.6"
|
||||
CLANG_LINK_X64="-mmacosx-version-min=10.7"
|
||||
|
||||
# ARM 64-bit compiler flags (11.0 runtime compatibility)
|
||||
CLANG_COMPILE_ARM64="clang -arch arm64 -mmacosx-version-min=11.0 \
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||
|
||||
timestamp='2022-01-03'
|
||||
timestamp='2022-05-08'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
@ -929,6 +929,9 @@ EOF
|
|||
i*:PW*:*)
|
||||
GUESS=$UNAME_MACHINE-pc-pw32
|
||||
;;
|
||||
*:SerenityOS:*:*)
|
||||
GUESS=$UNAME_MACHINE-pc-serenity
|
||||
;;
|
||||
*:Interix*:*)
|
||||
case $UNAME_MACHINE in
|
||||
x86)
|
||||
|
@ -1148,16 +1151,27 @@ EOF
|
|||
;;
|
||||
x86_64:Linux:*:*)
|
||||
set_cc_for_build
|
||||
CPU=$UNAME_MACHINE
|
||||
LIBCABI=$LIBC
|
||||
if test "$CC_FOR_BUILD" != no_compiler_found; then
|
||||
if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
|
||||
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_X32 >/dev/null
|
||||
then
|
||||
LIBCABI=${LIBC}x32
|
||||
fi
|
||||
ABI=64
|
||||
sed 's/^ //' << EOF > "$dummy.c"
|
||||
#ifdef __i386__
|
||||
ABI=x86
|
||||
#else
|
||||
#ifdef __ILP32__
|
||||
ABI=x32
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
|
||||
eval "$cc_set_abi"
|
||||
case $ABI in
|
||||
x86) CPU=i686 ;;
|
||||
x32) LIBCABI=${LIBC}x32 ;;
|
||||
esac
|
||||
fi
|
||||
GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
|
||||
GUESS=$CPU-pc-linux-$LIBCABI
|
||||
;;
|
||||
xtensa*:Linux:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||
|
|
|
@ -46,9 +46,15 @@ my @releases = sort {
|
|||
|
||||
# this happens to work for how SDL versions things at the moment.
|
||||
my $current_release = $releases[-1];
|
||||
my @current_release_segments = split /\./, $current_release;
|
||||
@current_release_segments[2] = '' . ($current_release_segments[2] + 2);
|
||||
my $next_release = join('.', @current_release_segments);
|
||||
my $next_release;
|
||||
|
||||
if ($current_release eq '2.0.22') { # Hack for our jump from 2.0.22 to 2.24.0...
|
||||
$next_release = '2.24.0';
|
||||
} else {
|
||||
my @current_release_segments = split /\./, $current_release;
|
||||
@current_release_segments[1] = '' . ($current_release_segments[1] + 2);
|
||||
$next_release = join('.', @current_release_segments);
|
||||
}
|
||||
|
||||
#print("\n\nSORTED\n");
|
||||
#foreach (@releases) {
|
||||
|
|
|
@ -0,0 +1,162 @@
|
|||
/*
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2022 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, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
Built with:
|
||||
|
||||
gcc -o genfilter build-scripts/gen_audio_resampler_filter.c -lm && ./genfilter > src/audio/SDL_audio_resampler_filter.h
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
SDL's resampler uses a "bandlimited interpolation" algorithm:
|
||||
https://ccrma.stanford.edu/~jos/resample/
|
||||
|
||||
This code pre-generates the kaiser tables so we don't have to do this at
|
||||
run time, at a cost of about 20 kilobytes of static data in SDL. This code
|
||||
used to be part of SDL itself and generated the tables on the first use,
|
||||
but that was expensive to produce on platforms without floating point
|
||||
hardware.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
#define RESAMPLER_ZERO_CROSSINGS 5
|
||||
#define RESAMPLER_BITS_PER_SAMPLE 16
|
||||
#define RESAMPLER_SAMPLES_PER_ZERO_CROSSING (1 << ((RESAMPLER_BITS_PER_SAMPLE / 2) + 1))
|
||||
#define RESAMPLER_FILTER_SIZE ((RESAMPLER_SAMPLES_PER_ZERO_CROSSING * RESAMPLER_ZERO_CROSSINGS) + 1)
|
||||
|
||||
/* This is a "modified" bessel function, so you can't use POSIX j0() */
|
||||
static double
|
||||
bessel(const double x)
|
||||
{
|
||||
const double xdiv2 = x / 2.0;
|
||||
double i0 = 1.0f;
|
||||
double f = 1.0f;
|
||||
int i = 1;
|
||||
|
||||
while (1) {
|
||||
const double diff = pow(xdiv2, i * 2) / pow(f, 2);
|
||||
if (diff < 1.0e-21f) {
|
||||
break;
|
||||
}
|
||||
i0 += diff;
|
||||
i++;
|
||||
f *= (double) i;
|
||||
}
|
||||
|
||||
return i0;
|
||||
}
|
||||
|
||||
/* build kaiser table with cardinal sine applied to it, and array of differences between elements. */
|
||||
static void
|
||||
kaiser_and_sinc(float *table, float *diffs, const int tablelen, const double beta)
|
||||
{
|
||||
const int lenm1 = tablelen - 1;
|
||||
const int lenm1div2 = lenm1 / 2;
|
||||
int i;
|
||||
|
||||
table[0] = 1.0f;
|
||||
for (i = 1; i < tablelen; i++) {
|
||||
const double kaiser = bessel(beta * sqrt(1.0 - pow(((i - lenm1) / 2.0) / lenm1div2, 2.0))) / bessel(beta);
|
||||
table[tablelen - i] = (float) kaiser;
|
||||
}
|
||||
|
||||
for (i = 1; i < tablelen; i++) {
|
||||
const float x = (((float) i) / ((float) RESAMPLER_SAMPLES_PER_ZERO_CROSSING)) * ((float) M_PI);
|
||||
table[i] *= sinf(x) / x;
|
||||
diffs[i - 1] = table[i] - table[i - 1];
|
||||
}
|
||||
diffs[lenm1] = 0.0f;
|
||||
}
|
||||
|
||||
|
||||
static float ResamplerFilter[RESAMPLER_FILTER_SIZE];
|
||||
static float ResamplerFilterDifference[RESAMPLER_FILTER_SIZE];
|
||||
|
||||
static void
|
||||
PrepareResampleFilter(void)
|
||||
{
|
||||
/* if dB > 50, beta=(0.1102 * (dB - 8.7)), according to Matlab. */
|
||||
const double dB = 80.0;
|
||||
const double beta = 0.1102 * (dB - 8.7);
|
||||
kaiser_and_sinc(ResamplerFilter, ResamplerFilterDifference, RESAMPLER_FILTER_SIZE, beta);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
PrepareResampleFilter();
|
||||
|
||||
printf(
|
||||
"/*\n"
|
||||
" Simple DirectMedia Layer\n"
|
||||
" Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>\n"
|
||||
"\n"
|
||||
" This software is provided 'as-is', without any express or implied\n"
|
||||
" warranty. In no event will the authors be held liable for any damages\n"
|
||||
" arising from the use of this software.\n"
|
||||
"\n"
|
||||
" Permission is granted to anyone to use this software for any purpose,\n"
|
||||
" including commercial applications, and to alter it and redistribute it\n"
|
||||
" freely, subject to the following restrictions:\n"
|
||||
"\n"
|
||||
" 1. The origin of this software must not be misrepresented; you must not\n"
|
||||
" claim that you wrote the original software. If you use this software\n"
|
||||
" in a product, an acknowledgment in the product documentation would be\n"
|
||||
" appreciated but is not required.\n"
|
||||
" 2. Altered source versions must be plainly marked as such, and must not be\n"
|
||||
" misrepresented as being the original software.\n"
|
||||
" 3. This notice may not be removed or altered from any source distribution.\n"
|
||||
"*/\n"
|
||||
"\n"
|
||||
"/* DO NOT EDIT, THIS FILE WAS GENERATED BY build-scripts/gen_audio_resampler_filter.c */\n"
|
||||
"\n"
|
||||
"#define RESAMPLER_ZERO_CROSSINGS %d\n"
|
||||
"#define RESAMPLER_BITS_PER_SAMPLE %d\n"
|
||||
"#define RESAMPLER_SAMPLES_PER_ZERO_CROSSING (1 << ((RESAMPLER_BITS_PER_SAMPLE / 2) + 1))\n"
|
||||
"#define RESAMPLER_FILTER_SIZE ((RESAMPLER_SAMPLES_PER_ZERO_CROSSING * RESAMPLER_ZERO_CROSSINGS) + 1)\n"
|
||||
"\n", RESAMPLER_ZERO_CROSSINGS, RESAMPLER_BITS_PER_SAMPLE
|
||||
);
|
||||
|
||||
printf("static const float ResamplerFilter[RESAMPLER_FILTER_SIZE] = {\n");
|
||||
printf(" %.9ff", ResamplerFilter[0]);
|
||||
for (i = 0; i < RESAMPLER_FILTER_SIZE-1; i++) {
|
||||
printf("%s%.9ff", ((i % 5) == 4) ? ",\n " : ", ", ResamplerFilter[i+1]);
|
||||
}
|
||||
printf("\n};\n\n");
|
||||
|
||||
printf("static const float ResamplerFilterDifference[RESAMPLER_FILTER_SIZE] = {\n");
|
||||
printf(" %.9ff", ResamplerFilterDifference[0]);
|
||||
for (i = 0; i < RESAMPLER_FILTER_SIZE-1; i++) {
|
||||
printf("%s%.9ff", ((i % 5) == 4) ? ",\n " : ", ", ResamplerFilterDifference[i+1]);
|
||||
}
|
||||
printf("\n};\n\n");
|
||||
printf("/* vi: set ts=4 sw=4 expandtab: */\n\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
find . -type f -exec grep -Il "Copyright" {} \; \
|
||||
| grep -v \.git \
|
||||
| while read file; \
|
||||
do \
|
||||
LC_ALL=C sed -b -i "s/\(.*Copyright.*\)[0-9]\{4\}\( *Sam Lantinga\)/\1`date +%Y`\2/" "$file"; \
|
||||
find . -type f -exec grep -Il "Copyright" {} \; \
|
||||
| grep -v \.git \
|
||||
| while read file; do \
|
||||
LC_ALL=C sed -b -i "s/\(.*Copyright.*\)[0-9]\{4\}\( *Sam Lantinga\)/\1`date +%Y`\2/" "$file"; \
|
||||
done
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
#
|
||||
|
||||
# Base version of SDL, used for packaging purposes
|
||||
$SDLVersion = "2.0.22"
|
||||
$SDLVersion = "2.23.0"
|
||||
|
||||
# Gets the .bat file that sets up an MSBuild environment, given one of
|
||||
# Visual Studio's, "PlatformToolset"s.
|
||||
|
|
|
@ -393,7 +393,7 @@ endmacro()
|
|||
# - HAVE_SDL_LOADSO opt
|
||||
macro(CheckX11)
|
||||
if(SDL_X11)
|
||||
foreach(_LIB X11 Xext Xcursor Xinerama Xi Xfixes Xrandr Xrender Xss Xxf86vm)
|
||||
foreach(_LIB X11 Xext Xcursor Xi Xfixes Xrandr Xrender Xss)
|
||||
FindLibraryAndSONAME("${_LIB}")
|
||||
endforeach()
|
||||
|
||||
|
@ -415,7 +415,6 @@ macro(CheckX11)
|
|||
endif()
|
||||
|
||||
check_include_file(X11/Xcursor/Xcursor.h HAVE_XCURSOR_H)
|
||||
check_include_file(X11/extensions/Xinerama.h HAVE_XINERAMA_H)
|
||||
check_include_file(X11/extensions/XInput2.h HAVE_XINPUT2_H)
|
||||
check_include_file(X11/extensions/Xrandr.h HAVE_XRANDR_H)
|
||||
check_include_file(X11/extensions/Xfixes.h HAVE_XFIXES_H_)
|
||||
|
@ -423,7 +422,6 @@ macro(CheckX11)
|
|||
check_include_file(X11/extensions/scrnsaver.h HAVE_XSS_H)
|
||||
check_include_file(X11/extensions/shape.h HAVE_XSHAPE_H)
|
||||
check_include_files("X11/Xlib.h;X11/extensions/Xdbe.h" HAVE_XDBE_H)
|
||||
check_include_files("X11/Xlib.h;X11/extensions/xf86vmode.h" HAVE_XF86VM_H)
|
||||
check_include_files("X11/Xlib.h;X11/Xproto.h;X11/extensions/Xext.h" HAVE_XEXT_H)
|
||||
|
||||
if(X11_LIB)
|
||||
|
@ -504,16 +502,6 @@ macro(CheckX11)
|
|||
set(SDL_VIDEO_DRIVER_X11_XDBE 1)
|
||||
endif()
|
||||
|
||||
if(SDL_X11_XINERAMA AND HAVE_XINERAMA_H)
|
||||
set(HAVE_X11_XINERAMA TRUE)
|
||||
if(HAVE_X11_SHARED AND XINERAMA_LIB)
|
||||
set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "\"${XINERAMA_LIB_SONAME}\"")
|
||||
else()
|
||||
list(APPEND EXTRA_LIBS ${XINERAMA_LIB})
|
||||
endif()
|
||||
set(SDL_VIDEO_DRIVER_X11_XINERAMA 1)
|
||||
endif()
|
||||
|
||||
if(SDL_X11_XINPUT AND HAVE_XINPUT2_H)
|
||||
set(HAVE_X11_XINPUT TRUE)
|
||||
if(HAVE_X11_SHARED AND XI_LIB)
|
||||
|
@ -584,16 +572,6 @@ macro(CheckX11)
|
|||
set(HAVE_X11_XSHAPE TRUE)
|
||||
endif()
|
||||
|
||||
if(SDL_X11_XVM AND HAVE_XF86VM_H)
|
||||
if(HAVE_X11_SHARED AND XXF86VM_LIB)
|
||||
set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "\"${XXF86VM_LIB_SONAME}\"")
|
||||
else()
|
||||
list(APPEND EXTRA_LIBS ${XXF86VM_LIB})
|
||||
endif()
|
||||
set(SDL_VIDEO_DRIVER_X11_XVIDMODE 1)
|
||||
set(HAVE_X11_XVM TRUE)
|
||||
endif()
|
||||
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -878,13 +878,11 @@ with_x
|
|||
enable_x11_shared
|
||||
enable_video_x11_xcursor
|
||||
enable_video_x11_xdbe
|
||||
enable_video_x11_xinerama
|
||||
enable_video_x11_xinput
|
||||
enable_video_x11_xfixes
|
||||
enable_video_x11_xrandr
|
||||
enable_video_x11_scrnsaver
|
||||
enable_video_x11_xshape
|
||||
enable_video_x11_vm
|
||||
enable_video_vivante
|
||||
enable_video_cocoa
|
||||
enable_video_metal
|
||||
|
@ -1668,8 +1666,6 @@ Optional Features:
|
|||
--enable-video-x11-xcursor
|
||||
enable X11 Xcursor support [default=yes]
|
||||
--enable-video-x11-xdbe enable X11 Xdbe support [default=yes]
|
||||
--enable-video-x11-xinerama
|
||||
enable X11 Xinerama support [default=yes]
|
||||
--enable-video-x11-xinput
|
||||
enable X11 XInput extension for manymouse, tablets,
|
||||
etc [default=yes]
|
||||
|
@ -1682,7 +1678,6 @@ Optional Features:
|
|||
enable X11 screensaver extension [default=yes]
|
||||
--enable-video-x11-xshape
|
||||
enable X11 XShape support [default=yes]
|
||||
--enable-video-x11-vm use X11 VM extension for fullscreen [default=yes]
|
||||
--enable-video-vivante use Vivante EGL video driver [default=yes]
|
||||
--enable-video-cocoa use Cocoa video driver [default=yes]
|
||||
--enable-video-metal include Metal support [default=yes]
|
||||
|
@ -2854,23 +2849,22 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
|
|||
|
||||
orig_CFLAGS="$CFLAGS"
|
||||
|
||||
#
|
||||
# Making releases:
|
||||
# Edit include/SDL_version.h and change the version, then:
|
||||
# SDL_MICRO_VERSION += 1;
|
||||
# SDL_INTERFACE_AGE += 1;
|
||||
# SDL_BINARY_AGE += 1;
|
||||
# if any functions have been added, set SDL_INTERFACE_AGE to 0.
|
||||
# if backwards compatibility has been broken,
|
||||
# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
|
||||
#
|
||||
# See docs/release_checklist.md
|
||||
SDL_MAJOR_VERSION=2
|
||||
SDL_MINOR_VERSION=0
|
||||
SDL_MICRO_VERSION=22
|
||||
SDL_INTERFACE_AGE=0
|
||||
SDL_BINARY_AGE=22
|
||||
SDL_MINOR_VERSION=23
|
||||
SDL_MICRO_VERSION=0
|
||||
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
|
||||
|
||||
SDL_BINARY_AGE=`expr $SDL_MINOR_VERSION \* 100 + $SDL_MICRO_VERSION`
|
||||
case "$SDL_MINOR_VERSION" in #(
|
||||
*[02468]) :
|
||||
SDL_INTERFACE_AGE="$SDL_MICRO_VERSION" ;; #(
|
||||
*) :
|
||||
SDL_INTERFACE_AGE=0 ;; #(
|
||||
*) :
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -12259,10 +12253,17 @@ CC=$lt_save_CC
|
|||
CFLAGS=$lt_save_CFLAGS
|
||||
|
||||
|
||||
LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION
|
||||
LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE`
|
||||
LT_REVISION=$SDL_INTERFACE_AGE
|
||||
# For historical reasons, the library name redundantly includes the major
|
||||
# version twice: libSDL2-2.0.so.0.
|
||||
# TODO: in SDL 3, stop using -release, which will simplify it to libSDL3.so.0
|
||||
LT_RELEASE=2.0
|
||||
# Increment this if there is an incompatible change - but if that happens,
|
||||
# we should rename the library from SDL2 to SDL3, at which point this would
|
||||
# reset to 0 anyway.
|
||||
LT_MAJOR=0
|
||||
LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE`
|
||||
LT_CURRENT=`expr $LT_MAJOR + $LT_AGE`
|
||||
LT_REVISION=$SDL_INTERFACE_AGE
|
||||
|
||||
|
||||
|
||||
|
@ -16968,6 +16969,22 @@ $as_echo "#define SDL_DEFAULT_ASSERT_LEVEL 3" >>confdefs.h
|
|||
;;
|
||||
esac
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define SDL_BUILD_MAJOR_VERSION $SDL_MAJOR_VERSION
|
||||
_ACEOF
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define SDL_BUILD_MINOR_VERSION $SDL_MINOR_VERSION
|
||||
_ACEOF
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define SDL_BUILD_MICRO_VERSION $SDL_MICRO_VERSION
|
||||
_ACEOF
|
||||
|
||||
|
||||
# Check whether --enable-dependency-tracking was given.
|
||||
if test "${enable_dependency_tracking+set}" = set; then :
|
||||
enableval=$enable_dependency_tracking;
|
||||
|
@ -17717,7 +17734,7 @@ fi
|
|||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
fi
|
||||
|
||||
for ac_func in malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove wcslen wcslcpy wcslcat _wcsdup wcsdup wcsstr wcscmp wcsncmp wcscasecmp _wcsicmp wcsncasecmp _wcsnicmp strlen strlcpy strlcat _strrev _strupr _strlwr index rindex strchr strrchr strstr strtok_r itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname getauxval elf_aux_info poll _Exit
|
||||
for ac_func in malloc calloc realloc free getenv setenv putenv unsetenv bsearch qsort abs bcopy memset memcpy memmove wcslen wcslcpy wcslcat _wcsdup wcsdup wcsstr wcscmp wcsncmp wcscasecmp _wcsicmp wcsncasecmp _wcsnicmp strlen strlcpy strlcat _strrev _strupr _strlwr index rindex strchr strrchr strstr strtok_r itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname getauxval elf_aux_info poll _Exit
|
||||
do :
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
||||
|
@ -18229,9 +18246,6 @@ if test x$enable_assembly = xyes; then
|
|||
SUMMARY_modules="${SUMMARY_modules} assembly"
|
||||
|
||||
|
||||
$as_echo "#define SDL_ASSEMBLY_ROUTINES 1" >>confdefs.h
|
||||
|
||||
|
||||
# Make sure that we don't generate floating point code that would
|
||||
# cause illegal instruction exceptions on older processors
|
||||
case "$host" in
|
||||
|
@ -20368,6 +20382,40 @@ $as_echo "#define SDL_ARM_NEON_BLITTERS 1" >>confdefs.h
|
|||
fi
|
||||
}
|
||||
|
||||
CheckObjectiveCARC()
|
||||
{
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang -fobjc-arc option" >&5
|
||||
$as_echo_n "checking for clang -fobjc-arc option... " >&6; }
|
||||
have_clang_objc_arc=no
|
||||
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$save_CFLAGS -fobjc-arc"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int x = 0;
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_compile "$LINENO"; then :
|
||||
have_clang_objc_arc=yes
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_clang_objc_arc" >&5
|
||||
$as_echo "$have_clang_objc_arc" >&6; }
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
if test x$have_clang_objc_arc = xyes; then
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS -fobjc-arc"
|
||||
fi
|
||||
}
|
||||
|
||||
CheckVisibilityHidden()
|
||||
{
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC -fvisibility=hidden option" >&5
|
||||
|
@ -21741,37 +21789,31 @@ fi
|
|||
x11_lib='/opt/X11/lib/libX11.6.dylib'
|
||||
x11ext_lib='/opt/X11/lib/libXext.6.dylib'
|
||||
xcursor_lib='/opt/X11/lib/libXcursor.1.dylib'
|
||||
xinerama_lib='/opt/X11/lib/libXinerama.1.dylib'
|
||||
xinput_lib='/opt/X11/lib/libXi.6.dylib'
|
||||
xfixes_lib='/opt/X11/lib/libXfixes.3.dylib'
|
||||
xrandr_lib='/opt/X11/lib/libXrandr.2.dylib'
|
||||
xrender_lib='/opt/X11/lib/libXrender.1.dylib'
|
||||
xss_lib='/opt/X11/lib/libXss.1.dylib'
|
||||
xvidmode_lib='/opt/X11/lib/libXxf86vm.1.dylib'
|
||||
;;
|
||||
*-*-openbsd*)
|
||||
x11_lib='libX11.so'
|
||||
x11ext_lib='libXext.so'
|
||||
xcursor_lib='libXcursor.so'
|
||||
xinerama_lib='libXinerama.so'
|
||||
xinput_lib='libXi.so'
|
||||
xfixes_lib='libXfixes.so'
|
||||
xrandr_lib='libXrandr.so'
|
||||
xrender_lib='libXrender.so'
|
||||
xss_lib='libXss.so'
|
||||
xvidmode_lib='libXxf86vm.so'
|
||||
;;
|
||||
*)
|
||||
x11_lib=`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
x11ext_lib=`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
xcursor_lib=`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
xinerama_lib=`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
xinput_lib=`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
xfixes_lib=`find_lib "libXfixes.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
xrandr_lib=`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
xrender_lib=`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
xss_lib=`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
xvidmode_lib=`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`
|
||||
;;
|
||||
esac
|
||||
|
||||
|
@ -22023,88 +22065,6 @@ $as_echo "#define SDL_VIDEO_DRIVER_X11_XDBE 1" >>confdefs.h
|
|||
SUMMARY_video_x11="${SUMMARY_video_x11} xdbe"
|
||||
fi
|
||||
fi
|
||||
# Check whether --enable-video-x11-xinerama was given.
|
||||
if test "${enable_video_x11_xinerama+set}" = set; then :
|
||||
enableval=$enable_video_x11_xinerama;
|
||||
else
|
||||
enable_video_x11_xinerama=yes
|
||||
fi
|
||||
|
||||
if test x$enable_video_x11_xinerama = xyes; then
|
||||
definitely_enable_video_x11_xinerama=no
|
||||
ac_fn_c_check_header_compile "$LINENO" "X11/extensions/Xinerama.h" "ac_cv_header_X11_extensions_Xinerama_h" "#include <X11/Xlib.h>
|
||||
|
||||
"
|
||||
if test "x$ac_cv_header_X11_extensions_Xinerama_h" = xyes; then :
|
||||
have_xinerama_h_hdr=yes
|
||||
else
|
||||
have_xinerama_h_hdr=no
|
||||
fi
|
||||
|
||||
|
||||
if test x$have_xinerama_h_hdr = xyes; then
|
||||
if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
|
||||
echo "-- dynamic libXinerama -> $xinerama_lib"
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "$xinerama_lib"
|
||||
_ACEOF
|
||||
|
||||
definitely_enable_video_x11_xinerama=yes
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XineramaQueryExtension in -lXinerama" >&5
|
||||
$as_echo_n "checking for XineramaQueryExtension in -lXinerama... " >&6; }
|
||||
if ${ac_cv_lib_Xinerama_XineramaQueryExtension+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lXinerama $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char XineramaQueryExtension ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return XineramaQueryExtension ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_Xinerama_XineramaQueryExtension=yes
|
||||
else
|
||||
ac_cv_lib_Xinerama_XineramaQueryExtension=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xinerama_XineramaQueryExtension" >&5
|
||||
$as_echo "$ac_cv_lib_Xinerama_XineramaQueryExtension" >&6; }
|
||||
if test "x$ac_cv_lib_Xinerama_XineramaQueryExtension" = xyes; then :
|
||||
have_xinerama_lib=yes
|
||||
fi
|
||||
|
||||
if test x$have_xinerama_lib = xyes ; then
|
||||
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
|
||||
definitely_enable_video_x11_xinerama=yes
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test x$definitely_enable_video_x11_xinerama = xyes; then
|
||||
|
||||
$as_echo "#define SDL_VIDEO_DRIVER_X11_XINERAMA 1" >>confdefs.h
|
||||
|
||||
SUMMARY_video_x11="${SUMMARY_video_x11} xinerama"
|
||||
fi
|
||||
# Check whether --enable-video-x11-xinput was given.
|
||||
if test "${enable_video_x11_xinput+set}" = set; then :
|
||||
enableval=$enable_video_x11_xinput;
|
||||
|
@ -22517,88 +22477,6 @@ $as_echo "#define SDL_VIDEO_DRIVER_X11_XSHAPE 1" >>confdefs.h
|
|||
SUMMARY_video_x11="${SUMMARY_video_x11} xshape"
|
||||
fi
|
||||
fi
|
||||
# Check whether --enable-video-x11-vm was given.
|
||||
if test "${enable_video_x11_vm+set}" = set; then :
|
||||
enableval=$enable_video_x11_vm;
|
||||
else
|
||||
enable_video_x11_vm=yes
|
||||
fi
|
||||
|
||||
if test x$enable_video_x11_vm = xyes; then
|
||||
definitely_enable_video_x11_vm=no
|
||||
ac_fn_c_check_header_compile "$LINENO" "X11/extensions/xf86vmode.h" "ac_cv_header_X11_extensions_xf86vmode_h" "#include <X11/Xlib.h>
|
||||
|
||||
"
|
||||
if test "x$ac_cv_header_X11_extensions_xf86vmode_h" = xyes; then :
|
||||
have_vm_h_hdr=yes
|
||||
else
|
||||
have_vm_h_hdr=no
|
||||
fi
|
||||
|
||||
|
||||
if test x$have_vm_h_hdr = xyes; then
|
||||
if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
|
||||
echo "-- dynamic libXxf86vm -> $xvidmode_lib"
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "$xvidmode_lib"
|
||||
_ACEOF
|
||||
|
||||
definitely_enable_video_x11_vm=yes
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XF86VidModeQueryVersion in -lXxf86vm" >&5
|
||||
$as_echo_n "checking for XF86VidModeQueryVersion in -lXxf86vm... " >&6; }
|
||||
if ${ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lXxf86vm $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char XF86VidModeQueryVersion ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return XF86VidModeQueryVersion ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion=yes
|
||||
else
|
||||
ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion" >&5
|
||||
$as_echo "$ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion" >&6; }
|
||||
if test "x$ac_cv_lib_Xxf86vm_XF86VidModeQueryVersion" = xyes; then :
|
||||
have_vm_lib=yes
|
||||
fi
|
||||
|
||||
if test x$have_vm_lib = xyes ; then
|
||||
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
|
||||
definitely_enable_video_x11_vm=yes
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test x$definitely_enable_video_x11_vm = xyes; then
|
||||
|
||||
$as_echo "#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1" >>confdefs.h
|
||||
|
||||
SUMMARY_video_x11="${SUMMARY_video_x11} xvidmode"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test x$have_x != xyes; then
|
||||
|
@ -26607,6 +26485,7 @@ $as_echo "#define SDL_VIDEO_RENDER_OGL_ES2 1" >>confdefs.h
|
|||
EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
|
||||
|
||||
CheckObjectiveCARC
|
||||
CheckVisibilityHidden
|
||||
CheckDeclarationAfterStatement
|
||||
CheckDummyVideo
|
||||
|
|
130
configure.ac
130
configure.ac
|
@ -10,23 +10,21 @@ dnl Save the CFLAGS to see whether they were passed in or generated
|
|||
orig_CFLAGS="$CFLAGS"
|
||||
|
||||
dnl Set various version strings - taken gratefully from the GTk sources
|
||||
#
|
||||
# Making releases:
|
||||
# Edit include/SDL_version.h and change the version, then:
|
||||
# SDL_MICRO_VERSION += 1;
|
||||
# SDL_INTERFACE_AGE += 1;
|
||||
# SDL_BINARY_AGE += 1;
|
||||
# if any functions have been added, set SDL_INTERFACE_AGE to 0.
|
||||
# if backwards compatibility has been broken,
|
||||
# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
|
||||
#
|
||||
# See docs/release_checklist.md
|
||||
SDL_MAJOR_VERSION=2
|
||||
SDL_MINOR_VERSION=0
|
||||
SDL_MICRO_VERSION=22
|
||||
SDL_INTERFACE_AGE=0
|
||||
SDL_BINARY_AGE=22
|
||||
SDL_MINOR_VERSION=23
|
||||
SDL_MICRO_VERSION=0
|
||||
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
|
||||
|
||||
SDL_BINARY_AGE=`expr $SDL_MINOR_VERSION \* 100 + $SDL_MICRO_VERSION`
|
||||
AS_CASE(["$SDL_MINOR_VERSION"],
|
||||
[*@<:@02468@:>@],
|
||||
dnl Stable branch, 2.24.1 -> libSDL2-2.0.so.0.2400.1
|
||||
[SDL_INTERFACE_AGE="$SDL_MICRO_VERSION"],
|
||||
[*],
|
||||
dnl Development branch, 2.23.1 -> libSDL2-2.0.so.0.2301.0
|
||||
[SDL_INTERFACE_AGE=0])
|
||||
|
||||
AC_SUBST(SDL_MAJOR_VERSION)
|
||||
AC_SUBST(SDL_MINOR_VERSION)
|
||||
AC_SUBST(SDL_MICRO_VERSION)
|
||||
|
@ -38,10 +36,17 @@ AC_SUBST(SDL_VERSION)
|
|||
LT_INIT([win32-dll])
|
||||
LT_LANG([Windows Resource])
|
||||
|
||||
LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION
|
||||
LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE`
|
||||
LT_REVISION=$SDL_INTERFACE_AGE
|
||||
# For historical reasons, the library name redundantly includes the major
|
||||
# version twice: libSDL2-2.0.so.0.
|
||||
# TODO: in SDL 3, stop using -release, which will simplify it to libSDL3.so.0
|
||||
LT_RELEASE=2.0
|
||||
# Increment this if there is an incompatible change - but if that happens,
|
||||
# we should rename the library from SDL2 to SDL3, at which point this would
|
||||
# reset to 0 anyway.
|
||||
LT_MAJOR=0
|
||||
LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE`
|
||||
LT_CURRENT=`expr $LT_MAJOR + $LT_AGE`
|
||||
LT_REVISION=$SDL_INTERFACE_AGE
|
||||
m4_pattern_allow([^LT_])
|
||||
|
||||
AC_SUBST(LT_RELEASE)
|
||||
|
@ -218,6 +223,10 @@ case "$enable_assertions" in
|
|||
;;
|
||||
esac
|
||||
|
||||
AC_DEFINE_UNQUOTED([SDL_BUILD_MAJOR_VERSION], $SDL_MAJOR_VERSION, [ ])
|
||||
AC_DEFINE_UNQUOTED([SDL_BUILD_MINOR_VERSION], $SDL_MINOR_VERSION, [ ])
|
||||
AC_DEFINE_UNQUOTED([SDL_BUILD_MICRO_VERSION], $SDL_MICRO_VERSION, [ ])
|
||||
|
||||
dnl See whether we can use gcc style dependency tracking
|
||||
AC_ARG_ENABLE(dependency-tracking,
|
||||
[AS_HELP_STRING([--enable-dependency-tracking],
|
||||
|
@ -337,7 +346,7 @@ dnl Checks for library functions.
|
|||
AC_DEFINE(HAVE_MPROTECT, 1, [ ])
|
||||
],[]),
|
||||
)
|
||||
AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove wcslen wcslcpy wcslcat _wcsdup wcsdup wcsstr wcscmp wcsncmp wcscasecmp _wcsicmp wcsncasecmp _wcsnicmp strlen strlcpy strlcat _strrev _strupr _strlwr index rindex strchr strrchr strstr strtok_r itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname getauxval elf_aux_info poll _Exit)
|
||||
AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv bsearch qsort abs bcopy memset memcpy memmove wcslen wcslcpy wcslcat _wcsdup wcsdup wcsstr wcscmp wcsncmp wcscasecmp _wcsicmp wcsncasecmp _wcsnicmp strlen strlcpy strlcat _strrev _strupr _strlwr index rindex strchr strrchr strstr strtok_r itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname getauxval elf_aux_info poll _Exit)
|
||||
|
||||
AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
|
||||
AC_CHECK_FUNCS(acos acosf asin asinf atan atanf atan2 atan2f ceil ceilf copysign copysignf cos cosf exp expf fabs fabsf floor floorf trunc truncf fmod fmodf log logf log10 log10f lround lroundf pow powf round roundf scalbn scalbnf sin sinf sqrt sqrtf tan tanf)
|
||||
|
@ -574,8 +583,6 @@ AC_ARG_ENABLE(assembly,
|
|||
if test x$enable_assembly = xyes; then
|
||||
SUMMARY_modules="${SUMMARY_modules} assembly"
|
||||
|
||||
AC_DEFINE(SDL_ASSEMBLY_ROUTINES, 1, [ ])
|
||||
|
||||
# Make sure that we don't generate floating point code that would
|
||||
# cause illegal instruction exceptions on older processors
|
||||
case "$host" in
|
||||
|
@ -1423,6 +1430,26 @@ CheckNEON()
|
|||
fi
|
||||
}
|
||||
|
||||
dnl See if clang's -fobjc-arc supported.
|
||||
dnl Reference: https://github.com/libsdl-org/SDL/pull/5632
|
||||
CheckObjectiveCARC()
|
||||
{
|
||||
AC_MSG_CHECKING(for clang -fobjc-arc option)
|
||||
have_clang_objc_arc=no
|
||||
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$save_CFLAGS -fobjc-arc"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
int x = 0;
|
||||
]],[])], [have_clang_objc_arc=yes],[])
|
||||
AC_MSG_RESULT($have_clang_objc_arc)
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
if test x$have_clang_objc_arc = xyes; then
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS -fobjc-arc"
|
||||
fi
|
||||
}
|
||||
|
||||
dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
|
||||
dnl Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
|
||||
CheckVisibilityHidden()
|
||||
|
@ -1768,37 +1795,31 @@ CheckX11()
|
|||
x11_lib='/opt/X11/lib/libX11.6.dylib'
|
||||
x11ext_lib='/opt/X11/lib/libXext.6.dylib'
|
||||
xcursor_lib='/opt/X11/lib/libXcursor.1.dylib'
|
||||
xinerama_lib='/opt/X11/lib/libXinerama.1.dylib'
|
||||
xinput_lib='/opt/X11/lib/libXi.6.dylib'
|
||||
xfixes_lib='/opt/X11/lib/libXfixes.3.dylib'
|
||||
xrandr_lib='/opt/X11/lib/libXrandr.2.dylib'
|
||||
xrender_lib='/opt/X11/lib/libXrender.1.dylib'
|
||||
xss_lib='/opt/X11/lib/libXss.1.dylib'
|
||||
xvidmode_lib='/opt/X11/lib/libXxf86vm.1.dylib'
|
||||
;;
|
||||
*-*-openbsd*)
|
||||
x11_lib='libX11.so'
|
||||
x11ext_lib='libXext.so'
|
||||
xcursor_lib='libXcursor.so'
|
||||
xinerama_lib='libXinerama.so'
|
||||
xinput_lib='libXi.so'
|
||||
xfixes_lib='libXfixes.so'
|
||||
xrandr_lib='libXrandr.so'
|
||||
xrender_lib='libXrender.so'
|
||||
xss_lib='libXss.so'
|
||||
xvidmode_lib='libXxf86vm.so'
|
||||
;;
|
||||
*)
|
||||
x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
|
||||
x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
|
||||
xcursor_lib=[`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
|
||||
xinerama_lib=[`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
|
||||
xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
|
||||
xfixes_lib=[`find_lib "libXfixes.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
|
||||
xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
|
||||
xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
|
||||
xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
|
||||
xvidmode_lib=[`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
|
||||
;;
|
||||
esac
|
||||
|
||||
|
@ -1910,34 +1931,6 @@ XFreeEventData(display, cookie);
|
|||
SUMMARY_video_x11="${SUMMARY_video_x11} xdbe"
|
||||
fi
|
||||
fi
|
||||
AC_ARG_ENABLE(video-x11-xinerama,
|
||||
[AS_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [default=yes]])],
|
||||
, enable_video_x11_xinerama=yes)
|
||||
if test x$enable_video_x11_xinerama = xyes; then
|
||||
definitely_enable_video_x11_xinerama=no
|
||||
AC_CHECK_HEADER(X11/extensions/Xinerama.h,
|
||||
have_xinerama_h_hdr=yes,
|
||||
have_xinerama_h_hdr=no,
|
||||
[#include <X11/Xlib.h>
|
||||
])
|
||||
if test x$have_xinerama_h_hdr = xyes; then
|
||||
if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
|
||||
echo "-- dynamic libXinerama -> $xinerama_lib"
|
||||
AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ])
|
||||
definitely_enable_video_x11_xinerama=yes
|
||||
else
|
||||
AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes)
|
||||
if test x$have_xinerama_lib = xyes ; then
|
||||
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
|
||||
definitely_enable_video_x11_xinerama=yes
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test x$definitely_enable_video_x11_xinerama = xyes; then
|
||||
AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ])
|
||||
SUMMARY_video_x11="${SUMMARY_video_x11} xinerama"
|
||||
fi
|
||||
AC_ARG_ENABLE(video-x11-xinput,
|
||||
[AS_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [default=yes]])],
|
||||
, enable_video_x11_xinput=yes)
|
||||
|
@ -2087,34 +2080,6 @@ dnl XRRScreenResources is only present in Xrandr >= 1.2, we use that
|
|||
SUMMARY_video_x11="${SUMMARY_video_x11} xshape"
|
||||
fi
|
||||
fi
|
||||
AC_ARG_ENABLE(video-x11-vm,
|
||||
[AS_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [default=yes]])],
|
||||
, enable_video_x11_vm=yes)
|
||||
if test x$enable_video_x11_vm = xyes; then
|
||||
definitely_enable_video_x11_vm=no
|
||||
AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
|
||||
have_vm_h_hdr=yes,
|
||||
have_vm_h_hdr=no,
|
||||
[#include <X11/Xlib.h>
|
||||
])
|
||||
if test x$have_vm_h_hdr = xyes; then
|
||||
if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
|
||||
echo "-- dynamic libXxf86vm -> $xvidmode_lib"
|
||||
AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ])
|
||||
definitely_enable_video_x11_vm=yes
|
||||
else
|
||||
AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes)
|
||||
if test x$have_vm_lib = xyes ; then
|
||||
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
|
||||
definitely_enable_video_x11_vm=yes
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test x$definitely_enable_video_x11_vm = xyes; then
|
||||
AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ])
|
||||
SUMMARY_video_x11="${SUMMARY_video_x11} xvidmode"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test x$have_x != xyes; then
|
||||
|
@ -4250,6 +4215,7 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
|
|||
EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
|
||||
EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
|
||||
|
||||
CheckObjectiveCARC
|
||||
CheckVisibilityHidden
|
||||
CheckDeclarationAfterStatement
|
||||
CheckDummyVideo
|
||||
|
|
|
@ -3,8 +3,8 @@ Linux
|
|||
|
||||
By default SDL will only link against glibc, the rest of the features will be
|
||||
enabled dynamically at runtime depending on the available features on the target
|
||||
system. So, for example if you built SDL with Xinerama support and the target
|
||||
system does not have the Xinerama libraries installed, it will be disabled
|
||||
system. So, for example if you built SDL with XRandR support and the target
|
||||
system does not have the XRandR libraries installed, it will be disabled
|
||||
at runtime, and you won't get a missing library error, at least with the
|
||||
default configuration parameters.
|
||||
|
||||
|
@ -17,7 +17,7 @@ Ubuntu 20.04, all available features enabled:
|
|||
sudo apt-get install build-essential git make cmake autoconf automake \
|
||||
libtool pkg-config libasound2-dev libpulse-dev libaudio-dev libjack-dev \
|
||||
libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev \
|
||||
libxinerama-dev libxxf86vm-dev libxss-dev libgl1-mesa-dev libdbus-1-dev \
|
||||
libxss-dev libgl1-mesa-dev libdbus-1-dev \
|
||||
libudev-dev libgles2-mesa-dev libegl1-mesa-dev libibus-1.0-dev \
|
||||
fcitx-libs-dev libsamplerate0-dev libsndio-dev libwayland-dev \
|
||||
libxkbcommon-dev libdrm-dev libgbm-dev
|
||||
|
@ -27,12 +27,11 @@ Fedora 35, all available features enabled:
|
|||
sudo yum install gcc git-core make cmake autoconf automake libtool \
|
||||
alsa-lib-devel pulseaudio-libs-devel nas-devel pipewire-devel \
|
||||
libX11-devel libXext-devel libXrandr-devel libXcursor-devel libXfixes-devel \
|
||||
libXi-devel libXinerama-devel libXxf86vm-devel libXScrnSaver-devel \
|
||||
dbus-devel ibus-devel fcitx-devel systemd-devel mesa-libGL-devel \
|
||||
libxkbcommon-devel mesa-libGLES-devel mesa-libEGL-devel vulkan-devel \
|
||||
wayland-devel wayland-protocols-devel libdrm-devel mesa-libgbm-devel \
|
||||
libusb-devel pipewire-jack-audio-connection-kit-devel libdecor-devel \
|
||||
libsamplerate-devel
|
||||
libXi-devel libXScrnSaver-devel dbus-devel ibus-devel fcitx-devel \
|
||||
systemd-devel mesa-libGL-devel libxkbcommon-devel mesa-libGLES-devel \
|
||||
mesa-libEGL-devel vulkan-devel wayland-devel wayland-protocols-devel \
|
||||
libdrm-devel mesa-libgbm-devel libusb-devel libdecor-devel \
|
||||
libsamplerate-devel pipewire-jack-audio-connection-kit-devel \
|
||||
|
||||
NOTES:
|
||||
- This includes all the audio targets except arts and esd, because Ubuntu
|
||||
|
|
|
@ -43,15 +43,14 @@ make
|
|||
sudo make install
|
||||
```
|
||||
|
||||
This script builds SDL with 10.6 ABI compatibility on 64-bit Intel and 11.0
|
||||
This script builds SDL with 10.7 ABI compatibility on 64-bit Intel and 11.0
|
||||
ABI compatibility on ARM64 architectures. For best compatibility you
|
||||
should compile your application the same way.
|
||||
|
||||
Please note that building SDL requires at least Xcode 4.6 and the 10.7 SDK
|
||||
(even if you target back to 10.6 systems). PowerPC support for Mac OS X has
|
||||
been officially dropped as of SDL 2.0.2. 32-bit Intel, using an older Xcode
|
||||
release, is still supported at the time of this writing, but current Xcode
|
||||
releases no longer support it, and eventually neither will SDL.
|
||||
Please note that building SDL requires at least Xcode 4.6 and the 10.7 SDK.
|
||||
PowerPC support for macOS has been officially dropped as of SDL 2.0.2.
|
||||
32-bit Intel and macOS 10.6 runtime support has been officially dropped as
|
||||
of SDL 2.24.0.
|
||||
|
||||
To use the library once it's built, you essential have two possibilities:
|
||||
use the traditional autoconf/automake/make method, or use Xcode.
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
Nokia N-Gage
|
||||
============
|
||||
|
||||
SDL2 port for Symbian S60v1 and v2 with a main focus on the Nokia N-Gage
|
||||
(Classic and QD) by [Michael Fitzmayer](https://github.com/mupfdev).
|
||||
|
||||
Compiling
|
||||
---------
|
||||
|
||||
SDL is part of the [N-Gage SDK.](https://github.com/ngagesdk) project.
|
||||
The library is included in the
|
||||
[toolchain](https://github.com/ngagesdk/ngage-toolchain) as a
|
||||
sub-module.
|
||||
|
||||
A complete example project based on SDL2 can be found in the GitHub
|
||||
account of the SDK: [Wordle](https://github.com/ngagesdk/wordle).
|
||||
|
||||
Current level of implementation
|
||||
-------------------------------
|
||||
|
||||
The video driver currently provides full screen video support with
|
||||
keyboard input.
|
||||
|
||||
At the moment only the software renderer works.
|
||||
|
||||
Audio is not yet implemented.
|
||||
|
||||
Acknowledgements
|
||||
----------------
|
||||
|
||||
Thanks to Hannu Viitala, Kimmo Kinnunen and Markus Mertama for the
|
||||
valuable insight into Symbian programming. Without the SDL 1.2 port
|
||||
which was specially developed for CDoom (Doom for the Nokia 9210), this
|
||||
adaptation would not have been possible.
|
||||
|
||||
I would like to thank my friends
|
||||
[Razvan](https://twitter.com/bewarerazvan) and [Dan
|
||||
Whelan](https://danwhelan.ie/), for their continuous support. Without
|
||||
you and the [N-Gage community](https://discord.gg/dbUzqJ26vs), I would
|
||||
have lost my patience long ago.
|
||||
|
||||
Last but not least, I would like to thank the development team of
|
||||
[EKA2L1](https://12z1.com/) (an experimental Symbian OS emulator). Your
|
||||
patience and support in troubleshooting helped me a lot.
|
|
@ -63,7 +63,7 @@ Now, before chrooting into the ARM sysroot, you'll need to apply a workaround,
|
|||
edit $SYSROOT/etc/ld.so.preload and comment out all lines in it.
|
||||
|
||||
sudo chroot $SYSROOT
|
||||
apt-get install libudev-dev libasound2-dev libdbus-1-dev libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev libxss-dev
|
||||
apt-get install libudev-dev libasound2-dev libdbus-1-dev libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxss-dev
|
||||
exit
|
||||
sudo umount $SYSROOT/dev
|
||||
sudo umount $SYSROOT/proc
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
# Versioning
|
||||
|
||||
## Since 2.23.0
|
||||
|
||||
SDL follows an "odd/even" versioning policy, similar to GLib, GTK, Flatpak
|
||||
and older versions of the Linux kernel:
|
||||
|
||||
* The major version (first part) increases when backwards compatibility
|
||||
is broken, which will happen infrequently.
|
||||
|
||||
* If the minor version (second part) is divisible by 2
|
||||
(for example 2.24.x, 2.26.x), this indicates a version of SDL that
|
||||
is believed to be stable and suitable for production use.
|
||||
|
||||
* In stable releases, the patchlevel or micro version (third part)
|
||||
indicates bugfix releases. Bugfix releases should not add or
|
||||
remove ABI, so the ".0" release (for example 2.24.0) should be
|
||||
forwards-compatible with all the bugfix releases from the
|
||||
same cycle (for example 2.24.1).
|
||||
|
||||
* The minor version increases when new API or ABI is added, or when
|
||||
other significant changes are made. Newer minor versions are
|
||||
backwards-compatible, but not fully forwards-compatible.
|
||||
For example, programs built against SDL 2.24.x should work fine
|
||||
with SDL 2.26.x, but programs built against SDL 2.26.x will not
|
||||
necessarily work with 2.24.x.
|
||||
|
||||
* If the minor version (second part) is not divisible by 2
|
||||
(for example 2.23.x, 2.25.x), this indicates a development prerelease
|
||||
of SDL that is not suitable for stable software distributions.
|
||||
Use with caution.
|
||||
|
||||
* The patchlevel or micro version (third part) increases with
|
||||
each prerelease.
|
||||
|
||||
* Each prerelease might add new API and/or ABI.
|
||||
|
||||
* Prereleases are backwards-compatible with older stable branches.
|
||||
For example, 2.25.x will be backwards-compatible with 2.24.x.
|
||||
|
||||
* Prereleases are not guaranteed to be backwards-compatible with
|
||||
each other. For example, new API or ABI added in 2.25.1
|
||||
might be removed or changed in 2.25.2.
|
||||
If this would be a problem for you, please do not use prereleases.
|
||||
|
||||
* Only upgrade to a prerelease if you can guarantee that you will
|
||||
promptly upgrade to the stable release that follows it.
|
||||
For example, do not upgrade to 2.23.x unless you will be able to
|
||||
upgrade to 2.24.0 when it becomes available.
|
||||
|
||||
* Software distributions that have a freeze policy (in particular Linux
|
||||
distributions with a release cycle, such as Debian and Fedora)
|
||||
should usually only package stable releases, and not prereleases.
|
||||
|
||||
## Before 2.23.0
|
||||
|
||||
Older versions of SDL followed a similar policy, but instead of the
|
||||
odd/even rule applying to the minor version, it applied to the patchlevel
|
||||
(micro version, third part). For example, 2.0.22 was a stable release
|
||||
and 2.0.21 was a prerelease.
|
|
@ -47,10 +47,12 @@ More documentation and FAQs are available online at [the wiki](http://wiki.libsd
|
|||
- [PSP](README-psp.md)
|
||||
- [Raspberry Pi](README-raspberrypi.md)
|
||||
- [Touch](README-touch.md)
|
||||
- [Versions](README-versions.md)
|
||||
- [WinCE](README-wince.md)
|
||||
- [Windows](README-windows.md)
|
||||
- [WinRT](README-winrt.md)
|
||||
- [PSVita](README-vita.md)
|
||||
- [Nokia N-Gage](README-ngage.md)
|
||||
|
||||
If you need help with the library, or just want to discuss SDL related
|
||||
issues, you can join the [SDL Discourse](https://discourse.libsdl.org/),
|
||||
|
|
|
@ -640,6 +640,7 @@ EXCLUDE = ../include/SDL_opengles2_gl2ext.h \
|
|||
../include/SDL_opengles.h \
|
||||
../include/SDL_opengl.h \
|
||||
../include/SDL_egl.h \
|
||||
./release_checklist.md \
|
||||
|
||||
|
||||
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
# Release checklist
|
||||
|
||||
## New feature release
|
||||
|
||||
* Update `WhatsNew.txt`
|
||||
|
||||
* Bump version number to 2.EVEN.0 in all these locations:
|
||||
|
||||
* `configure.ac`, `CMakeLists.txt`: `SDL_*_VERSION`
|
||||
* `Xcode/SDL/Info-Framework.plist`: `CFBundleShortVersionString`,
|
||||
`CFBundleVersion`
|
||||
* `Makefile.os2`: `VERSION`
|
||||
* `build-scripts/winrtbuild.ps1`: `$SDLVersion`
|
||||
* `include/SDL_version.h`: `SDL_*_VERSION`, `SDL_PATCHLEVEL`
|
||||
* `src/main/windows/version.rc`: `FILEVERSION`, `PRODUCTVERSION`,
|
||||
`FileVersion`, `ProductVersion`
|
||||
|
||||
* Bump ABI version information
|
||||
|
||||
* `CMakeLists.txt`, `Xcode/SDL/SDL.xcodeproj/project.pbxproj`:
|
||||
`DYLIB_CURRENT_VERSION`, `DYLIB_COMPATIBILITY_VERSION`
|
||||
* set first number in `DYLIB_CURRENT_VERSION` to
|
||||
(100 * *minor*) + 1
|
||||
* set second number in `DYLIB_CURRENT_VERSION` to 0
|
||||
* if backwards compatibility has been broken,
|
||||
increase `DYLIB_COMPATIBILITY_VERSION` (?)
|
||||
|
||||
* Run test/versioning.sh to verify that everything is consistent
|
||||
|
||||
* Regenerate `configure`
|
||||
|
||||
* Do the release
|
||||
|
||||
## New bugfix release
|
||||
|
||||
* Check that no new API/ABI was added
|
||||
|
||||
* If it was, do a new feature release (see above) instead
|
||||
|
||||
* Bump version number from 2.Y.Z to 2.Y.(Z+1) (Y is even)
|
||||
|
||||
* Same places as listed above
|
||||
|
||||
* Bump ABI version information
|
||||
|
||||
* `CMakeLists.txt`, `Xcode/SDL/SDL.xcodeproj/project.pbxproj`:
|
||||
`DYLIB_CURRENT_VERSION`, `DYLIB_COMPATIBILITY_VERSION`
|
||||
* set second number in `DYLIB_CURRENT_VERSION` to *patchlevel*
|
||||
|
||||
* Run test/versioning.sh to verify that everything is consistent
|
||||
|
||||
* Regenerate `configure`
|
||||
|
||||
* Do the release
|
||||
|
||||
## After a feature release
|
||||
|
||||
* Create a branch like `release-2.24.x`
|
||||
|
||||
* Bump version number to 2.ODD.0 for next development branch
|
||||
|
||||
* Same places as listed above
|
||||
|
||||
* Bump ABI version information
|
||||
|
||||
* Same places as listed above
|
||||
* Assume that the next feature release will contain new API/ABI
|
||||
|
||||
* Run test/versioning.sh to verify that everything is consistent
|
||||
|
||||
## New development prerelease
|
||||
|
||||
* Bump version number from 2.Y.Z to 2.Y.(Z+1) (Y is odd)
|
||||
|
||||
* Same places as listed above
|
||||
|
||||
* Bump ABI version information
|
||||
|
||||
* `CMakeLists.txt`, `Xcode/SDL/SDL.xcodeproj/project.pbxproj`:
|
||||
`DYLIB_CURRENT_VERSION`, `DYLIB_COMPATIBILITY_VERSION`
|
||||
* set first number in `DYLIB_CURRENT_VERSION` to
|
||||
(100 * *minor*) + *patchlevel* + 1
|
||||
* set second number in `DYLIB_CURRENT_VERSION` to 0
|
||||
* if backwards compatibility has been broken,
|
||||
increase `DYLIB_COMPATIBILITY_VERSION` (?)
|
||||
|
||||
* Run test/versioning.sh to verify that everything is consistent
|
||||
|
||||
* Regenerate `configure`
|
||||
|
||||
* Do the release
|
|
@ -43,6 +43,8 @@
|
|||
#include "SDL_config_os2.h"
|
||||
#elif defined(__EMSCRIPTEN__)
|
||||
#include "SDL_config_emscripten.h"
|
||||
#elif defined(__NGAGE__)
|
||||
#include "SDL_config_ngage.h"
|
||||
#else
|
||||
/* This is a minimal configuration just to get SDL running on new platforms. */
|
||||
#include "SDL_config_minimal.h"
|
||||
|
|
|
@ -88,6 +88,7 @@
|
|||
#cmakedefine HAVE_UNSETENV 1
|
||||
#endif
|
||||
#cmakedefine HAVE_QSORT 1
|
||||
#cmakedefine HAVE_BSEARCH 1
|
||||
#cmakedefine HAVE_ABS 1
|
||||
#cmakedefine HAVE_BCOPY 1
|
||||
#cmakedefine HAVE_MEMSET 1
|
||||
|
@ -424,22 +425,18 @@
|
|||
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC @SDL_VIDEO_DRIVER_X11_DYNAMIC@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT @SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR @SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA @SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 @SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES @SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR @SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS @SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE @SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_XCURSOR @SDL_VIDEO_DRIVER_X11_XCURSOR@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_XDBE @SDL_VIDEO_DRIVER_X11_XDBE@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_XINERAMA @SDL_VIDEO_DRIVER_X11_XINERAMA@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_XINPUT2 @SDL_VIDEO_DRIVER_X11_XINPUT2@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH @SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_XFIXES @SDL_VIDEO_DRIVER_X11_XFIXES@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_XRANDR @SDL_VIDEO_DRIVER_X11_XRANDR@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_XSCRNSAVER @SDL_VIDEO_DRIVER_X11_XSCRNSAVER@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_XSHAPE @SDL_VIDEO_DRIVER_X11_XSHAPE@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_XVIDMODE @SDL_VIDEO_DRIVER_X11_XVIDMODE@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS @SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM @SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM@
|
||||
#cmakedefine SDL_VIDEO_DRIVER_VITA @SDL_VIDEO_DRIVER_VITA@
|
||||
|
@ -508,7 +505,6 @@
|
|||
#cmakedefine SDL_LOCALE_DUMMY @SDL_LOCALE_DUMMY@
|
||||
|
||||
/* Enable assembly routines */
|
||||
#cmakedefine SDL_ASSEMBLY_ROUTINES @SDL_ASSEMBLY_ROUTINES@
|
||||
#cmakedefine SDL_ALTIVEC_BLITTERS @SDL_ALTIVEC_BLITTERS@
|
||||
#cmakedefine SDL_ARM_SIMD_BLITTERS @SDL_ARM_SIMD_BLITTERS@
|
||||
#cmakedefine SDL_ARM_NEON_BLITTERS @SDL_ARM_NEON_BLITTERS@
|
||||
|
|
|
@ -92,6 +92,7 @@
|
|||
#undef HAVE_UNSETENV
|
||||
#endif
|
||||
#undef HAVE_QSORT
|
||||
#undef HAVE_BSEARCH
|
||||
#undef HAVE_ABS
|
||||
#undef HAVE_BCOPY
|
||||
#undef HAVE_MEMSET
|
||||
|
@ -390,22 +391,18 @@
|
|||
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC
|
||||
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
|
||||
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR
|
||||
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA
|
||||
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2
|
||||
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES
|
||||
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR
|
||||
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS
|
||||
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE
|
||||
#undef SDL_VIDEO_DRIVER_X11_XCURSOR
|
||||
#undef SDL_VIDEO_DRIVER_X11_XDBE
|
||||
#undef SDL_VIDEO_DRIVER_X11_XINERAMA
|
||||
#undef SDL_VIDEO_DRIVER_X11_XINPUT2
|
||||
#undef SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH
|
||||
#undef SDL_VIDEO_DRIVER_X11_XFIXES
|
||||
#undef SDL_VIDEO_DRIVER_X11_XRANDR
|
||||
#undef SDL_VIDEO_DRIVER_X11_XSCRNSAVER
|
||||
#undef SDL_VIDEO_DRIVER_X11_XSHAPE
|
||||
#undef SDL_VIDEO_DRIVER_X11_XVIDMODE
|
||||
#undef SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS
|
||||
#undef SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM
|
||||
#undef SDL_VIDEO_DRIVER_NACL
|
||||
|
@ -474,7 +471,6 @@
|
|||
#undef SDL_LOCALE_DUMMY
|
||||
|
||||
/* Enable assembly routines */
|
||||
#undef SDL_ASSEMBLY_ROUTINES
|
||||
#undef SDL_ALTIVEC_BLITTERS
|
||||
#undef SDL_ARM_SIMD_BLITTERS
|
||||
#undef SDL_ARM_NEON_BLITTERS
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
#define HAVE_SETENV 1
|
||||
#define HAVE_UNSETENV 1
|
||||
#define HAVE_QSORT 1
|
||||
#define HAVE_BSEARCH 1
|
||||
#define HAVE_ABS 1
|
||||
#define HAVE_BCOPY 1
|
||||
#define HAVE_MEMSET 1
|
||||
|
|
|
@ -69,6 +69,7 @@
|
|||
#define HAVE_PUTENV 1
|
||||
#define HAVE_UNSETENV 1
|
||||
#define HAVE_QSORT 1
|
||||
#define HAVE_BSEARCH 1
|
||||
#define HAVE_ABS 1
|
||||
#define HAVE_BCOPY 1
|
||||
#define HAVE_MEMSET 1
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
#define HAVE_SETENV 1
|
||||
#define HAVE_UNSETENV 1
|
||||
#define HAVE_QSORT 1
|
||||
#define HAVE_BSEARCH 1
|
||||
#define HAVE_ABS 1
|
||||
#define HAVE_BCOPY 1
|
||||
#define HAVE_MEMSET 1
|
||||
|
@ -117,7 +118,7 @@
|
|||
#define HAVE_LROUNDF 1
|
||||
#define HAVE_POW 1
|
||||
#define HAVE_POWF 1
|
||||
#define HAVE_ROUND 1
|
||||
#define HAVE_ROUND 1
|
||||
#define HAVE_ROUNDF 1
|
||||
#define HAVE_SCALBN 1
|
||||
#define HAVE_SCALBNF 1
|
||||
|
|
|
@ -63,6 +63,7 @@
|
|||
#define HAVE_PUTENV 1
|
||||
#define HAVE_UNSETENV 1
|
||||
#define HAVE_QSORT 1
|
||||
#define HAVE_BSEARCH 1
|
||||
#define HAVE_ABS 1
|
||||
#define HAVE_BCOPY 1
|
||||
#define HAVE_MEMSET 1
|
||||
|
@ -120,7 +121,7 @@
|
|||
#define HAVE_LROUNDF 1
|
||||
#define HAVE_POW 1
|
||||
#define HAVE_POWF 1
|
||||
#define HAVE_ROUND 1
|
||||
#define HAVE_ROUND 1
|
||||
#define HAVE_ROUNDF 1
|
||||
#define HAVE_SCALBN 1
|
||||
#define HAVE_SCALBNF 1
|
||||
|
@ -185,17 +186,13 @@
|
|||
#undef SDL_VIDEO_DRIVER_X11
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/opt/X11/lib/libX11.6.dylib"
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/opt/X11/lib/libXext.6.dylib"
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "/opt/X11/lib/libXinerama.1.dylib"
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/opt/X11/lib/libXi.6.dylib"
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/opt/X11/lib/libXrandr.2.dylib"
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/opt/X11/lib/libXss.1.dylib"
|
||||
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "/opt/X11/lib/libXxf86vm.1.dylib"
|
||||
#define SDL_VIDEO_DRIVER_X11_XDBE 1
|
||||
#define SDL_VIDEO_DRIVER_X11_XINERAMA 1
|
||||
#define SDL_VIDEO_DRIVER_X11_XRANDR 1
|
||||
#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1
|
||||
#define SDL_VIDEO_DRIVER_X11_XSHAPE 1
|
||||
#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1
|
||||
#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1
|
||||
|
||||
#ifdef MAC_OS_X_VERSION_10_8
|
||||
|
@ -272,7 +269,6 @@
|
|||
#define SDL_FILESYSTEM_COCOA 1
|
||||
|
||||
/* Enable assembly routines */
|
||||
#define SDL_ASSEMBLY_ROUTINES 1
|
||||
#ifdef __ppc__
|
||||
#define SDL_ALTIVEC_BLITTERS 1
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
/*
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2022 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, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#ifndef SDL_config_ngage_h_
|
||||
#define SDL_config_ngage_h_
|
||||
#define SDL_config_h_
|
||||
|
||||
#include "SDL_platform.h"
|
||||
|
||||
typedef signed char int8_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef signed short int16_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef signed long long int64_t;
|
||||
typedef unsigned long long uint64_t;
|
||||
typedef unsigned long uintptr_t;
|
||||
|
||||
#define HAVE_STDARG_H 1
|
||||
#define HAVE_STDDEF_H 1
|
||||
#define HAVE_STDIO_H 1
|
||||
#define HAVE_STDLIB_H 1
|
||||
#define HAVE_MATH_H 1
|
||||
#define HAVE_CEIL 1
|
||||
#define HAVE_COPYSIGN 1
|
||||
#define HAVE_COS 1
|
||||
#define HAVE_EXP 1
|
||||
#define HAVE_FABS 1
|
||||
#define HAVE_FLOOR 1
|
||||
#define HAVE_LOG 1
|
||||
#define HAVE_LOG10 1
|
||||
#define HAVE_SCALBN 1
|
||||
#define HAVE_SIN 1
|
||||
#define HAVE_SQRT 1
|
||||
#define HAVE_TAN 1
|
||||
#define HAVE_MALLOC 1
|
||||
#define SDL_MAIN_NEEDED 1
|
||||
#define LACKS_SYS_MMAN_H 1
|
||||
|
||||
/* Enable the N-Gage thread support (src/thread/ngage/\*.c) */
|
||||
#define SDL_THREAD_NGAGE 1
|
||||
|
||||
/* Enable the N-Gage timer support (src/timer/ngage/\*.c) */
|
||||
#define SDL_TIMER_NGAGE 1
|
||||
|
||||
/* Enable the N-Gage video driver (src/video/ngage/\*.c) */
|
||||
#define SDL_VIDEO_DRIVER_NGAGE 1
|
||||
|
||||
/* Enable the dummy audio driver (src/audio/dummy/\*.c) */
|
||||
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||
|
||||
/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */
|
||||
#define SDL_JOYSTICK_DISABLED 1
|
||||
|
||||
/* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
|
||||
#define SDL_HAPTIC_DISABLED 1
|
||||
|
||||
/* Enable the stub HIDAPI */
|
||||
#define SDL_HIDAPI_DISABLED 1
|
||||
|
||||
/* Enable the stub sensor driver (src/sensor/dummy/\*.c) */
|
||||
#define SDL_SENSOR_DISABLED 1
|
||||
|
||||
/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */
|
||||
#define SDL_LOADSO_DISABLED 1
|
||||
|
||||
/* Enable the dummy filesystem driver (src/filesystem/dummy/\*.c) */
|
||||
#define SDL_FILESYSTEM_DUMMY 1
|
||||
|
||||
#endif /* SDL_config_ngage_h_ */
|
|
@ -56,9 +56,6 @@
|
|||
#define SDL_TIMER_OS2 1
|
||||
#define SDL_FILESYSTEM_OS2 1
|
||||
|
||||
/* Enable assembly routines */
|
||||
#define SDL_ASSEMBLY_ROUTINES 1
|
||||
|
||||
/* use libsamplerate for audio rate conversion. */
|
||||
/*#define HAVE_LIBSAMPLERATE_H 1 */
|
||||
|
||||
|
@ -105,7 +102,11 @@
|
|||
#define HAVE_GETENV 1
|
||||
#define HAVE_SETENV 1
|
||||
#define HAVE_PUTENV 1
|
||||
/* OpenWatcom requires specific calling conventions for qsort and bsearch */
|
||||
#ifndef __WATCOMC__
|
||||
#define HAVE_QSORT 1
|
||||
#define HAVE_BSEARCH 1
|
||||
#endif
|
||||
#define HAVE_ABS 1
|
||||
#define HAVE_BCOPY 1
|
||||
#define HAVE_MEMSET 1
|
||||
|
|
|
@ -65,6 +65,7 @@
|
|||
#define HAVE_PUTENV 1
|
||||
#define HAVE_UNSETENV 1
|
||||
#define HAVE_QSORT 1
|
||||
#define HAVE_BSEARCH 1
|
||||
#define HAVE_ABS 1
|
||||
#define HAVE_BCOPY 1
|
||||
#define HAVE_MEMSET 1
|
||||
|
|
|
@ -97,6 +97,7 @@ typedef unsigned int uintptr_t;
|
|||
#define HAVE_DDRAW_H 1
|
||||
#define HAVE_DINPUT_H 1
|
||||
#define HAVE_DSOUND_H 1
|
||||
#ifndef __WATCOMC__
|
||||
#define HAVE_DXGI_H 1
|
||||
#define HAVE_XINPUT_H 1
|
||||
#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0A00 /* Windows 10 SDK */
|
||||
|
@ -110,6 +111,7 @@ typedef unsigned int uintptr_t;
|
|||
#define HAVE_AUDIOCLIENT_H 1
|
||||
#define HAVE_TPCSHRD_H 1
|
||||
#define HAVE_SENSORSAPI_H 1
|
||||
#endif
|
||||
#if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600)
|
||||
#define HAVE_IMMINTRIN_H 1
|
||||
#elif defined(__has_include) && (defined(__i386__) || defined(__x86_64))
|
||||
|
@ -136,7 +138,11 @@ typedef unsigned int uintptr_t;
|
|||
#define HAVE_REALLOC 1
|
||||
#define HAVE_FREE 1
|
||||
#define HAVE_ALLOCA 1
|
||||
/* OpenWatcom requires specific calling conventions for qsort and bsearch */
|
||||
#ifndef __WATCOMC__
|
||||
#define HAVE_QSORT 1
|
||||
#define HAVE_BSEARCH 1
|
||||
#endif
|
||||
#define HAVE_ABS 1
|
||||
#define HAVE_MEMSET 1
|
||||
#define HAVE_MEMCPY 1
|
||||
|
@ -167,37 +173,40 @@ typedef unsigned int uintptr_t;
|
|||
#define HAVE__WCSNICMP 1
|
||||
#define HAVE__WCSDUP 1
|
||||
#define HAVE_ACOS 1
|
||||
#define HAVE_ACOSF 1
|
||||
#define HAVE_ASIN 1
|
||||
#define HAVE_ASINF 1
|
||||
#define HAVE_ATAN 1
|
||||
#define HAVE_ATANF 1
|
||||
#define HAVE_ATAN2 1
|
||||
#define HAVE_CEIL 1
|
||||
#define HAVE_COS 1
|
||||
#define HAVE_EXP 1
|
||||
#define HAVE_FABS 1
|
||||
#define HAVE_FLOOR 1
|
||||
#define HAVE_FMOD 1
|
||||
#define HAVE_LOG 1
|
||||
#define HAVE_LOG10 1
|
||||
#define HAVE_POW 1
|
||||
#define HAVE_SIN 1
|
||||
#define HAVE_SQRT 1
|
||||
#define HAVE_TAN 1
|
||||
#ifndef __WATCOMC__
|
||||
#define HAVE_ACOSF 1
|
||||
#define HAVE_ASINF 1
|
||||
#define HAVE_ATANF 1
|
||||
#define HAVE_ATAN2F 1
|
||||
#define HAVE_CEILF 1
|
||||
#define HAVE__COPYSIGN 1
|
||||
#define HAVE_COS 1
|
||||
#define HAVE_COSF 1
|
||||
#define HAVE_EXP 1
|
||||
#define HAVE_EXPF 1
|
||||
#define HAVE_FABS 1
|
||||
#define HAVE_FABSF 1
|
||||
#define HAVE_FLOOR 1
|
||||
#define HAVE_FLOORF 1
|
||||
#define HAVE_FMOD 1
|
||||
#define HAVE_FMODF 1
|
||||
#define HAVE_LOG 1
|
||||
#define HAVE_LOGF 1
|
||||
#define HAVE_LOG10 1
|
||||
#define HAVE_LOG10F 1
|
||||
#define HAVE_POW 1
|
||||
#define HAVE_POWF 1
|
||||
#define HAVE_SIN 1
|
||||
#define HAVE_SINF 1
|
||||
#define HAVE_SQRT 1
|
||||
#define HAVE_SQRTF 1
|
||||
#define HAVE_TAN 1
|
||||
#define HAVE_TANF 1
|
||||
#endif
|
||||
#if defined(_MSC_VER)
|
||||
/* These functions were added with the VC++ 2013 C runtime library */
|
||||
#if _MSC_VER >= 1800
|
||||
|
@ -217,8 +226,18 @@ typedef unsigned int uintptr_t;
|
|||
#if _MSC_VER >= 1400
|
||||
#define HAVE__FSEEKI64 1
|
||||
#endif
|
||||
#ifdef _USE_MATH_DEFINES
|
||||
#define HAVE_M_PI 1
|
||||
#endif
|
||||
#if !defined(_MSC_VER) || defined(_USE_MATH_DEFINES)
|
||||
#elif defined(__WATCOMC__)
|
||||
#define HAVE__FSEEKI64 1
|
||||
#define HAVE_STRTOLL 1
|
||||
#define HAVE_STRTOULL 1
|
||||
#define HAVE_VSSCANF 1
|
||||
#define HAVE_ROUND 1
|
||||
#define HAVE_SCALBN 1
|
||||
#define HAVE_TRUNC 1
|
||||
#else
|
||||
#define HAVE_M_PI 1
|
||||
#endif
|
||||
#else
|
||||
|
@ -227,7 +246,9 @@ typedef unsigned int uintptr_t;
|
|||
#endif
|
||||
|
||||
/* Enable various audio drivers */
|
||||
#if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H)
|
||||
#define SDL_AUDIO_DRIVER_WASAPI 1
|
||||
#endif
|
||||
#define SDL_AUDIO_DRIVER_DSOUND 1
|
||||
#define SDL_AUDIO_DRIVER_WINMM 1
|
||||
#define SDL_AUDIO_DRIVER_DISK 1
|
||||
|
@ -248,7 +269,11 @@ typedef unsigned int uintptr_t;
|
|||
#define SDL_HAPTIC_XINPUT 1
|
||||
|
||||
/* Enable the sensor driver */
|
||||
#ifdef HAVE_SENSORSAPI_H
|
||||
#define SDL_SENSOR_WINDOWS 1
|
||||
#else
|
||||
#define SDL_SENSOR_DUMMY 1
|
||||
#endif
|
||||
|
||||
/* Enable various shared object loading systems */
|
||||
#define SDL_LOADSO_WINDOWS 1
|
||||
|
@ -300,11 +325,6 @@ typedef unsigned int uintptr_t;
|
|||
/* Enable filesystem support */
|
||||
#define SDL_FILESYSTEM_WINDOWS 1
|
||||
|
||||
/* Enable assembly routines (Win64 doesn't have inline asm) */
|
||||
#ifndef _WIN64
|
||||
#define SDL_ASSEMBLY_ROUTINES 1
|
||||
#endif
|
||||
|
||||
#endif /* SDL_config_windows_h_ */
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -123,6 +123,7 @@ typedef unsigned int uintptr_t;
|
|||
#define HAVE_FREE 1
|
||||
#define HAVE_ALLOCA 1
|
||||
#define HAVE_QSORT 1
|
||||
#define HAVE_BSEARCH 1
|
||||
#define HAVE_ABS 1
|
||||
#define HAVE_MEMSET 1
|
||||
#define HAVE_MEMCPY 1
|
||||
|
@ -256,9 +257,4 @@ typedef unsigned int uintptr_t;
|
|||
/* Enable system power support */
|
||||
#define SDL_POWER_WINRT 1
|
||||
|
||||
/* Enable assembly routines (Win64 doesn't have inline asm) */
|
||||
#ifndef _WIN64
|
||||
#define SDL_ASSEMBLY_ROUTINES 1
|
||||
#endif
|
||||
|
||||
#endif /* SDL_config_winrt_h_ */
|
||||
|
|
|
@ -494,7 +494,7 @@ extern DECLSPEC size_t SDLCALL SDL_SIMDGetAlignment(void);
|
|||
*
|
||||
* \since This function is available since SDL 2.0.10.
|
||||
*
|
||||
* \sa SDL_SIMDAlignment
|
||||
* \sa SDL_SIMDGetAlignment
|
||||
* \sa SDL_SIMDRealloc
|
||||
* \sa SDL_SIMDFree
|
||||
*/
|
||||
|
@ -518,7 +518,7 @@ extern DECLSPEC void * SDLCALL SDL_SIMDAlloc(const size_t len);
|
|||
*
|
||||
* \since This function is available since SDL 2.0.14.
|
||||
*
|
||||
* \sa SDL_SIMDAlignment
|
||||
* \sa SDL_SIMDGetAlignment
|
||||
* \sa SDL_SIMDAlloc
|
||||
* \sa SDL_SIMDFree
|
||||
*/
|
||||
|
|
|
@ -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++ */
|
||||
|
|
|
@ -118,6 +118,7 @@ typedef enum
|
|||
SDL_JOYBUTTONUP, /**< Joystick button released */
|
||||
SDL_JOYDEVICEADDED, /**< A new joystick has been inserted into the system */
|
||||
SDL_JOYDEVICEREMOVED, /**< An opened joystick has been removed */
|
||||
SDL_JOYBATTERYUPDATED, /**< Joystick battery level change */
|
||||
|
||||
/* Game controller events */
|
||||
SDL_CONTROLLERAXISMOTION = 0x650, /**< Game controller axis motion */
|
||||
|
@ -395,6 +396,16 @@ typedef struct SDL_JoyDeviceEvent
|
|||
Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED event */
|
||||
} SDL_JoyDeviceEvent;
|
||||
|
||||
/**
|
||||
* \brief Joysick battery level change event structure (event.jbattery.*)
|
||||
*/
|
||||
typedef struct SDL_JoyBatteryEvent
|
||||
{
|
||||
Uint32 type; /**< ::SDL_JOYBATTERYUPDATED */
|
||||
Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */
|
||||
SDL_JoystickID which; /**< The joystick instance id */
|
||||
SDL_JoystickPowerLevel level; /**< The joystick battery level */
|
||||
} SDL_JoyBatteryEvent;
|
||||
|
||||
/**
|
||||
* \brief Game controller axis motion event structure (event.caxis.*)
|
||||
|
@ -625,6 +636,7 @@ typedef union SDL_Event
|
|||
SDL_JoyHatEvent jhat; /**< Joystick hat event data */
|
||||
SDL_JoyButtonEvent jbutton; /**< Joystick button event data */
|
||||
SDL_JoyDeviceEvent jdevice; /**< Joystick device change event data */
|
||||
SDL_JoyBatteryEvent jbattery; /**< Joystick battery event data */
|
||||
SDL_ControllerAxisEvent caxis; /**< Game Controller axis event data */
|
||||
SDL_ControllerButtonEvent cbutton; /**< Game Controller button event data */
|
||||
SDL_ControllerDeviceEvent cdevice; /**< Game Controller device event data */
|
||||
|
|
|
@ -289,6 +289,25 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index);
|
|||
*/
|
||||
extern DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index);
|
||||
|
||||
/**
|
||||
* Get the implementation dependent path for the game controller.
|
||||
*
|
||||
* This function can be called before any controllers are opened.
|
||||
*
|
||||
* `joystick_index` is the same as the `device_index` passed to
|
||||
* SDL_JoystickOpen().
|
||||
*
|
||||
* \param joystick_index the device_index of a device, from zero to
|
||||
* SDL_NumJoysticks()-1
|
||||
* \returns the implementation-dependent path for the game controller, or NULL
|
||||
* if there is no path or the index is invalid.
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0.
|
||||
*
|
||||
* \sa SDL_GameControllerPath
|
||||
*/
|
||||
extern DECLSPEC const char *SDLCALL SDL_GameControllerPathForIndex(int joystick_index);
|
||||
|
||||
/**
|
||||
* Get the type of a game controller.
|
||||
*
|
||||
|
@ -386,6 +405,23 @@ extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromPlayerIndex(in
|
|||
*/
|
||||
extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller);
|
||||
|
||||
/**
|
||||
* Get the implementation-dependent path for an opened game controller.
|
||||
*
|
||||
* This is the same path as returned by SDL_GameControllerNameForIndex(), but
|
||||
* it takes a controller identifier instead of the (unstable) device index.
|
||||
*
|
||||
* \param gamecontroller a game controller identifier previously returned by
|
||||
* SDL_GameControllerOpen()
|
||||
* \returns the implementation dependent path for the game controller, or NULL
|
||||
* if there is no path or the identifier passed is invalid.
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0.
|
||||
*
|
||||
* \sa SDL_GameControllerPathForIndex
|
||||
*/
|
||||
extern DECLSPEC const char *SDLCALL SDL_GameControllerPath(SDL_GameController *gamecontroller);
|
||||
|
||||
/**
|
||||
* Get the type of this currently opened controller
|
||||
*
|
||||
|
|
|
@ -392,13 +392,14 @@ extern "C" {
|
|||
#define SDL_HINT_ENABLE_STEAM_CONTROLLERS "SDL_ENABLE_STEAM_CONTROLLERS"
|
||||
|
||||
/**
|
||||
* \brief A variable controlling whether SDL logs all events pushed onto its internal queue.
|
||||
* \brief A variable controlling verbosity of the logging of SDL events pushed onto the internal queue.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* This variable can be set to the following values, from least to most verbose:
|
||||
*
|
||||
* "0" - Don't log any events (default)
|
||||
* "1" - Log all events except mouse and finger motion, which are pretty spammy.
|
||||
* "2" - Log all events.
|
||||
* "1" - Log most events (other than the really spammy ones).
|
||||
* "2" - Include mouse and finger motion events.
|
||||
* "3" - Include SDL_SysWMEvent events.
|
||||
*
|
||||
* This is generally meant to be used to debug SDL itself, but can be useful
|
||||
* for application developers that need better visibility into what is going
|
||||
|
@ -871,6 +872,24 @@ extern "C" {
|
|||
*/
|
||||
#define SDL_HINT_JOYSTICK_DEVICE "SDL_JOYSTICK_DEVICE"
|
||||
|
||||
/**
|
||||
* \brief A variable controlling whether joysticks on Linux will always treat 'hat' axis inputs (ABS_HAT0X - ABS_HAT3Y) as 8-way digital hats without checking whether they may be analog.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Only map hat axis inputs to digital hat outputs if the input axes appear to actually be digital (the default)
|
||||
* "1" - Always handle the input axes numbered ABS_HAT0X to ABS_HAT3Y as digital hats
|
||||
*/
|
||||
#define SDL_HINT_LINUX_DIGITAL_HATS "SDL_LINUX_DIGITAL_HATS"
|
||||
|
||||
/**
|
||||
* \brief A variable controlling whether digital hats on Linux will apply deadzones to their underlying input axes or use unfiltered values.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Return digital hat values based on unfiltered input axis values
|
||||
* "1" - Return digital hat values with deadzones on the input axes taken into account (the default)
|
||||
*/
|
||||
#define SDL_HINT_LINUX_HAT_DEADZONES "SDL_LINUX_HAT_DEADZONES"
|
||||
|
||||
/**
|
||||
* \brief A variable controlling whether to use the classic /dev/input/js* joystick interface or the newer /dev/input/event* joystick interface on Linux
|
||||
*
|
||||
|
@ -1450,9 +1469,7 @@ extern "C" {
|
|||
* SDL_WINDOW_RESIZABLE windows will offer the "fullscreen"
|
||||
* button on their titlebars).
|
||||
*
|
||||
* The default value is "1". Spaces are disabled regardless of this hint if
|
||||
* the OS isn't at least Mac OS X Lion (10.7). This hint must be set before
|
||||
* any windows are created.
|
||||
* The default value is "1". This hint must be set before any windows are created.
|
||||
*/
|
||||
#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES "SDL_VIDEO_MAC_FULLSCREEN_SPACES"
|
||||
|
||||
|
@ -1590,13 +1607,11 @@ extern "C" {
|
|||
#define SDL_HINT_VIDEO_X11_WINDOW_VISUALID "SDL_VIDEO_X11_WINDOW_VISUALID"
|
||||
|
||||
/**
|
||||
* \brief A variable controlling whether the X11 Xinerama extension should be used.
|
||||
* \brief A no-longer-used variable controlling whether the X11 Xinerama extension should be used.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Disable Xinerama
|
||||
* "1" - Enable Xinerama
|
||||
*
|
||||
* By default SDL will use Xinerama if it is available.
|
||||
* Before SDL 2.0.24, this would let apps and users disable Xinerama support on X11.
|
||||
* Now SDL never uses Xinerama, and does not check for this hint at all.
|
||||
* The preprocessor define is left here for source compatibility.
|
||||
*/
|
||||
#define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA"
|
||||
|
||||
|
@ -1607,18 +1622,16 @@ extern "C" {
|
|||
* "0" - Disable XRandR
|
||||
* "1" - Enable XRandR
|
||||
*
|
||||
* By default SDL will not use XRandR because of window manager issues.
|
||||
* By default SDL will use XRandR.
|
||||
*/
|
||||
#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR"
|
||||
|
||||
/**
|
||||
* \brief A variable controlling whether the X11 VidMode extension should be used.
|
||||
* \brief A no-longer-used variable controlling whether the X11 VidMode extension should be used.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Disable XVidMode
|
||||
* "1" - Enable XVidMode
|
||||
*
|
||||
* By default SDL will use XVidMode if it is available.
|
||||
* Before SDL 2.0.24, this would let apps and users disable XVidMode support on X11.
|
||||
* Now SDL never uses XVidMode, and does not check for this hint at all.
|
||||
* The preprocessor define is left here for source compatibility.
|
||||
*/
|
||||
#define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE"
|
||||
|
||||
|
|
|
@ -153,6 +153,7 @@ extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void);
|
|||
* \since This function is available since SDL 2.0.0.
|
||||
*
|
||||
* \sa SDL_JoystickName
|
||||
* \sa SDL_JoystickPath
|
||||
* \sa SDL_JoystickOpen
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_NumJoysticks(void);
|
||||
|
@ -174,6 +175,23 @@ extern DECLSPEC int SDLCALL SDL_NumJoysticks(void);
|
|||
*/
|
||||
extern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index);
|
||||
|
||||
/**
|
||||
* Get the implementation dependent path of a joystick.
|
||||
*
|
||||
* This can be called before any joysticks are opened.
|
||||
*
|
||||
* \param device_index the index of the joystick to query (the N'th joystick
|
||||
* on the system)
|
||||
* \returns the path of the selected joystick. If no path can be found, this
|
||||
* function returns NULL; call SDL_GetError() for more information.
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0.
|
||||
*
|
||||
* \sa SDL_JoystickPath
|
||||
* \sa SDL_JoystickOpen
|
||||
*/
|
||||
extern DECLSPEC const char *SDLCALL SDL_JoystickPathForIndex(int device_index);
|
||||
|
||||
/**
|
||||
* Get the player index of a joystick, or -1 if it's not available This can be
|
||||
* called before any joysticks are opened.
|
||||
|
@ -330,6 +348,54 @@ extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtual(SDL_JoystickType type,
|
|||
int nbuttons,
|
||||
int nhats);
|
||||
|
||||
/**
|
||||
* The structure that defines an extended virtual joystick description
|
||||
*
|
||||
* The caller must zero the structure and then initialize the version with `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` before passing it to SDL_JoystickAttachVirtualEx()
|
||||
* All other elements of this structure are optional and can be left 0.
|
||||
*
|
||||
* \sa SDL_JoystickAttachVirtualEx
|
||||
*/
|
||||
typedef struct SDL_VirtualJoystickDesc
|
||||
{
|
||||
Uint16 version; /**< `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` */
|
||||
Uint16 type; /**< `SDL_JoystickType` */
|
||||
Uint16 naxes; /**< the number of axes on this joystick */
|
||||
Uint16 nbuttons; /**< the number of buttons on this joystick */
|
||||
Uint16 nhats; /**< the number of hats on this joystick */
|
||||
Uint16 vendor_id; /**< the USB vendor ID of this joystick */
|
||||
Uint16 product_id; /**< the USB product ID of this joystick */
|
||||
Uint16 padding; /**< unused */
|
||||
Uint32 button_mask; /**< A mask of which buttons are valid for this controller
|
||||
e.g. (1 << SDL_CONTROLLER_BUTTON_A) */
|
||||
Uint32 axis_mask; /**< A mask of which axes are valid for this controller
|
||||
e.g. (1 << SDL_CONTROLLER_AXIS_LEFTX) */
|
||||
const char *name; /**< the name of the joystick */
|
||||
|
||||
void *userdata; /**< User data pointer passed to callbacks */
|
||||
void (SDLCALL *Update)(void *userdata); /**< Called when the joystick state should be updated */
|
||||
void (SDLCALL *SetPlayerIndex)(void *userdata, int player_index); /**< Called when the player index is set */
|
||||
int (SDLCALL *Rumble)(void *userdata, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble); /**< Implements SDL_JoystickRumble() */
|
||||
int (SDLCALL *RumbleTriggers)(void *userdata, Uint16 left_rumble, Uint16 right_rumble); /**< Implements SDL_JoystickRumbleTriggers() */
|
||||
int (SDLCALL *SetLED)(void *userdata, Uint8 red, Uint8 green, Uint8 blue); /**< Implements SDL_JoystickSetLED() */
|
||||
int (SDLCALL *SendEffect)(void *userdata, const void *data, int size); /**< Implements SDL_JoystickSendEffect() */
|
||||
|
||||
} SDL_VirtualJoystickDesc;
|
||||
|
||||
/**
|
||||
* \brief The current version of the SDL_VirtualJoystickDesc structure
|
||||
*/
|
||||
#define SDL_VIRTUAL_JOYSTICK_DESC_VERSION 1
|
||||
|
||||
/**
|
||||
* Attach a new virtual joystick with extended properties.
|
||||
*
|
||||
* \returns the joystick's device index, or -1 if an error occurred.
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0.
|
||||
*/
|
||||
extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtualEx(const SDL_VirtualJoystickDesc *desc);
|
||||
|
||||
/**
|
||||
* Detach a virtual joystick.
|
||||
*
|
||||
|
@ -419,6 +485,19 @@ extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualHat(SDL_Joystick *joystick, in
|
|||
*/
|
||||
extern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick *joystick);
|
||||
|
||||
/**
|
||||
* Get the implementation dependent path of a joystick.
|
||||
*
|
||||
* \param joystick the SDL_Joystick obtained from SDL_JoystickOpen()
|
||||
* \returns the path of the selected joystick. If no path can be found, this
|
||||
* function returns NULL; call SDL_GetError() for more information.
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0.
|
||||
*
|
||||
* \sa SDL_JoystickPathForIndex
|
||||
*/
|
||||
extern DECLSPEC const char *SDLCALL SDL_JoystickPath(SDL_Joystick *joystick);
|
||||
|
||||
/**
|
||||
* Get the player index of an opened joystick.
|
||||
*
|
||||
|
|
|
@ -318,7 +318,12 @@ typedef enum
|
|||
SDLK_APP2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP2),
|
||||
|
||||
SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND),
|
||||
SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD)
|
||||
SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD),
|
||||
|
||||
SDLK_SOFTLEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTLEFT),
|
||||
SDLK_SOFTRIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTRIGHT),
|
||||
SDLK_CALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALL),
|
||||
SDLK_ENDCALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ENDCALL)
|
||||
} SDL_KeyCode;
|
||||
|
||||
/**
|
||||
|
|
|
@ -47,9 +47,9 @@ extern "C" {
|
|||
|
||||
|
||||
/**
|
||||
* \brief The maximum size of a log message
|
||||
* \brief The maximum size of a log message prior to SDL 2.0.24
|
||||
*
|
||||
* Messages longer than the maximum size will be truncated
|
||||
* As of 2.0.24 there is no limit to the length of SDL log messages.
|
||||
*/
|
||||
#define SDL_MAX_LOG_MESSAGE 4096
|
||||
|
||||
|
|
|
@ -65,11 +65,15 @@
|
|||
#undef __LINUX__ /* do we need to do this? */
|
||||
#define __ANDROID__ 1
|
||||
#endif
|
||||
#if defined(__NGAGE__)
|
||||
#undef __NGAGE__
|
||||
#define __NGAGE__ 1
|
||||
#endif
|
||||
|
||||
#if defined(__APPLE__)
|
||||
/* lets us know what version of Mac OS X we're compiling on */
|
||||
#include "AvailabilityMacros.h"
|
||||
#include "TargetConditionals.h"
|
||||
#include <AvailabilityMacros.h>
|
||||
#include <TargetConditionals.h>
|
||||
|
||||
/* Fix building with older SDKs that don't define these
|
||||
See this for more information:
|
||||
|
@ -104,9 +108,9 @@
|
|||
/* if not compiling for iOS */
|
||||
#undef __MACOSX__
|
||||
#define __MACOSX__ 1
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||
# error SDL for Mac OS X only supports deploying on 10.6 and above.
|
||||
#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1060 */
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
|
||||
# error SDL for Mac OS X only supports deploying on 10.7 and above.
|
||||
#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1070 */
|
||||
#endif /* TARGET_OS_IPHONE */
|
||||
#endif /* defined(__APPLE__) */
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -825,9 +825,13 @@ extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, in
|
|||
/**
|
||||
* Get device independent resolution for rendering.
|
||||
*
|
||||
* This may return 0 for `w` and `h` if the SDL_Renderer has never had its
|
||||
* logical size set by SDL_RenderSetLogicalSize() and never had a render
|
||||
* target set.
|
||||
* When using the main rendering target (eg no target texture is set): this
|
||||
* may return 0 for `w` and `h` if the SDL_Renderer has never had its logical
|
||||
* size set by SDL_RenderSetLogicalSize(). Otherwise it returns the logical
|
||||
* width and height.
|
||||
*
|
||||
* When using a target texture: Never return 0 for `w` and `h` at first. Then
|
||||
* it returns the logical width and height that are set.
|
||||
*
|
||||
* \param renderer a rendering context
|
||||
* \param w an int to be filled with the width
|
||||
|
|
|
@ -45,9 +45,6 @@ extern "C" {
|
|||
#define SDL_RWOPS_JNIFILE 3U /**< Android asset */
|
||||
#define SDL_RWOPS_MEMORY 4U /**< Memory stream */
|
||||
#define SDL_RWOPS_MEMORY_RO 5U /**< Read-Only memory stream */
|
||||
#if defined(__VITA__)
|
||||
#define SDL_RWOPS_VITAFILE 6U /**< Vita file */
|
||||
#endif
|
||||
|
||||
/**
|
||||
* This is the read/write operation structure -- very basic.
|
||||
|
@ -113,17 +110,6 @@ typedef struct SDL_RWops
|
|||
size_t left;
|
||||
} buffer;
|
||||
} windowsio;
|
||||
#elif defined(__VITA__)
|
||||
struct
|
||||
{
|
||||
int h;
|
||||
struct
|
||||
{
|
||||
void *data;
|
||||
size_t size;
|
||||
size_t left;
|
||||
} buffer;
|
||||
} vitaio;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STDIO_H
|
||||
|
|
|
@ -402,6 +402,26 @@ typedef enum
|
|||
|
||||
/* @} *//* Usage page 0x0C (additional media keys) */
|
||||
|
||||
/**
|
||||
* \name Mobile keys
|
||||
*
|
||||
* These are values that are often used on mobile phones.
|
||||
*/
|
||||
/* @{ */
|
||||
|
||||
SDL_SCANCODE_SOFTLEFT = 287, /**< Usually situated below the display on phones and
|
||||
used as a multi-function feature key for selecting
|
||||
a software defined function shown on the bottom left
|
||||
of the display. */
|
||||
SDL_SCANCODE_SOFTRIGHT = 288, /**< Usually situated below the display on phones and
|
||||
used as a multi-function feature key for selecting
|
||||
a software defined function shown on the bottom right
|
||||
of the display. */
|
||||
SDL_SCANCODE_CALL = 289, /**< Used for accepting phone calls. */
|
||||
SDL_SCANCODE_ENDCALL = 290, /**< Used for rejecting phone calls. */
|
||||
|
||||
/* @} *//* Mobile keys */
|
||||
|
||||
/* Add any other keys here. */
|
||||
|
||||
SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes
|
||||
|
|
|
@ -115,6 +115,12 @@ char *alloca();
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef SIZE_MAX
|
||||
# define SDL_SIZE_MAX SIZE_MAX
|
||||
#else
|
||||
# define SDL_SIZE_MAX ((size_t) -1)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Check if the compiler supports a given builtin.
|
||||
* Supported by virtually all clang versions and recent gcc. Use this
|
||||
|
@ -462,7 +468,8 @@ 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 void * SDLCALL SDL_bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (SDLCALL *compare) (const void *, const void *));
|
||||
|
||||
extern DECLSPEC int SDLCALL SDL_abs(int x);
|
||||
|
||||
|
@ -727,6 +734,65 @@ SDL_FORCE_INLINE void *SDL_memcpy4(SDL_OUT_BYTECAP(dwords*4) void *dst, SDL_IN_B
|
|||
return SDL_memcpy(dst, src, dwords * 4);
|
||||
}
|
||||
|
||||
/**
|
||||
* If a * b would overflow, return -1. Otherwise store a * b via ret
|
||||
* and return 0.
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0.
|
||||
*/
|
||||
SDL_FORCE_INLINE int SDL_size_mul_overflow (size_t a,
|
||||
size_t b,
|
||||
size_t *ret)
|
||||
{
|
||||
if (a != 0 && b > SDL_SIZE_MAX / a) {
|
||||
return -1;
|
||||
}
|
||||
*ret = a * b;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if _SDL_HAS_BUILTIN(__builtin_mul_overflow)
|
||||
/* This needs to be wrapped in an inline rather than being a direct #define,
|
||||
* because __builtin_mul_overflow() is type-generic, but we want to be
|
||||
* consistent about interpreting a and b as size_t. */
|
||||
SDL_FORCE_INLINE int _SDL_size_mul_overflow_builtin (size_t a,
|
||||
size_t b,
|
||||
size_t *ret)
|
||||
{
|
||||
return __builtin_mul_overflow(a, b, ret) == 0 ? 0 : -1;
|
||||
}
|
||||
#define SDL_size_mul_overflow(a, b, ret) (_SDL_size_mul_overflow_builtin(a, b, ret))
|
||||
#endif
|
||||
|
||||
/**
|
||||
* If a + b would overflow, return -1. Otherwise store a + b via ret
|
||||
* and return 0.
|
||||
*
|
||||
* \since This function is available since SDL 2.24.0.
|
||||
*/
|
||||
SDL_FORCE_INLINE int SDL_size_add_overflow (size_t a,
|
||||
size_t b,
|
||||
size_t *ret)
|
||||
{
|
||||
if (b > SDL_SIZE_MAX - a) {
|
||||
return -1;
|
||||
}
|
||||
*ret = a + b;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if _SDL_HAS_BUILTIN(__builtin_add_overflow)
|
||||
/* This needs to be wrapped in an inline rather than being a direct #define,
|
||||
* the same as the call to __builtin_mul_overflow() above. */
|
||||
SDL_FORCE_INLINE int _SDL_size_add_overflow_builtin (size_t a,
|
||||
size_t b,
|
||||
size_t *ret)
|
||||
{
|
||||
return __builtin_add_overflow(a, b, ret) == 0 ? 0 : -1;
|
||||
}
|
||||
#define SDL_size_add_overflow(a, b, ret) (_SDL_size_add_overflow_builtin(a, b, ret))
|
||||
#endif
|
||||
|
||||
/* Ends C function definitions when using C++ */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -58,8 +58,8 @@ typedef struct SDL_version
|
|||
/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
|
||||
*/
|
||||
#define SDL_MAJOR_VERSION 2
|
||||
#define SDL_MINOR_VERSION 0
|
||||
#define SDL_PATCHLEVEL 22
|
||||
#define SDL_MINOR_VERSION 23
|
||||
#define SDL_PATCHLEVEL 0
|
||||
|
||||
/**
|
||||
* Macro to determine SDL version program was compiled against.
|
||||
|
@ -83,6 +83,8 @@ typedef struct SDL_version
|
|||
(x)->patch = SDL_PATCHLEVEL; \
|
||||
}
|
||||
|
||||
/* TODO: Remove this whole block in SDL 3 */
|
||||
#if SDL_MAJOR_VERSION < 3
|
||||
/**
|
||||
* This macro turns the version numbers into a numeric value:
|
||||
* \verbatim
|
||||
|
@ -90,21 +92,35 @@ typedef struct SDL_version
|
|||
\endverbatim
|
||||
*
|
||||
* This assumes that there will never be more than 100 patchlevels.
|
||||
*
|
||||
* In versions higher than 2.9.0, the minor version overflows into
|
||||
* the thousands digit: for example, 2.23.0 is encoded as 4300,
|
||||
* and 2.255.99 would be encoded as 25799.
|
||||
* This macro will not be available in SDL 3.x.
|
||||
*/
|
||||
#define SDL_VERSIONNUM(X, Y, Z) \
|
||||
((X)*1000 + (Y)*100 + (Z))
|
||||
|
||||
/**
|
||||
* This is the version number macro for the current SDL version.
|
||||
*
|
||||
* In versions higher than 2.9.0, the minor version overflows into
|
||||
* the thousands digit: for example, 2.23.0 is encoded as 4300.
|
||||
* This macro will not be available in SDL 3.x.
|
||||
*
|
||||
* Deprecated, use SDL_VERSION_ATLEAST or SDL_VERSION instead.
|
||||
*/
|
||||
#define SDL_COMPILEDVERSION \
|
||||
SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL)
|
||||
#endif /* SDL_MAJOR_VERSION < 3 */
|
||||
|
||||
/**
|
||||
* This macro will evaluate to true if compiled with SDL at least X.Y.Z.
|
||||
*/
|
||||
#define SDL_VERSION_ATLEAST(X, Y, Z) \
|
||||
(SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z))
|
||||
((SDL_MAJOR_VERSION >= X) && \
|
||||
(SDL_MAJOR_VERSION > X || SDL_MINOR_VERSION >= Y) && \
|
||||
(SDL_MAJOR_VERSION > X || SDL_MINOR_VERSION > Y || SDL_PATCHLEVEL >= Z))
|
||||
|
||||
/**
|
||||
* Get the version of SDL that is linked against your program.
|
||||
|
|
28
src/SDL.c
28
src/SDL.c
|
@ -47,6 +47,7 @@
|
|||
#include "SDL_bits.h"
|
||||
#include "SDL_revision.h"
|
||||
#include "SDL_assert_c.h"
|
||||
#include "SDL_log_c.h"
|
||||
#include "events/SDL_events_c.h"
|
||||
#include "haptic/SDL_haptic_c.h"
|
||||
#include "joystick/SDL_joystick_c.h"
|
||||
|
@ -61,6 +62,26 @@ extern int SDL_HelperWindowCreate(void);
|
|||
extern int SDL_HelperWindowDestroy(void);
|
||||
#endif
|
||||
|
||||
#ifdef SDL_BUILD_MAJOR_VERSION
|
||||
SDL_COMPILE_TIME_ASSERT(SDL_BUILD_MAJOR_VERSION,
|
||||
SDL_MAJOR_VERSION == SDL_BUILD_MAJOR_VERSION);
|
||||
SDL_COMPILE_TIME_ASSERT(SDL_BUILD_MINOR_VERSION,
|
||||
SDL_MINOR_VERSION == SDL_BUILD_MINOR_VERSION);
|
||||
SDL_COMPILE_TIME_ASSERT(SDL_BUILD_MICRO_VERSION,
|
||||
SDL_PATCHLEVEL == SDL_BUILD_MICRO_VERSION);
|
||||
#endif
|
||||
|
||||
SDL_COMPILE_TIME_ASSERT(SDL_MAJOR_VERSION_min, SDL_MAJOR_VERSION >= 0);
|
||||
/* Limited only by the need to fit in SDL_version */
|
||||
SDL_COMPILE_TIME_ASSERT(SDL_MAJOR_VERSION_max, SDL_MAJOR_VERSION <= 255);
|
||||
|
||||
SDL_COMPILE_TIME_ASSERT(SDL_MINOR_VERSION_min, SDL_MINOR_VERSION >= 0);
|
||||
/* Limited only by the need to fit in SDL_version */
|
||||
SDL_COMPILE_TIME_ASSERT(SDL_MINOR_VERSION_max, SDL_MINOR_VERSION <= 255);
|
||||
|
||||
SDL_COMPILE_TIME_ASSERT(SDL_PATCHLEVEL_min, SDL_PATCHLEVEL >= 0);
|
||||
/* Limited by its encoding in SDL_VERSIONNUM and in the ABI versions */
|
||||
SDL_COMPILE_TIME_ASSERT(SDL_PATCHLEVEL_max, SDL_PATCHLEVEL <= 99);
|
||||
|
||||
/* This is not declared in any header, although it is shared between some
|
||||
parts of SDL, because we don't want anything calling it without an
|
||||
|
@ -156,6 +177,8 @@ SDL_InitSubSystem(Uint32 flags)
|
|||
return SDL_SetError("Application didn't initialize properly, did you include SDL_main.h in the file containing your main() function?");
|
||||
}
|
||||
|
||||
SDL_LogInit();
|
||||
|
||||
/* Clear the error message */
|
||||
SDL_ClearError();
|
||||
|
||||
|
@ -470,12 +493,13 @@ SDL_Quit(void)
|
|||
|
||||
SDL_ClearHints();
|
||||
SDL_AssertionsQuit();
|
||||
SDL_LogResetPriorities();
|
||||
|
||||
#if SDL_USE_LIBDBUS
|
||||
SDL_DBus_Quit();
|
||||
#endif
|
||||
|
||||
SDL_LogQuit();
|
||||
|
||||
/* Now that every subsystem has been quit, we reset the subsystem refcount
|
||||
* and the list of initialized subsystems.
|
||||
*/
|
||||
|
@ -563,6 +587,8 @@ SDL_GetPlatform(void)
|
|||
return "PlayStation Portable";
|
||||
#elif __VITA__
|
||||
return "PlayStation Vita";
|
||||
#elif __NGAGE__
|
||||
return "Nokia N-Gage";
|
||||
#else
|
||||
return "Unknown (see SDL_platform.h)";
|
||||
#endif
|
||||
|
|
|
@ -45,6 +45,8 @@
|
|||
#include <emscripten.h>
|
||||
#endif
|
||||
|
||||
/* The size of the stack buffer to use for rendering assert messages. */
|
||||
#define SDL_MAX_ASSERT_MESSAGE_STACK 256
|
||||
|
||||
static SDL_assert_state SDLCALL
|
||||
SDL_PromptAssertion(const SDL_assert_data *data, void *userdata);
|
||||
|
@ -88,6 +90,20 @@ static void SDL_AddAssertionToReport(SDL_assert_data *data)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef __WIN32__
|
||||
#define ENDLINE "\r\n"
|
||||
#else
|
||||
#define ENDLINE "\n"
|
||||
#endif
|
||||
|
||||
static int SDL_RenderAssertMessage(char *buf, size_t buf_len, const SDL_assert_data *data) {
|
||||
return SDL_snprintf(buf, buf_len,
|
||||
"Assertion failure at %s (%s:%d), triggered %u %s:" ENDLINE " '%s'",
|
||||
data->function, data->filename, data->linenum,
|
||||
data->trigger_count, (data->trigger_count == 1) ? "time" : "times",
|
||||
data->condition
|
||||
);
|
||||
}
|
||||
|
||||
static void SDL_GenerateAssertionReport(void)
|
||||
{
|
||||
|
@ -137,16 +153,9 @@ static SDL_NORETURN void SDL_AbortAssertion(void)
|
|||
SDL_ExitProcess(42);
|
||||
}
|
||||
|
||||
|
||||
static SDL_assert_state SDLCALL
|
||||
SDL_PromptAssertion(const SDL_assert_data *data, void *userdata)
|
||||
{
|
||||
#ifdef __WIN32__
|
||||
#define ENDLINE "\r\n"
|
||||
#else
|
||||
#define ENDLINE "\n"
|
||||
#endif
|
||||
|
||||
const char *envr;
|
||||
SDL_assert_state state = SDL_ASSERTION_ABORT;
|
||||
SDL_Window *window;
|
||||
|
@ -160,30 +169,46 @@ SDL_PromptAssertion(const SDL_assert_data *data, void *userdata)
|
|||
{ SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT,
|
||||
SDL_ASSERTION_ALWAYS_IGNORE, "Always Ignore" }
|
||||
};
|
||||
char *message;
|
||||
int selected;
|
||||
|
||||
char stack_buf[SDL_MAX_ASSERT_MESSAGE_STACK];
|
||||
char *message = stack_buf;
|
||||
size_t buf_len = sizeof(stack_buf);
|
||||
int len;
|
||||
|
||||
(void) userdata; /* unused in default handler. */
|
||||
|
||||
/* !!! FIXME: why is this using SDL_stack_alloc and not just "char message[SDL_MAX_LOG_MESSAGE];" ? */
|
||||
message = SDL_stack_alloc(char, SDL_MAX_LOG_MESSAGE);
|
||||
if (!message) {
|
||||
/* Uh oh, we're in real trouble now... */
|
||||
/* Assume the output will fit... */
|
||||
len = SDL_RenderAssertMessage(message, buf_len, data);
|
||||
|
||||
/* .. and if it didn't, try to allocate as much room as we actually need. */
|
||||
if (len >= (int)buf_len) {
|
||||
if (SDL_size_add_overflow(len, 1, &buf_len) == 0) {
|
||||
message = (char *)SDL_malloc(buf_len);
|
||||
if (message) {
|
||||
len = SDL_RenderAssertMessage(message, buf_len, data);
|
||||
} else {
|
||||
message = stack_buf;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Something went very wrong */
|
||||
if (len < 0) {
|
||||
if (message != stack_buf) {
|
||||
SDL_free(message);
|
||||
}
|
||||
return SDL_ASSERTION_ABORT;
|
||||
}
|
||||
SDL_snprintf(message, SDL_MAX_LOG_MESSAGE,
|
||||
"Assertion failure at %s (%s:%d), triggered %u %s:" ENDLINE
|
||||
" '%s'",
|
||||
data->function, data->filename, data->linenum,
|
||||
data->trigger_count, (data->trigger_count == 1) ? "time" : "times",
|
||||
data->condition);
|
||||
|
||||
debug_print("\n\n%s\n\n", message);
|
||||
|
||||
/* let env. variable override, so unit tests won't block in a GUI. */
|
||||
envr = SDL_getenv("SDL_ASSERT");
|
||||
if (envr != NULL) {
|
||||
SDL_stack_free(message);
|
||||
if (message != stack_buf) {
|
||||
SDL_free(message);
|
||||
}
|
||||
|
||||
if (SDL_strcmp(envr, "abort") == 0) {
|
||||
return SDL_ASSERTION_ABORT;
|
||||
|
@ -301,7 +326,9 @@ SDL_PromptAssertion(const SDL_assert_data *data, void *userdata)
|
|||
SDL_RestoreWindow(window);
|
||||
}
|
||||
|
||||
SDL_stack_free(message);
|
||||
if (message != stack_buf) {
|
||||
SDL_free(message);
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
|
|
|
@ -43,10 +43,9 @@
|
|||
|
||||
#if SDL_DYNAMIC_API
|
||||
#include "dynapi/SDL_dynapi_overrides.h"
|
||||
/* force DECLSPEC and SDLCALL off...it's all internal symbols now.
|
||||
/* force DECLSPEC off...it's all internal symbols now.
|
||||
These will have actual #defines during SDL_dynapi.c only */
|
||||
#define DECLSPEC
|
||||
#define SDLCALL
|
||||
#endif
|
||||
|
||||
#include "SDL_config.h"
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
|
||||
#include "SDL_error.h"
|
||||
#include "SDL_log.h"
|
||||
#include "SDL_mutex.h"
|
||||
#include "SDL_log_c.h"
|
||||
|
||||
#if HAVE_STDIO_H
|
||||
#include <stdio.h>
|
||||
|
@ -37,6 +39,12 @@
|
|||
#include <android/log.h>
|
||||
#endif
|
||||
|
||||
#include "stdlib/SDL_vacopy.h"
|
||||
|
||||
|
||||
/* The size of the stack buffer to use for rendering log messages. */
|
||||
#define SDL_MAX_LOG_MESSAGE_STACK 256
|
||||
|
||||
#define DEFAULT_PRIORITY SDL_LOG_PRIORITY_CRITICAL
|
||||
#define DEFAULT_ASSERT_PRIORITY SDL_LOG_PRIORITY_WARN
|
||||
#define DEFAULT_APPLICATION_PRIORITY SDL_LOG_PRIORITY_INFO
|
||||
|
@ -59,6 +67,7 @@ static SDL_LogPriority SDL_application_priority = DEFAULT_APPLICATION_PRIORITY;
|
|||
static SDL_LogPriority SDL_test_priority = DEFAULT_TEST_PRIORITY;
|
||||
static SDL_LogOutputFunction SDL_log_function = SDL_LogOutput;
|
||||
static void *SDL_log_userdata = NULL;
|
||||
static SDL_mutex *log_function_mutex = NULL;
|
||||
|
||||
static const char *SDL_priority_prefixes[SDL_NUM_LOG_PRIORITIES] = {
|
||||
NULL,
|
||||
|
@ -92,6 +101,24 @@ static int SDL_android_priority[SDL_NUM_LOG_PRIORITIES] = {
|
|||
};
|
||||
#endif /* __ANDROID__ */
|
||||
|
||||
void
|
||||
SDL_LogInit(void)
|
||||
{
|
||||
if (!log_function_mutex) {
|
||||
/* if this fails we'll try to continue without it. */
|
||||
log_function_mutex = SDL_CreateMutex();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
SDL_LogQuit(void)
|
||||
{
|
||||
SDL_LogResetPriorities();
|
||||
if (log_function_mutex) {
|
||||
SDL_DestroyMutex(log_function_mutex);
|
||||
log_function_mutex = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
SDL_LogSetAllPriority(SDL_LogPriority priority)
|
||||
|
@ -264,8 +291,11 @@ GetCategoryPrefix(int category)
|
|||
void
|
||||
SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list ap)
|
||||
{
|
||||
char *message;
|
||||
size_t len;
|
||||
char *message = NULL;
|
||||
char stack_buf[SDL_MAX_LOG_MESSAGE_STACK];
|
||||
size_t len_plus_term;
|
||||
int len;
|
||||
va_list aq;
|
||||
|
||||
/* Nothing to do if we don't have an output function */
|
||||
if (!SDL_log_function) {
|
||||
|
@ -282,16 +312,33 @@ SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list
|
|||
return;
|
||||
}
|
||||
|
||||
/* !!! FIXME: why not just "char message[SDL_MAX_LOG_MESSAGE];" ? */
|
||||
message = SDL_stack_alloc(char, SDL_MAX_LOG_MESSAGE);
|
||||
if (!message) {
|
||||
return;
|
||||
if (!log_function_mutex) {
|
||||
/* this mutex creation can race if you log from two threads at startup. You should have called SDL_Init first! */
|
||||
log_function_mutex = SDL_CreateMutex();
|
||||
}
|
||||
|
||||
SDL_vsnprintf(message, SDL_MAX_LOG_MESSAGE, fmt, ap);
|
||||
/* Render into stack buffer */
|
||||
va_copy(aq, ap);
|
||||
len = SDL_vsnprintf(stack_buf, sizeof(stack_buf), fmt, aq);
|
||||
va_end(aq);
|
||||
|
||||
if (len < 0)
|
||||
return;
|
||||
|
||||
/* If message truncated, allocate and re-render */
|
||||
if (len >= sizeof(stack_buf) && SDL_size_add_overflow(len, 1, &len_plus_term) == 0) {
|
||||
/* Allocate exactly what we need, including the zero-terminator */
|
||||
message = (char *)SDL_malloc(len_plus_term);
|
||||
if (!message)
|
||||
return;
|
||||
va_copy(aq, ap);
|
||||
len = SDL_vsnprintf(message, len_plus_term, fmt, aq);
|
||||
va_end(aq);
|
||||
} else {
|
||||
message = stack_buf;
|
||||
}
|
||||
|
||||
/* Chop off final endline. */
|
||||
len = SDL_strlen(message);
|
||||
if ((len > 0) && (message[len-1] == '\n')) {
|
||||
message[--len] = '\0';
|
||||
if ((len > 0) && (message[len-1] == '\r')) { /* catch "\r\n", too. */
|
||||
|
@ -299,8 +346,20 @@ SDL_LogMessageV(int category, SDL_LogPriority priority, const char *fmt, va_list
|
|||
}
|
||||
}
|
||||
|
||||
if (log_function_mutex) {
|
||||
SDL_LockMutex(log_function_mutex);
|
||||
}
|
||||
|
||||
SDL_log_function(SDL_log_userdata, category, priority, message);
|
||||
SDL_stack_free(message);
|
||||
|
||||
if (log_function_mutex) {
|
||||
SDL_UnlockMutex(log_function_mutex);
|
||||
}
|
||||
|
||||
/* Free only if dynamically allocated */
|
||||
if (message != stack_buf) {
|
||||
SDL_free(message);
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(__WIN32__) && !defined(HAVE_STDIO_H) && !defined(__WINRT__)
|
||||
|
@ -403,17 +462,10 @@ SDL_LogOutput(void *userdata, int category, SDL_LogPriority priority,
|
|||
#elif defined(__APPLE__) && (defined(SDL_VIDEO_DRIVER_COCOA) || defined(SDL_VIDEO_DRIVER_UIKIT))
|
||||
/* Technically we don't need Cocoa/UIKit, but that's where this function is defined for now.
|
||||
*/
|
||||
extern void SDL_NSLog(const char *text);
|
||||
extern void SDL_NSLog(const char *prefix, const char *text);
|
||||
{
|
||||
char *text;
|
||||
/* !!! FIXME: why not just "char text[SDL_MAX_LOG_MESSAGE];" ? */
|
||||
text = SDL_stack_alloc(char, SDL_MAX_LOG_MESSAGE);
|
||||
if (text) {
|
||||
SDL_snprintf(text, SDL_MAX_LOG_MESSAGE, "%s: %s", SDL_priority_prefixes[priority], message);
|
||||
SDL_NSLog(text);
|
||||
SDL_stack_free(text);
|
||||
return;
|
||||
}
|
||||
SDL_NSLog(SDL_priority_prefixes[priority], message);
|
||||
return;
|
||||
}
|
||||
#elif defined(__PSP__)
|
||||
{
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2022 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, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
#include "./SDL_internal.h"
|
||||
|
||||
/* This file defines useful function for working with SDL logging */
|
||||
|
||||
#ifndef SDL_log_c_h_
|
||||
#define SDL_log_c_h_
|
||||
|
||||
extern void SDL_LogInit(void);
|
||||
extern void SDL_LogQuit(void);
|
||||
|
||||
#endif /* SDL_log_c_h_ */
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
|
@ -1652,8 +1652,6 @@ SDL_AudioQuit(void)
|
|||
#ifdef HAVE_LIBSAMPLERATE_H
|
||||
UnloadLibSampleRate();
|
||||
#endif
|
||||
|
||||
SDL_FreeResampleFilter();
|
||||
}
|
||||
|
||||
#define NUM_FORMATS 10
|
||||
|
|
|
@ -70,11 +70,6 @@ extern SDL_AudioFilter SDL_Convert_F32_to_S16;
|
|||
extern SDL_AudioFilter SDL_Convert_F32_to_U16;
|
||||
extern SDL_AudioFilter SDL_Convert_F32_to_S32;
|
||||
|
||||
/* You need to call SDL_PrepareResampleFilter() before using the internal resampler.
|
||||
SDL_AudioQuit() calls SDL_FreeResamplerFilter(), you should never call it yourself. */
|
||||
extern int SDL_PrepareResampleFilter(void);
|
||||
extern void SDL_FreeResampleFilter(void);
|
||||
|
||||
#endif /* SDL_audio_c_h_ */
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -704,97 +704,7 @@ SDL_Convert51To71(SDL_AudioCVT * cvt, SDL_AudioFormat format)
|
|||
/* SDL's resampler uses a "bandlimited interpolation" algorithm:
|
||||
https://ccrma.stanford.edu/~jos/resample/ */
|
||||
|
||||
#define RESAMPLER_ZERO_CROSSINGS 5
|
||||
#define RESAMPLER_BITS_PER_SAMPLE 16
|
||||
#define RESAMPLER_SAMPLES_PER_ZERO_CROSSING (1 << ((RESAMPLER_BITS_PER_SAMPLE / 2) + 1))
|
||||
#define RESAMPLER_FILTER_SIZE ((RESAMPLER_SAMPLES_PER_ZERO_CROSSING * RESAMPLER_ZERO_CROSSINGS) + 1)
|
||||
|
||||
/* This is a "modified" bessel function, so you can't use POSIX j0() */
|
||||
static double
|
||||
bessel(const double x)
|
||||
{
|
||||
const double xdiv2 = x / 2.0;
|
||||
double i0 = 1.0f;
|
||||
double f = 1.0f;
|
||||
int i = 1;
|
||||
|
||||
while (SDL_TRUE) {
|
||||
const double diff = SDL_pow(xdiv2, i * 2) / SDL_pow(f, 2);
|
||||
if (diff < 1.0e-21f) {
|
||||
break;
|
||||
}
|
||||
i0 += diff;
|
||||
i++;
|
||||
f *= (double) i;
|
||||
}
|
||||
|
||||
return i0;
|
||||
}
|
||||
|
||||
/* build kaiser table with cardinal sine applied to it, and array of differences between elements. */
|
||||
static void
|
||||
kaiser_and_sinc(float *table, float *diffs, const int tablelen, const double beta)
|
||||
{
|
||||
const int lenm1 = tablelen - 1;
|
||||
const int lenm1div2 = lenm1 / 2;
|
||||
int i;
|
||||
|
||||
table[0] = 1.0f;
|
||||
for (i = 1; i < tablelen; i++) {
|
||||
const double kaiser = bessel(beta * SDL_sqrt(1.0 - SDL_pow(((i - lenm1) / 2.0) / lenm1div2, 2.0))) / bessel(beta);
|
||||
table[tablelen - i] = (float) kaiser;
|
||||
}
|
||||
|
||||
for (i = 1; i < tablelen; i++) {
|
||||
const float x = (((float) i) / ((float) RESAMPLER_SAMPLES_PER_ZERO_CROSSING)) * ((float) M_PI);
|
||||
table[i] *= SDL_sinf(x) / x;
|
||||
diffs[i - 1] = table[i] - table[i - 1];
|
||||
}
|
||||
diffs[lenm1] = 0.0f;
|
||||
}
|
||||
|
||||
|
||||
static SDL_SpinLock ResampleFilterSpinlock = 0;
|
||||
static float *ResamplerFilter = NULL;
|
||||
static float *ResamplerFilterDifference = NULL;
|
||||
|
||||
int
|
||||
SDL_PrepareResampleFilter(void)
|
||||
{
|
||||
SDL_AtomicLock(&ResampleFilterSpinlock);
|
||||
if (!ResamplerFilter) {
|
||||
/* if dB > 50, beta=(0.1102 * (dB - 8.7)), according to Matlab. */
|
||||
const double dB = 80.0;
|
||||
const double beta = 0.1102 * (dB - 8.7);
|
||||
const size_t alloclen = RESAMPLER_FILTER_SIZE * sizeof (float);
|
||||
|
||||
ResamplerFilter = (float *) SDL_malloc(alloclen);
|
||||
if (!ResamplerFilter) {
|
||||
SDL_AtomicUnlock(&ResampleFilterSpinlock);
|
||||
return SDL_OutOfMemory();
|
||||
}
|
||||
|
||||
ResamplerFilterDifference = (float *) SDL_malloc(alloclen);
|
||||
if (!ResamplerFilterDifference) {
|
||||
SDL_free(ResamplerFilter);
|
||||
ResamplerFilter = NULL;
|
||||
SDL_AtomicUnlock(&ResampleFilterSpinlock);
|
||||
return SDL_OutOfMemory();
|
||||
}
|
||||
kaiser_and_sinc(ResamplerFilter, ResamplerFilterDifference, RESAMPLER_FILTER_SIZE, beta);
|
||||
}
|
||||
SDL_AtomicUnlock(&ResampleFilterSpinlock);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
SDL_FreeResampleFilter(void)
|
||||
{
|
||||
SDL_free(ResamplerFilter);
|
||||
SDL_free(ResamplerFilterDifference);
|
||||
ResamplerFilter = NULL;
|
||||
ResamplerFilterDifference = NULL;
|
||||
}
|
||||
#include "SDL_audio_resampler_filter.h"
|
||||
|
||||
static int
|
||||
ResamplerPadding(const int inrate, const int outrate)
|
||||
|
@ -803,7 +713,7 @@ ResamplerPadding(const int inrate, const int outrate)
|
|||
return 0;
|
||||
}
|
||||
if (inrate > outrate) {
|
||||
return (int) SDL_ceil(((float) (RESAMPLER_SAMPLES_PER_ZERO_CROSSING * inrate) / ((float) outrate)));
|
||||
return (int) SDL_ceilf(((float) (RESAMPLER_SAMPLES_PER_ZERO_CROSSING * inrate) / ((float) outrate)));
|
||||
}
|
||||
return RESAMPLER_SAMPLES_PER_ZERO_CROSSING;
|
||||
}
|
||||
|
@ -815,33 +725,38 @@ SDL_ResampleAudio(const int chans, const int inrate, const int outrate,
|
|||
const float *inbuf, const int inbuflen,
|
||||
float *outbuf, const int outbuflen)
|
||||
{
|
||||
const double finrate = (double) inrate;
|
||||
const double outtimeincr = 1.0 / ((float) outrate);
|
||||
const double ratio = ((float) outrate) / ((float) inrate);
|
||||
/* Note that this used to be double, but it looks like we can get by with float in most cases at
|
||||
almost twice the speed on Intel processors, and orders of magnitude more
|
||||
on CPUs that need a software fallback for double calculations. */
|
||||
typedef float ResampleFloatType;
|
||||
|
||||
const ResampleFloatType finrate = (ResampleFloatType) inrate;
|
||||
const ResampleFloatType outtimeincr = ((ResampleFloatType) 1.0f) / ((ResampleFloatType) outrate);
|
||||
const ResampleFloatType ratio = ((float) outrate) / ((float) inrate);
|
||||
const int paddinglen = ResamplerPadding(inrate, outrate);
|
||||
const int framelen = chans * (int)sizeof (float);
|
||||
const int inframes = inbuflen / framelen;
|
||||
const int wantedoutframes = (int) ((inbuflen / framelen) * ratio); /* outbuflen isn't total to write, it's total available. */
|
||||
const int maxoutframes = outbuflen / framelen;
|
||||
const int outframes = SDL_min(wantedoutframes, maxoutframes);
|
||||
ResampleFloatType outtime = 0.0f;
|
||||
float *dst = outbuf;
|
||||
double outtime = 0.0;
|
||||
int i, j, chan;
|
||||
|
||||
for (i = 0; i < outframes; i++) {
|
||||
const int srcindex = (int) (outtime * inrate);
|
||||
const double intime = ((double) srcindex) / finrate;
|
||||
const double innexttime = ((double) (srcindex + 1)) / finrate;
|
||||
const double interpolation1 = 1.0 - ((innexttime - outtime) / (innexttime - intime));
|
||||
const ResampleFloatType intime = ((ResampleFloatType) srcindex) / finrate;
|
||||
const ResampleFloatType innexttime = ((ResampleFloatType) (srcindex + 1)) / finrate;
|
||||
const ResampleFloatType indeltatime = innexttime - intime;
|
||||
const ResampleFloatType interpolation1 = (indeltatime == 0.0f) ? 1.0f : (1.0f - ((innexttime - outtime) / indeltatime));
|
||||
const int filterindex1 = (int) (interpolation1 * RESAMPLER_SAMPLES_PER_ZERO_CROSSING);
|
||||
const double interpolation2 = 1.0 - interpolation1;
|
||||
const ResampleFloatType interpolation2 = 1.0f - interpolation1;
|
||||
const int filterindex2 = (int) (interpolation2 * RESAMPLER_SAMPLES_PER_ZERO_CROSSING);
|
||||
|
||||
for (chan = 0; chan < chans; chan++) {
|
||||
float outsample = 0.0f;
|
||||
|
||||
/* do this twice to calculate the sample, once for the "left wing" and then same for the right. */
|
||||
/* !!! FIXME: do both wings in one loop */
|
||||
for (j = 0; (filterindex1 + (j * RESAMPLER_SAMPLES_PER_ZERO_CROSSING)) < RESAMPLER_FILTER_SIZE; j++) {
|
||||
const int srcframe = srcindex - j;
|
||||
/* !!! FIXME: we can bubble this conditional out of here by doing a pre loop. */
|
||||
|
@ -849,12 +764,15 @@ SDL_ResampleAudio(const int chans, const int inrate, const int outrate,
|
|||
outsample += (float)(insample * (ResamplerFilter[filterindex1 + (j * RESAMPLER_SAMPLES_PER_ZERO_CROSSING)] + (interpolation1 * ResamplerFilterDifference[filterindex1 + (j * RESAMPLER_SAMPLES_PER_ZERO_CROSSING)])));
|
||||
}
|
||||
|
||||
/* Do the right wing! */
|
||||
for (j = 0; (filterindex2 + (j * RESAMPLER_SAMPLES_PER_ZERO_CROSSING)) < RESAMPLER_FILTER_SIZE; j++) {
|
||||
const int jsamples = j * RESAMPLER_SAMPLES_PER_ZERO_CROSSING;
|
||||
const int srcframe = srcindex + 1 + j;
|
||||
/* !!! FIXME: we can bubble this conditional out of here by doing a post loop. */
|
||||
const float insample = (srcframe >= inframes) ? rpadding[((srcframe - inframes) * chans) + chan] : inbuf[(srcframe * chans) + chan];
|
||||
outsample += (float)(insample * (ResamplerFilter[filterindex2 + (j * RESAMPLER_SAMPLES_PER_ZERO_CROSSING)] + (interpolation2 * ResamplerFilterDifference[filterindex2 + (j * RESAMPLER_SAMPLES_PER_ZERO_CROSSING)])));
|
||||
outsample += (float)(insample * (ResamplerFilter[filterindex2 + jsamples] + (interpolation2 * ResamplerFilterDifference[filterindex2 + jsamples])));
|
||||
}
|
||||
|
||||
*(dst++) = outsample;
|
||||
}
|
||||
|
||||
|
@ -1119,10 +1037,6 @@ SDL_BuildAudioResampleCVT(SDL_AudioCVT * cvt, const int dst_channels,
|
|||
return SDL_SetError("No conversion available for these rates");
|
||||
}
|
||||
|
||||
if (SDL_PrepareResampleFilter() < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Update (cvt) with filter details... */
|
||||
if (SDL_AddAudioCVTFilter(cvt, filter) < 0) {
|
||||
return -1;
|
||||
|
@ -1743,13 +1657,6 @@ SDL_NewAudioStream(const SDL_AudioFormat src_format,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if (SDL_PrepareResampleFilter() < 0) {
|
||||
SDL_free(retval->resampler_state);
|
||||
retval->resampler_state = NULL;
|
||||
SDL_FreeAudioStream(retval);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
retval->resampler_func = SDL_ResampleAudioStream;
|
||||
retval->reset_resampler_func = SDL_ResetAudioStreamResampler;
|
||||
retval->cleanup_resampler_func = SDL_CleanupAudioStreamResampler;
|
||||
|
|
|
@ -56,7 +56,7 @@ static void
|
|||
NETBSDAUDIO_Status(_THIS)
|
||||
{
|
||||
#ifdef DEBUG_AUDIO
|
||||
/* *INDENT-OFF* */
|
||||
/* *INDENT-OFF* */ /* clang-format off */
|
||||
audio_info_t info;
|
||||
const struct audio_prinfo *prinfo;
|
||||
|
||||
|
@ -118,7 +118,7 @@ NETBSDAUDIO_Status(_THIS)
|
|||
"",
|
||||
this->spec.format,
|
||||
this->spec.size);
|
||||
/* *INDENT-ON* */
|
||||
/* *INDENT-ON* */ /* clang-format on */
|
||||
#endif /* DEBUG_AUDIO */
|
||||
}
|
||||
|
||||
|
|
|
@ -107,8 +107,6 @@ static int (*PULSEAUDIO_pa_stream_connect_record) (pa_stream *, const char *,
|
|||
static pa_stream_state_t (*PULSEAUDIO_pa_stream_get_state) (const pa_stream *);
|
||||
static size_t (*PULSEAUDIO_pa_stream_writable_size) (const pa_stream *);
|
||||
static size_t (*PULSEAUDIO_pa_stream_readable_size) (const pa_stream *);
|
||||
static int (*PULSEAUDIO_pa_stream_begin_write) (pa_stream *, void **, size_t*);
|
||||
static int (*PULSEAUDIO_pa_stream_cancel_write) (pa_stream *);
|
||||
static int (*PULSEAUDIO_pa_stream_write) (pa_stream *, const void *, size_t,
|
||||
pa_free_cb_t, int64_t, pa_seek_mode_t);
|
||||
static pa_operation * (*PULSEAUDIO_pa_stream_drain) (pa_stream *,
|
||||
|
@ -119,6 +117,7 @@ static pa_operation * (*PULSEAUDIO_pa_stream_flush) (pa_stream *,
|
|||
pa_stream_success_cb_t, void *);
|
||||
static int (*PULSEAUDIO_pa_stream_disconnect) (pa_stream *);
|
||||
static void (*PULSEAUDIO_pa_stream_unref) (pa_stream *);
|
||||
static void (*PULSEAUDIO_pa_stream_set_write_callback)(pa_stream *, pa_stream_request_cb_t, void *);
|
||||
|
||||
static int load_pulseaudio_syms(void);
|
||||
|
||||
|
@ -222,8 +221,6 @@ load_pulseaudio_syms(void)
|
|||
SDL_PULSEAUDIO_SYM(pa_stream_writable_size);
|
||||
SDL_PULSEAUDIO_SYM(pa_stream_readable_size);
|
||||
SDL_PULSEAUDIO_SYM(pa_stream_write);
|
||||
SDL_PULSEAUDIO_SYM(pa_stream_begin_write);
|
||||
SDL_PULSEAUDIO_SYM(pa_stream_cancel_write);
|
||||
SDL_PULSEAUDIO_SYM(pa_stream_drain);
|
||||
SDL_PULSEAUDIO_SYM(pa_stream_disconnect);
|
||||
SDL_PULSEAUDIO_SYM(pa_stream_peek);
|
||||
|
@ -232,6 +229,7 @@ load_pulseaudio_syms(void)
|
|||
SDL_PULSEAUDIO_SYM(pa_stream_unref);
|
||||
SDL_PULSEAUDIO_SYM(pa_channel_map_init_auto);
|
||||
SDL_PULSEAUDIO_SYM(pa_strerror);
|
||||
SDL_PULSEAUDIO_SYM(pa_stream_set_write_callback);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -359,51 +357,56 @@ ConnectToPulseServer(pa_mainloop **_mainloop, pa_context **_context)
|
|||
static void
|
||||
PULSEAUDIO_WaitDevice(_THIS)
|
||||
{
|
||||
struct SDL_PrivateAudioData *h = this->hidden;
|
||||
/* this is a no-op; we wait in PULSEAUDIO_PlayDevice now. */
|
||||
}
|
||||
|
||||
while (SDL_AtomicGet(&this->enabled)) {
|
||||
static void WriteCallback(pa_stream *p, size_t nbytes, void *userdata)
|
||||
{
|
||||
struct SDL_PrivateAudioData *h = (struct SDL_PrivateAudioData *) userdata;
|
||||
/*printf("PULSEAUDIO WRITE CALLBACK! nbytes=%u\n", (unsigned int) nbytes);*/
|
||||
h->bytes_requested += nbytes;
|
||||
}
|
||||
|
||||
static void
|
||||
PULSEAUDIO_PlayDevice(_THIS)
|
||||
{
|
||||
struct SDL_PrivateAudioData *h = this->hidden;
|
||||
int available = h->mixlen;
|
||||
int written = 0;
|
||||
int cpy;
|
||||
|
||||
/*printf("PULSEAUDIO PLAYDEVICE START! mixlen=%d\n", available);*/
|
||||
|
||||
while (SDL_AtomicGet(&this->enabled) && (available > 0)) {
|
||||
cpy = SDL_min(h->bytes_requested, available);
|
||||
if (cpy) {
|
||||
if (PULSEAUDIO_pa_stream_write(h->stream, h->mixbuf + written, cpy, NULL, 0LL, PA_SEEK_RELATIVE) < 0) {
|
||||
SDL_OpenedAudioDeviceDisconnected(this);
|
||||
return;
|
||||
}
|
||||
/*printf("PULSEAUDIO FEED! nbytes=%u\n", (unsigned int) cpy);*/
|
||||
h->bytes_requested -= cpy;
|
||||
written += cpy;
|
||||
available -= cpy;
|
||||
}
|
||||
|
||||
/* let WriteCallback fire if necessary. */
|
||||
/*printf("PULSEAUDIO ITERATE!\n");*/
|
||||
if (PULSEAUDIO_pa_context_get_state(h->context) != PA_CONTEXT_READY ||
|
||||
PULSEAUDIO_pa_stream_get_state(h->stream) != PA_STREAM_READY ||
|
||||
PULSEAUDIO_pa_mainloop_iterate(h->mainloop, 1, NULL) < 0) {
|
||||
SDL_OpenedAudioDeviceDisconnected(this);
|
||||
return;
|
||||
}
|
||||
if (PULSEAUDIO_pa_stream_writable_size(h->stream) >= (h->mixlen/8)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
PULSEAUDIO_PlayDevice(_THIS)
|
||||
{
|
||||
/* Write the audio data */
|
||||
struct SDL_PrivateAudioData *h = this->hidden;
|
||||
if (SDL_AtomicGet(&this->enabled)) {
|
||||
if (PULSEAUDIO_pa_stream_write(h->stream, h->pabuf, h->mixlen, NULL, 0LL, PA_SEEK_RELATIVE) < 0) {
|
||||
SDL_OpenedAudioDeviceDisconnected(this);
|
||||
}
|
||||
}
|
||||
/*printf("PULSEAUDIO PLAYDEVICE END! written=%d\n", written);*/
|
||||
}
|
||||
|
||||
static Uint8 *
|
||||
PULSEAUDIO_GetDeviceBuf(_THIS)
|
||||
{
|
||||
struct SDL_PrivateAudioData *h = this->hidden;
|
||||
size_t nbytes = h->mixlen;
|
||||
int ret;
|
||||
|
||||
ret = PULSEAUDIO_pa_stream_begin_write(h->stream, &h->pabuf, &nbytes);
|
||||
|
||||
if (ret != 0) {
|
||||
/* fall back it intermediate buffer */
|
||||
h->pabuf = h->mixbuf;
|
||||
} else if (nbytes < h->mixlen) {
|
||||
PULSEAUDIO_pa_stream_cancel_write(h->stream);
|
||||
h->pabuf = h->mixbuf;
|
||||
}
|
||||
|
||||
return (Uint8 *)h->pabuf;
|
||||
return this->hidden->mixbuf;
|
||||
}
|
||||
|
||||
|
||||
|
@ -604,9 +607,6 @@ PULSEAUDIO_OpenDevice(_THIS, const char *devname)
|
|||
paspec.format = format;
|
||||
|
||||
/* Calculate the final parameters for this audio specification */
|
||||
#ifdef PA_STREAM_ADJUST_LATENCY
|
||||
this->spec.samples /= 2; /* Mix in smaller chunck to avoid underruns */
|
||||
#endif
|
||||
SDL_CalculateAudioSpec(&this->spec);
|
||||
|
||||
/* Allocate mixing buffer */
|
||||
|
@ -623,22 +623,12 @@ PULSEAUDIO_OpenDevice(_THIS, const char *devname)
|
|||
paspec.rate = this->spec.freq;
|
||||
|
||||
/* Reduced prebuffering compared to the defaults. */
|
||||
#ifdef PA_STREAM_ADJUST_LATENCY
|
||||
paattr.fragsize = this->spec.size;
|
||||
/* 2x original requested bufsize */
|
||||
paattr.tlength = h->mixlen * 4;
|
||||
paattr.tlength = h->mixlen;
|
||||
paattr.prebuf = -1;
|
||||
paattr.maxlength = -1;
|
||||
/* -1 can lead to pa_stream_writable_size() >= mixlen never being true */
|
||||
paattr.minreq = h->mixlen;
|
||||
flags = PA_STREAM_ADJUST_LATENCY;
|
||||
#else
|
||||
paattr.fragsize = this->spec.size;
|
||||
paattr.tlength = h->mixlen*2;
|
||||
paattr.prebuf = h->mixlen*2;
|
||||
paattr.maxlength = h->mixlen*2;
|
||||
paattr.minreq = h->mixlen;
|
||||
#endif
|
||||
paattr.minreq = -1;
|
||||
flags |= PA_STREAM_ADJUST_LATENCY;
|
||||
|
||||
if (ConnectToPulseServer(&h->mainloop, &h->context) < 0) {
|
||||
return SDL_SetError("Could not connect to PulseAudio server");
|
||||
|
@ -675,6 +665,7 @@ PULSEAUDIO_OpenDevice(_THIS, const char *devname)
|
|||
if (iscapture) {
|
||||
rc = PULSEAUDIO_pa_stream_connect_record(h->stream, h->device_name, &paattr, flags);
|
||||
} else {
|
||||
PULSEAUDIO_pa_stream_set_write_callback(h->stream, WriteCallback, h);
|
||||
rc = PULSEAUDIO_pa_stream_connect_playback(h->stream, h->device_name, &paattr, flags, NULL, NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -43,11 +43,7 @@ struct SDL_PrivateAudioData
|
|||
Uint8 *mixbuf;
|
||||
int mixlen;
|
||||
|
||||
/* Pointer to the actual buffer in use in the current
|
||||
GetDeviceBuf() -> PlayDevice() iteration.
|
||||
Can be either the pointer returned by pa_stream_begin_write()
|
||||
or mixbuf */
|
||||
void *pabuf;
|
||||
int bytes_requested; /* bytes of data the hardware wants _now_. */
|
||||
|
||||
const Uint8 *capturebuf;
|
||||
int capturelen;
|
||||
|
|
|
@ -362,7 +362,7 @@ typedef struct
|
|||
WAVEFORMATEXTENSIBLE fmt;
|
||||
} EndpointItem;
|
||||
|
||||
static int sort_endpoints(const void *_a, const void *_b)
|
||||
static int SDLCALL sort_endpoints(const void *_a, const void *_b)
|
||||
{
|
||||
LPWSTR a = ((const EndpointItem *) _a)->devid;
|
||||
LPWSTR b = ((const EndpointItem *) _b)->devid;
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "SDL_hints.h"
|
||||
#include "SDL_dbus.h"
|
||||
#include "SDL_atomic.h"
|
||||
#include "../../stdlib/SDL_vacopy.h"
|
||||
|
||||
#if SDL_USE_LIBDBUS
|
||||
/* we never link directly to libdbus. */
|
||||
|
|
|
@ -27,8 +27,6 @@
|
|||
|
||||
HidD_GetString_t SDL_HidD_GetManufacturerString;
|
||||
HidD_GetString_t SDL_HidD_GetProductString;
|
||||
HidD_GetPreparsedData_t SDL_HidD_GetPreparsedData;
|
||||
HidD_FreePreparsedData_t SDL_HidD_FreePreparsedData;
|
||||
HidP_GetCaps_t SDL_HidP_GetCaps;
|
||||
HidP_GetButtonCaps_t SDL_HidP_GetButtonCaps;
|
||||
HidP_GetValueCaps_t SDL_HidP_GetValueCaps;
|
||||
|
@ -58,15 +56,13 @@ WIN_LoadHIDDLL(void)
|
|||
|
||||
SDL_HidD_GetManufacturerString = (HidD_GetString_t)GetProcAddress(s_pHIDDLL, "HidD_GetManufacturerString");
|
||||
SDL_HidD_GetProductString = (HidD_GetString_t)GetProcAddress(s_pHIDDLL, "HidD_GetProductString");
|
||||
SDL_HidD_GetPreparsedData = (HidD_GetPreparsedData_t)GetProcAddress(s_pHIDDLL, "HidD_GetPreparsedData");
|
||||
SDL_HidD_FreePreparsedData = (HidD_FreePreparsedData_t)GetProcAddress(s_pHIDDLL, "HidD_FreePreparsedData");
|
||||
SDL_HidP_GetCaps = (HidP_GetCaps_t)GetProcAddress(s_pHIDDLL, "HidP_GetCaps");
|
||||
SDL_HidP_GetButtonCaps = (HidP_GetButtonCaps_t)GetProcAddress(s_pHIDDLL, "HidP_GetButtonCaps");
|
||||
SDL_HidP_GetValueCaps = (HidP_GetValueCaps_t)GetProcAddress(s_pHIDDLL, "HidP_GetValueCaps");
|
||||
SDL_HidP_MaxDataListLength = (HidP_MaxDataListLength_t)GetProcAddress(s_pHIDDLL, "HidP_MaxDataListLength");
|
||||
SDL_HidP_GetData = (HidP_GetData_t)GetProcAddress(s_pHIDDLL, "HidP_GetData");
|
||||
if (!SDL_HidD_GetManufacturerString || !SDL_HidD_GetProductString || !SDL_HidD_GetPreparsedData ||
|
||||
!SDL_HidD_FreePreparsedData || !SDL_HidP_GetCaps || !SDL_HidP_GetButtonCaps ||
|
||||
if (!SDL_HidD_GetManufacturerString || !SDL_HidD_GetProductString ||
|
||||
!SDL_HidP_GetCaps || !SDL_HidP_GetButtonCaps ||
|
||||
!SDL_HidP_GetValueCaps || !SDL_HidP_MaxDataListLength || !SDL_HidP_GetData) {
|
||||
WIN_UnloadHIDDLL();
|
||||
return -1;
|
||||
|
|
|
@ -183,8 +183,6 @@ extern int WIN_LoadHIDDLL(void);
|
|||
extern void WIN_UnloadHIDDLL(void);
|
||||
|
||||
typedef BOOLEAN (WINAPI *HidD_GetString_t)(HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
|
||||
typedef BOOLEAN (WINAPI *HidD_GetPreparsedData_t)(HANDLE HidDeviceObject, PHIDP_PREPARSED_DATA *PreparsedData);
|
||||
typedef BOOLEAN (WINAPI *HidD_FreePreparsedData_t)(PHIDP_PREPARSED_DATA PreparsedData);
|
||||
typedef NTSTATUS (WINAPI *HidP_GetCaps_t)(PHIDP_PREPARSED_DATA PreparsedData, PHIDP_CAPS Capabilities);
|
||||
typedef NTSTATUS (WINAPI *HidP_GetButtonCaps_t)(HIDP_REPORT_TYPE ReportType, PHIDP_BUTTON_CAPS ButtonCaps, PUSHORT ButtonCapsLength, PHIDP_PREPARSED_DATA PreparsedData);
|
||||
typedef NTSTATUS (WINAPI *HidP_GetValueCaps_t)(HIDP_REPORT_TYPE ReportType, PHIDP_VALUE_CAPS ValueCaps, PUSHORT ValueCapsLength, PHIDP_PREPARSED_DATA PreparsedData);
|
||||
|
@ -193,8 +191,6 @@ typedef NTSTATUS (WINAPI *HidP_GetData_t)(HIDP_REPORT_TYPE ReportType, PHIDP_DAT
|
|||
|
||||
extern HidD_GetString_t SDL_HidD_GetManufacturerString;
|
||||
extern HidD_GetString_t SDL_HidD_GetProductString;
|
||||
extern HidD_GetPreparsedData_t SDL_HidD_GetPreparsedData;
|
||||
extern HidD_FreePreparsedData_t SDL_HidD_FreePreparsedData;
|
||||
extern HidP_GetCaps_t SDL_HidP_GetCaps;
|
||||
extern HidP_GetButtonCaps_t SDL_HidP_GetButtonCaps;
|
||||
extern HidP_GetValueCaps_t SDL_HidP_GetValueCaps;
|
||||
|
|
|
@ -30,6 +30,8 @@
|
|||
#ifndef UNICODE
|
||||
#define UNICODE 1
|
||||
#endif
|
||||
#undef WINVER
|
||||
#define WINVER 0x0501
|
||||
#undef _WIN32_WINNT
|
||||
#define _WIN32_WINNT 0x501 /* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices(), 0x501 for raw input */
|
||||
#endif
|
||||
|
|
|
@ -23,8 +23,6 @@
|
|||
#include "SDL_xinput.h"
|
||||
|
||||
|
||||
#ifdef HAVE_XINPUT_H
|
||||
|
||||
XInputGetState_t SDL_XInputGetState = NULL;
|
||||
XInputSetState_t SDL_XInputSetState = NULL;
|
||||
XInputGetCapabilities_t SDL_XInputGetCapabilities = NULL;
|
||||
|
@ -137,6 +135,5 @@ WIN_UnloadXInputDLL(void)
|
|||
}
|
||||
|
||||
#endif /* __WINRT__ */
|
||||
#endif /* HAVE_XINPUT_H */
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -23,10 +23,11 @@
|
|||
#ifndef SDL_xinput_h_
|
||||
#define SDL_xinput_h_
|
||||
|
||||
#ifdef HAVE_XINPUT_H
|
||||
|
||||
#include "SDL_windows.h"
|
||||
|
||||
#ifdef HAVE_XINPUT_H
|
||||
#include <xinput.h>
|
||||
#endif /* HAVE_XINPUT_H */
|
||||
|
||||
#ifndef XUSER_MAX_COUNT
|
||||
#define XUSER_MAX_COUNT 4
|
||||
|
@ -72,6 +73,53 @@
|
|||
#define XINPUT_DEVSUBTYPE_ARCADE_PAD 0x13
|
||||
#endif
|
||||
|
||||
#ifndef XINPUT_FLAG_GAMEPAD
|
||||
#define XINPUT_FLAG_GAMEPAD 0x01
|
||||
#endif
|
||||
|
||||
#ifndef XINPUT_GAMEPAD_DPAD_UP
|
||||
#define XINPUT_GAMEPAD_DPAD_UP 0x0001
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_DPAD_DOWN
|
||||
#define XINPUT_GAMEPAD_DPAD_DOWN 0x0002
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_DPAD_LEFT
|
||||
#define XINPUT_GAMEPAD_DPAD_LEFT 0x0004
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_DPAD_RIGHT
|
||||
#define XINPUT_GAMEPAD_DPAD_RIGHT 0x0008
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_START
|
||||
#define XINPUT_GAMEPAD_START 0x0010
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_BACK
|
||||
#define XINPUT_GAMEPAD_BACK 0x0020
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_LEFT_THUMB
|
||||
#define XINPUT_GAMEPAD_LEFT_THUMB 0x0040
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_RIGHT_THUMB
|
||||
#define XINPUT_GAMEPAD_RIGHT_THUMB 0x0080
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_LEFT_SHOULDER
|
||||
#define XINPUT_GAMEPAD_LEFT_SHOULDER 0x0100
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_RIGHT_SHOULDER
|
||||
#define XINPUT_GAMEPAD_RIGHT_SHOULDER 0x0200
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_A
|
||||
#define XINPUT_GAMEPAD_A 0x1000
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_B
|
||||
#define XINPUT_GAMEPAD_B 0x2000
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_X
|
||||
#define XINPUT_GAMEPAD_X 0x4000
|
||||
#endif
|
||||
#ifndef XINPUT_GAMEPAD_Y
|
||||
#define XINPUT_GAMEPAD_Y 0x8000
|
||||
#endif
|
||||
|
||||
#ifndef XINPUT_GAMEPAD_GUIDE
|
||||
#define XINPUT_GAMEPAD_GUIDE 0x0400
|
||||
#endif
|
||||
|
@ -129,6 +177,36 @@ typedef struct
|
|||
BYTE BatteryLevel;
|
||||
} XINPUT_BATTERY_INFORMATION_EX;
|
||||
|
||||
#ifndef HAVE_XINPUT_H
|
||||
|
||||
typedef struct
|
||||
{
|
||||
WORD wButtons;
|
||||
BYTE bLeftTrigger;
|
||||
BYTE bRightTrigger;
|
||||
SHORT sThumbLX;
|
||||
SHORT sThumbLY;
|
||||
SHORT sThumbRX;
|
||||
SHORT sThumbRY;
|
||||
} XINPUT_GAMEPAD;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
WORD wLeftMotorSpeed;
|
||||
WORD wRightMotorSpeed;
|
||||
} XINPUT_VIBRATION;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
BYTE Type;
|
||||
BYTE SubType;
|
||||
WORD Flags;
|
||||
XINPUT_GAMEPAD Gamepad;
|
||||
XINPUT_VIBRATION Vibration;
|
||||
} XINPUT_CAPABILITIES;
|
||||
|
||||
#endif /* HAVE_XINPUT_H */
|
||||
|
||||
/* Forward decl's for XInput API's we load dynamically and use if available */
|
||||
typedef DWORD (WINAPI *XInputGetState_t)
|
||||
(
|
||||
|
@ -170,8 +248,6 @@ extern DWORD SDL_XInputVersion; /* ((major << 16) & 0xFF00) | (minor & 0xFF) */
|
|||
#define XINPUTGETCAPABILITIES SDL_XInputGetCapabilities
|
||||
#define XINPUTGETBATTERYINFORMATION SDL_XInputGetBatteryInformation
|
||||
|
||||
#endif /* HAVE_XINPUT_H */
|
||||
|
||||
#endif /* SDL_xinput_h_ */
|
||||
|
||||
/* vi: set ts=4 sw=4 expandtab: */
|
||||
|
|
|
@ -130,7 +130,7 @@ CPU_haveCPUID(void)
|
|||
{
|
||||
int has_CPUID = 0;
|
||||
|
||||
/* *INDENT-OFF* */
|
||||
/* *INDENT-OFF* */ /* clang-format off */
|
||||
#ifndef SDL_CPUINFO_DISABLED
|
||||
#if (defined(__GNUC__) || defined(__llvm__)) && defined(__i386__)
|
||||
__asm__ (
|
||||
|
@ -219,7 +219,7 @@ done:
|
|||
);
|
||||
#endif
|
||||
#endif
|
||||
/* *INDENT-ON* */
|
||||
/* *INDENT-ON* */ /* clang-format on */
|
||||
return has_CPUID;
|
||||
}
|
||||
|
||||
|
@ -1058,10 +1058,18 @@ void *
|
|||
SDL_SIMDAlloc(const size_t len)
|
||||
{
|
||||
const size_t alignment = SDL_SIMDGetAlignment();
|
||||
const size_t padding = alignment - (len % alignment);
|
||||
const size_t padded = (padding != alignment) ? (len + padding) : len;
|
||||
const size_t padding = (alignment - (len % alignment)) % alignment;
|
||||
Uint8 *retval = NULL;
|
||||
Uint8 *ptr = (Uint8 *) SDL_malloc(padded + alignment + sizeof (void *));
|
||||
Uint8 *ptr;
|
||||
size_t to_allocate;
|
||||
|
||||
/* alignment + padding + sizeof (void *) is bounded (a few hundred
|
||||
* bytes max), so no need to check for overflow within that argument */
|
||||
if (SDL_size_add_overflow(len, alignment + padding + sizeof (void *), &to_allocate)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ptr = (Uint8 *) SDL_malloc(to_allocate);
|
||||
if (ptr) {
|
||||
/* store the actual allocated pointer right before our aligned pointer. */
|
||||
retval = ptr + sizeof (void *);
|
||||
|
@ -1075,12 +1083,18 @@ void *
|
|||
SDL_SIMDRealloc(void *mem, const size_t len)
|
||||
{
|
||||
const size_t alignment = SDL_SIMDGetAlignment();
|
||||
const size_t padding = alignment - (len % alignment);
|
||||
const size_t padded = (padding != alignment) ? (len + padding) : len;
|
||||
const size_t padding = (alignment - (len % alignment)) % alignment;
|
||||
Uint8 *retval = (Uint8*) mem;
|
||||
void *oldmem = mem;
|
||||
size_t memdiff = 0, ptrdiff;
|
||||
Uint8 *ptr;
|
||||
size_t to_allocate;
|
||||
|
||||
/* alignment + padding + sizeof (void *) is bounded (a few hundred
|
||||
* bytes max), so no need to check for overflow within that argument */
|
||||
if (SDL_size_add_overflow(len, alignment + padding + sizeof (void *), &to_allocate)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (mem) {
|
||||
void **realptr = (void **) mem;
|
||||
|
@ -1091,7 +1105,7 @@ SDL_SIMDRealloc(void *mem, const size_t len)
|
|||
memdiff = ((size_t) oldmem) - ((size_t) mem);
|
||||
}
|
||||
|
||||
ptr = (Uint8 *) SDL_realloc(mem, padded + alignment + sizeof (void *));
|
||||
ptr = (Uint8 *) SDL_realloc(mem, to_allocate);
|
||||
|
||||
if (ptr == NULL) {
|
||||
return NULL; /* Out of memory, bail! */
|
||||
|
|
|
@ -0,0 +1,843 @@
|
|||
# Windows exports file for Watcom
|
||||
# DO NOT EDIT THIS FILE BY HAND. It is autogenerated by gendynapi.pl.
|
||||
++'_SDL_DYNAPI_entry'.'SDL2.dll'.'SDL_DYNAPI_entry'
|
||||
++'_SDL_SetError'.'SDL2.dll'.'SDL_SetError'
|
||||
++'_SDL_Log'.'SDL2.dll'.'SDL_Log'
|
||||
++'_SDL_LogVerbose'.'SDL2.dll'.'SDL_LogVerbose'
|
||||
++'_SDL_LogDebug'.'SDL2.dll'.'SDL_LogDebug'
|
||||
++'_SDL_LogInfo'.'SDL2.dll'.'SDL_LogInfo'
|
||||
++'_SDL_LogWarn'.'SDL2.dll'.'SDL_LogWarn'
|
||||
++'_SDL_LogError'.'SDL2.dll'.'SDL_LogError'
|
||||
++'_SDL_LogCritical'.'SDL2.dll'.'SDL_LogCritical'
|
||||
++'_SDL_LogMessage'.'SDL2.dll'.'SDL_LogMessage'
|
||||
++'_SDL_sscanf'.'SDL2.dll'.'SDL_sscanf'
|
||||
++'_SDL_snprintf'.'SDL2.dll'.'SDL_snprintf'
|
||||
++'_SDL_CreateThread'.'SDL2.dll'.'SDL_CreateThread'
|
||||
++'_SDL_RWFromFP'.'SDL2.dll'.'SDL_RWFromFP'
|
||||
++'_SDL_RegisterApp'.'SDL2.dll'.'SDL_RegisterApp'
|
||||
++'_SDL_UnregisterApp'.'SDL2.dll'.'SDL_UnregisterApp'
|
||||
++'_SDL_Direct3D9GetAdapterIndex'.'SDL2.dll'.'SDL_Direct3D9GetAdapterIndex'
|
||||
++'_SDL_RenderGetD3D9Device'.'SDL2.dll'.'SDL_RenderGetD3D9Device'
|
||||
# ++'_SDL_iPhoneSetAnimationCallback'.'SDL2.dll'.'SDL_iPhoneSetAnimationCallback'
|
||||
# ++'_SDL_iPhoneSetEventPump'.'SDL2.dll'.'SDL_iPhoneSetEventPump'
|
||||
# ++'_SDL_AndroidGetJNIEnv'.'SDL2.dll'.'SDL_AndroidGetJNIEnv'
|
||||
# ++'_SDL_AndroidGetActivity'.'SDL2.dll'.'SDL_AndroidGetActivity'
|
||||
# ++'_SDL_AndroidGetInternalStoragePath'.'SDL2.dll'.'SDL_AndroidGetInternalStoragePath'
|
||||
# ++'_SDL_AndroidGetExternalStorageState'.'SDL2.dll'.'SDL_AndroidGetExternalStorageState'
|
||||
# ++'_SDL_AndroidGetExternalStoragePath'.'SDL2.dll'.'SDL_AndroidGetExternalStoragePath'
|
||||
++'_SDL_Init'.'SDL2.dll'.'SDL_Init'
|
||||
++'_SDL_InitSubSystem'.'SDL2.dll'.'SDL_InitSubSystem'
|
||||
++'_SDL_QuitSubSystem'.'SDL2.dll'.'SDL_QuitSubSystem'
|
||||
++'_SDL_WasInit'.'SDL2.dll'.'SDL_WasInit'
|
||||
++'_SDL_Quit'.'SDL2.dll'.'SDL_Quit'
|
||||
++'_SDL_ReportAssertion'.'SDL2.dll'.'SDL_ReportAssertion'
|
||||
++'_SDL_SetAssertionHandler'.'SDL2.dll'.'SDL_SetAssertionHandler'
|
||||
++'_SDL_GetAssertionReport'.'SDL2.dll'.'SDL_GetAssertionReport'
|
||||
++'_SDL_ResetAssertionReport'.'SDL2.dll'.'SDL_ResetAssertionReport'
|
||||
++'_SDL_AtomicTryLock'.'SDL2.dll'.'SDL_AtomicTryLock'
|
||||
++'_SDL_AtomicLock'.'SDL2.dll'.'SDL_AtomicLock'
|
||||
++'_SDL_AtomicUnlock'.'SDL2.dll'.'SDL_AtomicUnlock'
|
||||
++'_SDL_AtomicCAS'.'SDL2.dll'.'SDL_AtomicCAS'
|
||||
++'_SDL_AtomicSet'.'SDL2.dll'.'SDL_AtomicSet'
|
||||
++'_SDL_AtomicGet'.'SDL2.dll'.'SDL_AtomicGet'
|
||||
++'_SDL_AtomicAdd'.'SDL2.dll'.'SDL_AtomicAdd'
|
||||
++'_SDL_AtomicCASPtr'.'SDL2.dll'.'SDL_AtomicCASPtr'
|
||||
++'_SDL_AtomicSetPtr'.'SDL2.dll'.'SDL_AtomicSetPtr'
|
||||
++'_SDL_AtomicGetPtr'.'SDL2.dll'.'SDL_AtomicGetPtr'
|
||||
++'_SDL_GetNumAudioDrivers'.'SDL2.dll'.'SDL_GetNumAudioDrivers'
|
||||
++'_SDL_GetAudioDriver'.'SDL2.dll'.'SDL_GetAudioDriver'
|
||||
++'_SDL_AudioInit'.'SDL2.dll'.'SDL_AudioInit'
|
||||
++'_SDL_AudioQuit'.'SDL2.dll'.'SDL_AudioQuit'
|
||||
++'_SDL_GetCurrentAudioDriver'.'SDL2.dll'.'SDL_GetCurrentAudioDriver'
|
||||
++'_SDL_OpenAudio'.'SDL2.dll'.'SDL_OpenAudio'
|
||||
++'_SDL_GetNumAudioDevices'.'SDL2.dll'.'SDL_GetNumAudioDevices'
|
||||
++'_SDL_GetAudioDeviceName'.'SDL2.dll'.'SDL_GetAudioDeviceName'
|
||||
++'_SDL_OpenAudioDevice'.'SDL2.dll'.'SDL_OpenAudioDevice'
|
||||
++'_SDL_GetAudioStatus'.'SDL2.dll'.'SDL_GetAudioStatus'
|
||||
++'_SDL_GetAudioDeviceStatus'.'SDL2.dll'.'SDL_GetAudioDeviceStatus'
|
||||
++'_SDL_PauseAudio'.'SDL2.dll'.'SDL_PauseAudio'
|
||||
++'_SDL_PauseAudioDevice'.'SDL2.dll'.'SDL_PauseAudioDevice'
|
||||
++'_SDL_LoadWAV_RW'.'SDL2.dll'.'SDL_LoadWAV_RW'
|
||||
++'_SDL_FreeWAV'.'SDL2.dll'.'SDL_FreeWAV'
|
||||
++'_SDL_BuildAudioCVT'.'SDL2.dll'.'SDL_BuildAudioCVT'
|
||||
++'_SDL_ConvertAudio'.'SDL2.dll'.'SDL_ConvertAudio'
|
||||
++'_SDL_MixAudio'.'SDL2.dll'.'SDL_MixAudio'
|
||||
++'_SDL_MixAudioFormat'.'SDL2.dll'.'SDL_MixAudioFormat'
|
||||
++'_SDL_LockAudio'.'SDL2.dll'.'SDL_LockAudio'
|
||||
++'_SDL_LockAudioDevice'.'SDL2.dll'.'SDL_LockAudioDevice'
|
||||
++'_SDL_UnlockAudio'.'SDL2.dll'.'SDL_UnlockAudio'
|
||||
++'_SDL_UnlockAudioDevice'.'SDL2.dll'.'SDL_UnlockAudioDevice'
|
||||
++'_SDL_CloseAudio'.'SDL2.dll'.'SDL_CloseAudio'
|
||||
++'_SDL_CloseAudioDevice'.'SDL2.dll'.'SDL_CloseAudioDevice'
|
||||
++'_SDL_SetClipboardText'.'SDL2.dll'.'SDL_SetClipboardText'
|
||||
++'_SDL_GetClipboardText'.'SDL2.dll'.'SDL_GetClipboardText'
|
||||
++'_SDL_HasClipboardText'.'SDL2.dll'.'SDL_HasClipboardText'
|
||||
++'_SDL_GetCPUCount'.'SDL2.dll'.'SDL_GetCPUCount'
|
||||
++'_SDL_GetCPUCacheLineSize'.'SDL2.dll'.'SDL_GetCPUCacheLineSize'
|
||||
++'_SDL_HasRDTSC'.'SDL2.dll'.'SDL_HasRDTSC'
|
||||
++'_SDL_HasAltiVec'.'SDL2.dll'.'SDL_HasAltiVec'
|
||||
++'_SDL_HasMMX'.'SDL2.dll'.'SDL_HasMMX'
|
||||
++'_SDL_Has3DNow'.'SDL2.dll'.'SDL_Has3DNow'
|
||||
++'_SDL_HasSSE'.'SDL2.dll'.'SDL_HasSSE'
|
||||
++'_SDL_HasSSE2'.'SDL2.dll'.'SDL_HasSSE2'
|
||||
++'_SDL_HasSSE3'.'SDL2.dll'.'SDL_HasSSE3'
|
||||
++'_SDL_HasSSE41'.'SDL2.dll'.'SDL_HasSSE41'
|
||||
++'_SDL_HasSSE42'.'SDL2.dll'.'SDL_HasSSE42'
|
||||
++'_SDL_GetSystemRAM'.'SDL2.dll'.'SDL_GetSystemRAM'
|
||||
++'_SDL_GetError'.'SDL2.dll'.'SDL_GetError'
|
||||
++'_SDL_ClearError'.'SDL2.dll'.'SDL_ClearError'
|
||||
++'_SDL_Error'.'SDL2.dll'.'SDL_Error'
|
||||
++'_SDL_PumpEvents'.'SDL2.dll'.'SDL_PumpEvents'
|
||||
++'_SDL_PeepEvents'.'SDL2.dll'.'SDL_PeepEvents'
|
||||
++'_SDL_HasEvent'.'SDL2.dll'.'SDL_HasEvent'
|
||||
++'_SDL_HasEvents'.'SDL2.dll'.'SDL_HasEvents'
|
||||
++'_SDL_FlushEvent'.'SDL2.dll'.'SDL_FlushEvent'
|
||||
++'_SDL_FlushEvents'.'SDL2.dll'.'SDL_FlushEvents'
|
||||
++'_SDL_PollEvent'.'SDL2.dll'.'SDL_PollEvent'
|
||||
++'_SDL_WaitEvent'.'SDL2.dll'.'SDL_WaitEvent'
|
||||
++'_SDL_WaitEventTimeout'.'SDL2.dll'.'SDL_WaitEventTimeout'
|
||||
++'_SDL_PushEvent'.'SDL2.dll'.'SDL_PushEvent'
|
||||
++'_SDL_SetEventFilter'.'SDL2.dll'.'SDL_SetEventFilter'
|
||||
++'_SDL_GetEventFilter'.'SDL2.dll'.'SDL_GetEventFilter'
|
||||
++'_SDL_AddEventWatch'.'SDL2.dll'.'SDL_AddEventWatch'
|
||||
++'_SDL_DelEventWatch'.'SDL2.dll'.'SDL_DelEventWatch'
|
||||
++'_SDL_FilterEvents'.'SDL2.dll'.'SDL_FilterEvents'
|
||||
++'_SDL_EventState'.'SDL2.dll'.'SDL_EventState'
|
||||
++'_SDL_RegisterEvents'.'SDL2.dll'.'SDL_RegisterEvents'
|
||||
++'_SDL_GetBasePath'.'SDL2.dll'.'SDL_GetBasePath'
|
||||
++'_SDL_GetPrefPath'.'SDL2.dll'.'SDL_GetPrefPath'
|
||||
++'_SDL_GameControllerAddMapping'.'SDL2.dll'.'SDL_GameControllerAddMapping'
|
||||
++'_SDL_GameControllerMappingForGUID'.'SDL2.dll'.'SDL_GameControllerMappingForGUID'
|
||||
++'_SDL_GameControllerMapping'.'SDL2.dll'.'SDL_GameControllerMapping'
|
||||
++'_SDL_IsGameController'.'SDL2.dll'.'SDL_IsGameController'
|
||||
++'_SDL_GameControllerNameForIndex'.'SDL2.dll'.'SDL_GameControllerNameForIndex'
|
||||
++'_SDL_GameControllerOpen'.'SDL2.dll'.'SDL_GameControllerOpen'
|
||||
++'_SDL_GameControllerName'.'SDL2.dll'.'SDL_GameControllerName'
|
||||
++'_SDL_GameControllerGetAttached'.'SDL2.dll'.'SDL_GameControllerGetAttached'
|
||||
++'_SDL_GameControllerGetJoystick'.'SDL2.dll'.'SDL_GameControllerGetJoystick'
|
||||
++'_SDL_GameControllerEventState'.'SDL2.dll'.'SDL_GameControllerEventState'
|
||||
++'_SDL_GameControllerUpdate'.'SDL2.dll'.'SDL_GameControllerUpdate'
|
||||
++'_SDL_GameControllerGetAxisFromString'.'SDL2.dll'.'SDL_GameControllerGetAxisFromString'
|
||||
++'_SDL_GameControllerGetStringForAxis'.'SDL2.dll'.'SDL_GameControllerGetStringForAxis'
|
||||
++'_SDL_GameControllerGetBindForAxis'.'SDL2.dll'.'SDL_GameControllerGetBindForAxis'
|
||||
++'_SDL_GameControllerGetAxis'.'SDL2.dll'.'SDL_GameControllerGetAxis'
|
||||
++'_SDL_GameControllerGetButtonFromString'.'SDL2.dll'.'SDL_GameControllerGetButtonFromString'
|
||||
++'_SDL_GameControllerGetStringForButton'.'SDL2.dll'.'SDL_GameControllerGetStringForButton'
|
||||
++'_SDL_GameControllerGetBindForButton'.'SDL2.dll'.'SDL_GameControllerGetBindForButton'
|
||||
++'_SDL_GameControllerGetButton'.'SDL2.dll'.'SDL_GameControllerGetButton'
|
||||
++'_SDL_GameControllerClose'.'SDL2.dll'.'SDL_GameControllerClose'
|
||||
++'_SDL_RecordGesture'.'SDL2.dll'.'SDL_RecordGesture'
|
||||
++'_SDL_SaveAllDollarTemplates'.'SDL2.dll'.'SDL_SaveAllDollarTemplates'
|
||||
++'_SDL_SaveDollarTemplate'.'SDL2.dll'.'SDL_SaveDollarTemplate'
|
||||
++'_SDL_LoadDollarTemplates'.'SDL2.dll'.'SDL_LoadDollarTemplates'
|
||||
++'_SDL_NumHaptics'.'SDL2.dll'.'SDL_NumHaptics'
|
||||
++'_SDL_HapticName'.'SDL2.dll'.'SDL_HapticName'
|
||||
++'_SDL_HapticOpen'.'SDL2.dll'.'SDL_HapticOpen'
|
||||
++'_SDL_HapticOpened'.'SDL2.dll'.'SDL_HapticOpened'
|
||||
++'_SDL_HapticIndex'.'SDL2.dll'.'SDL_HapticIndex'
|
||||
++'_SDL_MouseIsHaptic'.'SDL2.dll'.'SDL_MouseIsHaptic'
|
||||
++'_SDL_HapticOpenFromMouse'.'SDL2.dll'.'SDL_HapticOpenFromMouse'
|
||||
++'_SDL_JoystickIsHaptic'.'SDL2.dll'.'SDL_JoystickIsHaptic'
|
||||
++'_SDL_HapticOpenFromJoystick'.'SDL2.dll'.'SDL_HapticOpenFromJoystick'
|
||||
++'_SDL_HapticClose'.'SDL2.dll'.'SDL_HapticClose'
|
||||
++'_SDL_HapticNumEffects'.'SDL2.dll'.'SDL_HapticNumEffects'
|
||||
++'_SDL_HapticNumEffectsPlaying'.'SDL2.dll'.'SDL_HapticNumEffectsPlaying'
|
||||
++'_SDL_HapticQuery'.'SDL2.dll'.'SDL_HapticQuery'
|
||||
++'_SDL_HapticNumAxes'.'SDL2.dll'.'SDL_HapticNumAxes'
|
||||
++'_SDL_HapticEffectSupported'.'SDL2.dll'.'SDL_HapticEffectSupported'
|
||||
++'_SDL_HapticNewEffect'.'SDL2.dll'.'SDL_HapticNewEffect'
|
||||
++'_SDL_HapticUpdateEffect'.'SDL2.dll'.'SDL_HapticUpdateEffect'
|
||||
++'_SDL_HapticRunEffect'.'SDL2.dll'.'SDL_HapticRunEffect'
|
||||
++'_SDL_HapticStopEffect'.'SDL2.dll'.'SDL_HapticStopEffect'
|
||||
++'_SDL_HapticDestroyEffect'.'SDL2.dll'.'SDL_HapticDestroyEffect'
|
||||
++'_SDL_HapticGetEffectStatus'.'SDL2.dll'.'SDL_HapticGetEffectStatus'
|
||||
++'_SDL_HapticSetGain'.'SDL2.dll'.'SDL_HapticSetGain'
|
||||
++'_SDL_HapticSetAutocenter'.'SDL2.dll'.'SDL_HapticSetAutocenter'
|
||||
++'_SDL_HapticPause'.'SDL2.dll'.'SDL_HapticPause'
|
||||
++'_SDL_HapticUnpause'.'SDL2.dll'.'SDL_HapticUnpause'
|
||||
++'_SDL_HapticStopAll'.'SDL2.dll'.'SDL_HapticStopAll'
|
||||
++'_SDL_HapticRumbleSupported'.'SDL2.dll'.'SDL_HapticRumbleSupported'
|
||||
++'_SDL_HapticRumbleInit'.'SDL2.dll'.'SDL_HapticRumbleInit'
|
||||
++'_SDL_HapticRumblePlay'.'SDL2.dll'.'SDL_HapticRumblePlay'
|
||||
++'_SDL_HapticRumbleStop'.'SDL2.dll'.'SDL_HapticRumbleStop'
|
||||
++'_SDL_SetHintWithPriority'.'SDL2.dll'.'SDL_SetHintWithPriority'
|
||||
++'_SDL_SetHint'.'SDL2.dll'.'SDL_SetHint'
|
||||
++'_SDL_GetHint'.'SDL2.dll'.'SDL_GetHint'
|
||||
++'_SDL_AddHintCallback'.'SDL2.dll'.'SDL_AddHintCallback'
|
||||
++'_SDL_DelHintCallback'.'SDL2.dll'.'SDL_DelHintCallback'
|
||||
++'_SDL_ClearHints'.'SDL2.dll'.'SDL_ClearHints'
|
||||
++'_SDL_NumJoysticks'.'SDL2.dll'.'SDL_NumJoysticks'
|
||||
++'_SDL_JoystickNameForIndex'.'SDL2.dll'.'SDL_JoystickNameForIndex'
|
||||
++'_SDL_JoystickOpen'.'SDL2.dll'.'SDL_JoystickOpen'
|
||||
++'_SDL_JoystickName'.'SDL2.dll'.'SDL_JoystickName'
|
||||
++'_SDL_JoystickGetDeviceGUID'.'SDL2.dll'.'SDL_JoystickGetDeviceGUID'
|
||||
++'_SDL_JoystickGetGUID'.'SDL2.dll'.'SDL_JoystickGetGUID'
|
||||
++'_SDL_JoystickGetGUIDString'.'SDL2.dll'.'SDL_JoystickGetGUIDString'
|
||||
++'_SDL_JoystickGetGUIDFromString'.'SDL2.dll'.'SDL_JoystickGetGUIDFromString'
|
||||
++'_SDL_JoystickGetAttached'.'SDL2.dll'.'SDL_JoystickGetAttached'
|
||||
++'_SDL_JoystickInstanceID'.'SDL2.dll'.'SDL_JoystickInstanceID'
|
||||
++'_SDL_JoystickNumAxes'.'SDL2.dll'.'SDL_JoystickNumAxes'
|
||||
++'_SDL_JoystickNumBalls'.'SDL2.dll'.'SDL_JoystickNumBalls'
|
||||
++'_SDL_JoystickNumHats'.'SDL2.dll'.'SDL_JoystickNumHats'
|
||||
++'_SDL_JoystickNumButtons'.'SDL2.dll'.'SDL_JoystickNumButtons'
|
||||
++'_SDL_JoystickUpdate'.'SDL2.dll'.'SDL_JoystickUpdate'
|
||||
++'_SDL_JoystickEventState'.'SDL2.dll'.'SDL_JoystickEventState'
|
||||
++'_SDL_JoystickGetAxis'.'SDL2.dll'.'SDL_JoystickGetAxis'
|
||||
++'_SDL_JoystickGetHat'.'SDL2.dll'.'SDL_JoystickGetHat'
|
||||
++'_SDL_JoystickGetBall'.'SDL2.dll'.'SDL_JoystickGetBall'
|
||||
++'_SDL_JoystickGetButton'.'SDL2.dll'.'SDL_JoystickGetButton'
|
||||
++'_SDL_JoystickClose'.'SDL2.dll'.'SDL_JoystickClose'
|
||||
++'_SDL_GetKeyboardFocus'.'SDL2.dll'.'SDL_GetKeyboardFocus'
|
||||
++'_SDL_GetKeyboardState'.'SDL2.dll'.'SDL_GetKeyboardState'
|
||||
++'_SDL_GetModState'.'SDL2.dll'.'SDL_GetModState'
|
||||
++'_SDL_SetModState'.'SDL2.dll'.'SDL_SetModState'
|
||||
++'_SDL_GetKeyFromScancode'.'SDL2.dll'.'SDL_GetKeyFromScancode'
|
||||
++'_SDL_GetScancodeFromKey'.'SDL2.dll'.'SDL_GetScancodeFromKey'
|
||||
++'_SDL_GetScancodeName'.'SDL2.dll'.'SDL_GetScancodeName'
|
||||
++'_SDL_GetScancodeFromName'.'SDL2.dll'.'SDL_GetScancodeFromName'
|
||||
++'_SDL_GetKeyName'.'SDL2.dll'.'SDL_GetKeyName'
|
||||
++'_SDL_GetKeyFromName'.'SDL2.dll'.'SDL_GetKeyFromName'
|
||||
++'_SDL_StartTextInput'.'SDL2.dll'.'SDL_StartTextInput'
|
||||
++'_SDL_IsTextInputActive'.'SDL2.dll'.'SDL_IsTextInputActive'
|
||||
++'_SDL_StopTextInput'.'SDL2.dll'.'SDL_StopTextInput'
|
||||
++'_SDL_SetTextInputRect'.'SDL2.dll'.'SDL_SetTextInputRect'
|
||||
++'_SDL_HasScreenKeyboardSupport'.'SDL2.dll'.'SDL_HasScreenKeyboardSupport'
|
||||
++'_SDL_IsScreenKeyboardShown'.'SDL2.dll'.'SDL_IsScreenKeyboardShown'
|
||||
++'_SDL_LoadObject'.'SDL2.dll'.'SDL_LoadObject'
|
||||
++'_SDL_LoadFunction'.'SDL2.dll'.'SDL_LoadFunction'
|
||||
++'_SDL_UnloadObject'.'SDL2.dll'.'SDL_UnloadObject'
|
||||
++'_SDL_LogSetAllPriority'.'SDL2.dll'.'SDL_LogSetAllPriority'
|
||||
++'_SDL_LogSetPriority'.'SDL2.dll'.'SDL_LogSetPriority'
|
||||
++'_SDL_LogGetPriority'.'SDL2.dll'.'SDL_LogGetPriority'
|
||||
++'_SDL_LogResetPriorities'.'SDL2.dll'.'SDL_LogResetPriorities'
|
||||
++'_SDL_LogMessageV'.'SDL2.dll'.'SDL_LogMessageV'
|
||||
++'_SDL_LogGetOutputFunction'.'SDL2.dll'.'SDL_LogGetOutputFunction'
|
||||
++'_SDL_LogSetOutputFunction'.'SDL2.dll'.'SDL_LogSetOutputFunction'
|
||||
++'_SDL_SetMainReady'.'SDL2.dll'.'SDL_SetMainReady'
|
||||
++'_SDL_ShowMessageBox'.'SDL2.dll'.'SDL_ShowMessageBox'
|
||||
++'_SDL_ShowSimpleMessageBox'.'SDL2.dll'.'SDL_ShowSimpleMessageBox'
|
||||
++'_SDL_GetMouseFocus'.'SDL2.dll'.'SDL_GetMouseFocus'
|
||||
++'_SDL_GetMouseState'.'SDL2.dll'.'SDL_GetMouseState'
|
||||
++'_SDL_GetRelativeMouseState'.'SDL2.dll'.'SDL_GetRelativeMouseState'
|
||||
++'_SDL_WarpMouseInWindow'.'SDL2.dll'.'SDL_WarpMouseInWindow'
|
||||
++'_SDL_SetRelativeMouseMode'.'SDL2.dll'.'SDL_SetRelativeMouseMode'
|
||||
++'_SDL_GetRelativeMouseMode'.'SDL2.dll'.'SDL_GetRelativeMouseMode'
|
||||
++'_SDL_CreateCursor'.'SDL2.dll'.'SDL_CreateCursor'
|
||||
++'_SDL_CreateColorCursor'.'SDL2.dll'.'SDL_CreateColorCursor'
|
||||
++'_SDL_CreateSystemCursor'.'SDL2.dll'.'SDL_CreateSystemCursor'
|
||||
++'_SDL_SetCursor'.'SDL2.dll'.'SDL_SetCursor'
|
||||
++'_SDL_GetCursor'.'SDL2.dll'.'SDL_GetCursor'
|
||||
++'_SDL_GetDefaultCursor'.'SDL2.dll'.'SDL_GetDefaultCursor'
|
||||
++'_SDL_FreeCursor'.'SDL2.dll'.'SDL_FreeCursor'
|
||||
++'_SDL_ShowCursor'.'SDL2.dll'.'SDL_ShowCursor'
|
||||
++'_SDL_CreateMutex'.'SDL2.dll'.'SDL_CreateMutex'
|
||||
++'_SDL_LockMutex'.'SDL2.dll'.'SDL_LockMutex'
|
||||
++'_SDL_TryLockMutex'.'SDL2.dll'.'SDL_TryLockMutex'
|
||||
++'_SDL_UnlockMutex'.'SDL2.dll'.'SDL_UnlockMutex'
|
||||
++'_SDL_DestroyMutex'.'SDL2.dll'.'SDL_DestroyMutex'
|
||||
++'_SDL_CreateSemaphore'.'SDL2.dll'.'SDL_CreateSemaphore'
|
||||
++'_SDL_DestroySemaphore'.'SDL2.dll'.'SDL_DestroySemaphore'
|
||||
++'_SDL_SemWait'.'SDL2.dll'.'SDL_SemWait'
|
||||
++'_SDL_SemTryWait'.'SDL2.dll'.'SDL_SemTryWait'
|
||||
++'_SDL_SemWaitTimeout'.'SDL2.dll'.'SDL_SemWaitTimeout'
|
||||
++'_SDL_SemPost'.'SDL2.dll'.'SDL_SemPost'
|
||||
++'_SDL_SemValue'.'SDL2.dll'.'SDL_SemValue'
|
||||
++'_SDL_CreateCond'.'SDL2.dll'.'SDL_CreateCond'
|
||||
++'_SDL_DestroyCond'.'SDL2.dll'.'SDL_DestroyCond'
|
||||
++'_SDL_CondSignal'.'SDL2.dll'.'SDL_CondSignal'
|
||||
++'_SDL_CondBroadcast'.'SDL2.dll'.'SDL_CondBroadcast'
|
||||
++'_SDL_CondWait'.'SDL2.dll'.'SDL_CondWait'
|
||||
++'_SDL_CondWaitTimeout'.'SDL2.dll'.'SDL_CondWaitTimeout'
|
||||
++'_SDL_GetPixelFormatName'.'SDL2.dll'.'SDL_GetPixelFormatName'
|
||||
++'_SDL_PixelFormatEnumToMasks'.'SDL2.dll'.'SDL_PixelFormatEnumToMasks'
|
||||
++'_SDL_MasksToPixelFormatEnum'.'SDL2.dll'.'SDL_MasksToPixelFormatEnum'
|
||||
++'_SDL_AllocFormat'.'SDL2.dll'.'SDL_AllocFormat'
|
||||
++'_SDL_FreeFormat'.'SDL2.dll'.'SDL_FreeFormat'
|
||||
++'_SDL_AllocPalette'.'SDL2.dll'.'SDL_AllocPalette'
|
||||
++'_SDL_SetPixelFormatPalette'.'SDL2.dll'.'SDL_SetPixelFormatPalette'
|
||||
++'_SDL_SetPaletteColors'.'SDL2.dll'.'SDL_SetPaletteColors'
|
||||
++'_SDL_FreePalette'.'SDL2.dll'.'SDL_FreePalette'
|
||||
++'_SDL_MapRGB'.'SDL2.dll'.'SDL_MapRGB'
|
||||
++'_SDL_MapRGBA'.'SDL2.dll'.'SDL_MapRGBA'
|
||||
++'_SDL_GetRGB'.'SDL2.dll'.'SDL_GetRGB'
|
||||
++'_SDL_GetRGBA'.'SDL2.dll'.'SDL_GetRGBA'
|
||||
++'_SDL_CalculateGammaRamp'.'SDL2.dll'.'SDL_CalculateGammaRamp'
|
||||
++'_SDL_GetPlatform'.'SDL2.dll'.'SDL_GetPlatform'
|
||||
++'_SDL_GetPowerInfo'.'SDL2.dll'.'SDL_GetPowerInfo'
|
||||
++'_SDL_HasIntersection'.'SDL2.dll'.'SDL_HasIntersection'
|
||||
++'_SDL_IntersectRect'.'SDL2.dll'.'SDL_IntersectRect'
|
||||
++'_SDL_UnionRect'.'SDL2.dll'.'SDL_UnionRect'
|
||||
++'_SDL_EnclosePoints'.'SDL2.dll'.'SDL_EnclosePoints'
|
||||
++'_SDL_IntersectRectAndLine'.'SDL2.dll'.'SDL_IntersectRectAndLine'
|
||||
++'_SDL_GetNumRenderDrivers'.'SDL2.dll'.'SDL_GetNumRenderDrivers'
|
||||
++'_SDL_GetRenderDriverInfo'.'SDL2.dll'.'SDL_GetRenderDriverInfo'
|
||||
++'_SDL_CreateWindowAndRenderer'.'SDL2.dll'.'SDL_CreateWindowAndRenderer'
|
||||
++'_SDL_CreateRenderer'.'SDL2.dll'.'SDL_CreateRenderer'
|
||||
++'_SDL_CreateSoftwareRenderer'.'SDL2.dll'.'SDL_CreateSoftwareRenderer'
|
||||
++'_SDL_GetRenderer'.'SDL2.dll'.'SDL_GetRenderer'
|
||||
++'_SDL_GetRendererInfo'.'SDL2.dll'.'SDL_GetRendererInfo'
|
||||
++'_SDL_GetRendererOutputSize'.'SDL2.dll'.'SDL_GetRendererOutputSize'
|
||||
++'_SDL_CreateTexture'.'SDL2.dll'.'SDL_CreateTexture'
|
||||
++'_SDL_CreateTextureFromSurface'.'SDL2.dll'.'SDL_CreateTextureFromSurface'
|
||||
++'_SDL_QueryTexture'.'SDL2.dll'.'SDL_QueryTexture'
|
||||
++'_SDL_SetTextureColorMod'.'SDL2.dll'.'SDL_SetTextureColorMod'
|
||||
++'_SDL_GetTextureColorMod'.'SDL2.dll'.'SDL_GetTextureColorMod'
|
||||
++'_SDL_SetTextureAlphaMod'.'SDL2.dll'.'SDL_SetTextureAlphaMod'
|
||||
++'_SDL_GetTextureAlphaMod'.'SDL2.dll'.'SDL_GetTextureAlphaMod'
|
||||
++'_SDL_SetTextureBlendMode'.'SDL2.dll'.'SDL_SetTextureBlendMode'
|
||||
++'_SDL_GetTextureBlendMode'.'SDL2.dll'.'SDL_GetTextureBlendMode'
|
||||
++'_SDL_UpdateTexture'.'SDL2.dll'.'SDL_UpdateTexture'
|
||||
++'_SDL_UpdateYUVTexture'.'SDL2.dll'.'SDL_UpdateYUVTexture'
|
||||
++'_SDL_LockTexture'.'SDL2.dll'.'SDL_LockTexture'
|
||||
++'_SDL_UnlockTexture'.'SDL2.dll'.'SDL_UnlockTexture'
|
||||
++'_SDL_RenderTargetSupported'.'SDL2.dll'.'SDL_RenderTargetSupported'
|
||||
++'_SDL_SetRenderTarget'.'SDL2.dll'.'SDL_SetRenderTarget'
|
||||
++'_SDL_GetRenderTarget'.'SDL2.dll'.'SDL_GetRenderTarget'
|
||||
++'_SDL_RenderSetLogicalSize'.'SDL2.dll'.'SDL_RenderSetLogicalSize'
|
||||
++'_SDL_RenderGetLogicalSize'.'SDL2.dll'.'SDL_RenderGetLogicalSize'
|
||||
++'_SDL_RenderSetViewport'.'SDL2.dll'.'SDL_RenderSetViewport'
|
||||
++'_SDL_RenderGetViewport'.'SDL2.dll'.'SDL_RenderGetViewport'
|
||||
++'_SDL_RenderSetClipRect'.'SDL2.dll'.'SDL_RenderSetClipRect'
|
||||
++'_SDL_RenderGetClipRect'.'SDL2.dll'.'SDL_RenderGetClipRect'
|
||||
++'_SDL_RenderSetScale'.'SDL2.dll'.'SDL_RenderSetScale'
|
||||
++'_SDL_RenderGetScale'.'SDL2.dll'.'SDL_RenderGetScale'
|
||||
++'_SDL_SetRenderDrawColor'.'SDL2.dll'.'SDL_SetRenderDrawColor'
|
||||
++'_SDL_GetRenderDrawColor'.'SDL2.dll'.'SDL_GetRenderDrawColor'
|
||||
++'_SDL_SetRenderDrawBlendMode'.'SDL2.dll'.'SDL_SetRenderDrawBlendMode'
|
||||
++'_SDL_GetRenderDrawBlendMode'.'SDL2.dll'.'SDL_GetRenderDrawBlendMode'
|
||||
++'_SDL_RenderClear'.'SDL2.dll'.'SDL_RenderClear'
|
||||
++'_SDL_RenderDrawPoint'.'SDL2.dll'.'SDL_RenderDrawPoint'
|
||||
++'_SDL_RenderDrawPoints'.'SDL2.dll'.'SDL_RenderDrawPoints'
|
||||
++'_SDL_RenderDrawLine'.'SDL2.dll'.'SDL_RenderDrawLine'
|
||||
++'_SDL_RenderDrawLines'.'SDL2.dll'.'SDL_RenderDrawLines'
|
||||
++'_SDL_RenderDrawRect'.'SDL2.dll'.'SDL_RenderDrawRect'
|
||||
++'_SDL_RenderDrawRects'.'SDL2.dll'.'SDL_RenderDrawRects'
|
||||
++'_SDL_RenderFillRect'.'SDL2.dll'.'SDL_RenderFillRect'
|
||||
++'_SDL_RenderFillRects'.'SDL2.dll'.'SDL_RenderFillRects'
|
||||
++'_SDL_RenderCopy'.'SDL2.dll'.'SDL_RenderCopy'
|
||||
++'_SDL_RenderCopyEx'.'SDL2.dll'.'SDL_RenderCopyEx'
|
||||
++'_SDL_RenderReadPixels'.'SDL2.dll'.'SDL_RenderReadPixels'
|
||||
++'_SDL_RenderPresent'.'SDL2.dll'.'SDL_RenderPresent'
|
||||
++'_SDL_DestroyTexture'.'SDL2.dll'.'SDL_DestroyTexture'
|
||||
++'_SDL_DestroyRenderer'.'SDL2.dll'.'SDL_DestroyRenderer'
|
||||
++'_SDL_GL_BindTexture'.'SDL2.dll'.'SDL_GL_BindTexture'
|
||||
++'_SDL_GL_UnbindTexture'.'SDL2.dll'.'SDL_GL_UnbindTexture'
|
||||
++'_SDL_RWFromFile'.'SDL2.dll'.'SDL_RWFromFile'
|
||||
++'_SDL_RWFromMem'.'SDL2.dll'.'SDL_RWFromMem'
|
||||
++'_SDL_RWFromConstMem'.'SDL2.dll'.'SDL_RWFromConstMem'
|
||||
++'_SDL_AllocRW'.'SDL2.dll'.'SDL_AllocRW'
|
||||
++'_SDL_FreeRW'.'SDL2.dll'.'SDL_FreeRW'
|
||||
++'_SDL_ReadU8'.'SDL2.dll'.'SDL_ReadU8'
|
||||
++'_SDL_ReadLE16'.'SDL2.dll'.'SDL_ReadLE16'
|
||||
++'_SDL_ReadBE16'.'SDL2.dll'.'SDL_ReadBE16'
|
||||
++'_SDL_ReadLE32'.'SDL2.dll'.'SDL_ReadLE32'
|
||||
++'_SDL_ReadBE32'.'SDL2.dll'.'SDL_ReadBE32'
|
||||
++'_SDL_ReadLE64'.'SDL2.dll'.'SDL_ReadLE64'
|
||||
++'_SDL_ReadBE64'.'SDL2.dll'.'SDL_ReadBE64'
|
||||
++'_SDL_WriteU8'.'SDL2.dll'.'SDL_WriteU8'
|
||||
++'_SDL_WriteLE16'.'SDL2.dll'.'SDL_WriteLE16'
|
||||
++'_SDL_WriteBE16'.'SDL2.dll'.'SDL_WriteBE16'
|
||||
++'_SDL_WriteLE32'.'SDL2.dll'.'SDL_WriteLE32'
|
||||
++'_SDL_WriteBE32'.'SDL2.dll'.'SDL_WriteBE32'
|
||||
++'_SDL_WriteLE64'.'SDL2.dll'.'SDL_WriteLE64'
|
||||
++'_SDL_WriteBE64'.'SDL2.dll'.'SDL_WriteBE64'
|
||||
++'_SDL_CreateShapedWindow'.'SDL2.dll'.'SDL_CreateShapedWindow'
|
||||
++'_SDL_IsShapedWindow'.'SDL2.dll'.'SDL_IsShapedWindow'
|
||||
++'_SDL_SetWindowShape'.'SDL2.dll'.'SDL_SetWindowShape'
|
||||
++'_SDL_GetShapedWindowMode'.'SDL2.dll'.'SDL_GetShapedWindowMode'
|
||||
++'_SDL_malloc'.'SDL2.dll'.'SDL_malloc'
|
||||
++'_SDL_calloc'.'SDL2.dll'.'SDL_calloc'
|
||||
++'_SDL_realloc'.'SDL2.dll'.'SDL_realloc'
|
||||
++'_SDL_free'.'SDL2.dll'.'SDL_free'
|
||||
++'_SDL_getenv'.'SDL2.dll'.'SDL_getenv'
|
||||
++'_SDL_setenv'.'SDL2.dll'.'SDL_setenv'
|
||||
++'_SDL_qsort'.'SDL2.dll'.'SDL_qsort'
|
||||
++'_SDL_abs'.'SDL2.dll'.'SDL_abs'
|
||||
++'_SDL_isdigit'.'SDL2.dll'.'SDL_isdigit'
|
||||
++'_SDL_isspace'.'SDL2.dll'.'SDL_isspace'
|
||||
++'_SDL_toupper'.'SDL2.dll'.'SDL_toupper'
|
||||
++'_SDL_tolower'.'SDL2.dll'.'SDL_tolower'
|
||||
++'_SDL_memset'.'SDL2.dll'.'SDL_memset'
|
||||
++'_SDL_memcpy'.'SDL2.dll'.'SDL_memcpy'
|
||||
++'_SDL_memmove'.'SDL2.dll'.'SDL_memmove'
|
||||
++'_SDL_memcmp'.'SDL2.dll'.'SDL_memcmp'
|
||||
++'_SDL_wcslen'.'SDL2.dll'.'SDL_wcslen'
|
||||
++'_SDL_wcslcpy'.'SDL2.dll'.'SDL_wcslcpy'
|
||||
++'_SDL_wcslcat'.'SDL2.dll'.'SDL_wcslcat'
|
||||
++'_SDL_strlen'.'SDL2.dll'.'SDL_strlen'
|
||||
++'_SDL_strlcpy'.'SDL2.dll'.'SDL_strlcpy'
|
||||
++'_SDL_utf8strlcpy'.'SDL2.dll'.'SDL_utf8strlcpy'
|
||||
++'_SDL_strlcat'.'SDL2.dll'.'SDL_strlcat'
|
||||
++'_SDL_strdup'.'SDL2.dll'.'SDL_strdup'
|
||||
++'_SDL_strrev'.'SDL2.dll'.'SDL_strrev'
|
||||
++'_SDL_strupr'.'SDL2.dll'.'SDL_strupr'
|
||||
++'_SDL_strlwr'.'SDL2.dll'.'SDL_strlwr'
|
||||
++'_SDL_strchr'.'SDL2.dll'.'SDL_strchr'
|
||||
++'_SDL_strrchr'.'SDL2.dll'.'SDL_strrchr'
|
||||
++'_SDL_strstr'.'SDL2.dll'.'SDL_strstr'
|
||||
++'_SDL_itoa'.'SDL2.dll'.'SDL_itoa'
|
||||
++'_SDL_uitoa'.'SDL2.dll'.'SDL_uitoa'
|
||||
++'_SDL_ltoa'.'SDL2.dll'.'SDL_ltoa'
|
||||
++'_SDL_ultoa'.'SDL2.dll'.'SDL_ultoa'
|
||||
++'_SDL_lltoa'.'SDL2.dll'.'SDL_lltoa'
|
||||
++'_SDL_ulltoa'.'SDL2.dll'.'SDL_ulltoa'
|
||||
++'_SDL_atoi'.'SDL2.dll'.'SDL_atoi'
|
||||
++'_SDL_atof'.'SDL2.dll'.'SDL_atof'
|
||||
++'_SDL_strtol'.'SDL2.dll'.'SDL_strtol'
|
||||
++'_SDL_strtoul'.'SDL2.dll'.'SDL_strtoul'
|
||||
++'_SDL_strtoll'.'SDL2.dll'.'SDL_strtoll'
|
||||
++'_SDL_strtoull'.'SDL2.dll'.'SDL_strtoull'
|
||||
++'_SDL_strtod'.'SDL2.dll'.'SDL_strtod'
|
||||
++'_SDL_strcmp'.'SDL2.dll'.'SDL_strcmp'
|
||||
++'_SDL_strncmp'.'SDL2.dll'.'SDL_strncmp'
|
||||
++'_SDL_strcasecmp'.'SDL2.dll'.'SDL_strcasecmp'
|
||||
++'_SDL_strncasecmp'.'SDL2.dll'.'SDL_strncasecmp'
|
||||
++'_SDL_vsnprintf'.'SDL2.dll'.'SDL_vsnprintf'
|
||||
++'_SDL_acos'.'SDL2.dll'.'SDL_acos'
|
||||
++'_SDL_asin'.'SDL2.dll'.'SDL_asin'
|
||||
++'_SDL_atan'.'SDL2.dll'.'SDL_atan'
|
||||
++'_SDL_atan2'.'SDL2.dll'.'SDL_atan2'
|
||||
++'_SDL_ceil'.'SDL2.dll'.'SDL_ceil'
|
||||
++'_SDL_copysign'.'SDL2.dll'.'SDL_copysign'
|
||||
++'_SDL_cos'.'SDL2.dll'.'SDL_cos'
|
||||
++'_SDL_cosf'.'SDL2.dll'.'SDL_cosf'
|
||||
++'_SDL_fabs'.'SDL2.dll'.'SDL_fabs'
|
||||
++'_SDL_floor'.'SDL2.dll'.'SDL_floor'
|
||||
++'_SDL_log'.'SDL2.dll'.'SDL_log'
|
||||
++'_SDL_pow'.'SDL2.dll'.'SDL_pow'
|
||||
++'_SDL_scalbn'.'SDL2.dll'.'SDL_scalbn'
|
||||
++'_SDL_sin'.'SDL2.dll'.'SDL_sin'
|
||||
++'_SDL_sinf'.'SDL2.dll'.'SDL_sinf'
|
||||
++'_SDL_sqrt'.'SDL2.dll'.'SDL_sqrt'
|
||||
++'_SDL_iconv_open'.'SDL2.dll'.'SDL_iconv_open'
|
||||
++'_SDL_iconv_close'.'SDL2.dll'.'SDL_iconv_close'
|
||||
++'_SDL_iconv'.'SDL2.dll'.'SDL_iconv'
|
||||
++'_SDL_iconv_string'.'SDL2.dll'.'SDL_iconv_string'
|
||||
++'_SDL_CreateRGBSurface'.'SDL2.dll'.'SDL_CreateRGBSurface'
|
||||
++'_SDL_CreateRGBSurfaceFrom'.'SDL2.dll'.'SDL_CreateRGBSurfaceFrom'
|
||||
++'_SDL_FreeSurface'.'SDL2.dll'.'SDL_FreeSurface'
|
||||
++'_SDL_SetSurfacePalette'.'SDL2.dll'.'SDL_SetSurfacePalette'
|
||||
++'_SDL_LockSurface'.'SDL2.dll'.'SDL_LockSurface'
|
||||
++'_SDL_UnlockSurface'.'SDL2.dll'.'SDL_UnlockSurface'
|
||||
++'_SDL_LoadBMP_RW'.'SDL2.dll'.'SDL_LoadBMP_RW'
|
||||
++'_SDL_SaveBMP_RW'.'SDL2.dll'.'SDL_SaveBMP_RW'
|
||||
++'_SDL_SetSurfaceRLE'.'SDL2.dll'.'SDL_SetSurfaceRLE'
|
||||
++'_SDL_SetColorKey'.'SDL2.dll'.'SDL_SetColorKey'
|
||||
++'_SDL_GetColorKey'.'SDL2.dll'.'SDL_GetColorKey'
|
||||
++'_SDL_SetSurfaceColorMod'.'SDL2.dll'.'SDL_SetSurfaceColorMod'
|
||||
++'_SDL_GetSurfaceColorMod'.'SDL2.dll'.'SDL_GetSurfaceColorMod'
|
||||
++'_SDL_SetSurfaceAlphaMod'.'SDL2.dll'.'SDL_SetSurfaceAlphaMod'
|
||||
++'_SDL_GetSurfaceAlphaMod'.'SDL2.dll'.'SDL_GetSurfaceAlphaMod'
|
||||
++'_SDL_SetSurfaceBlendMode'.'SDL2.dll'.'SDL_SetSurfaceBlendMode'
|
||||
++'_SDL_GetSurfaceBlendMode'.'SDL2.dll'.'SDL_GetSurfaceBlendMode'
|
||||
++'_SDL_SetClipRect'.'SDL2.dll'.'SDL_SetClipRect'
|
||||
++'_SDL_GetClipRect'.'SDL2.dll'.'SDL_GetClipRect'
|
||||
++'_SDL_ConvertSurface'.'SDL2.dll'.'SDL_ConvertSurface'
|
||||
++'_SDL_ConvertSurfaceFormat'.'SDL2.dll'.'SDL_ConvertSurfaceFormat'
|
||||
++'_SDL_ConvertPixels'.'SDL2.dll'.'SDL_ConvertPixels'
|
||||
++'_SDL_FillRect'.'SDL2.dll'.'SDL_FillRect'
|
||||
++'_SDL_FillRects'.'SDL2.dll'.'SDL_FillRects'
|
||||
++'_SDL_UpperBlit'.'SDL2.dll'.'SDL_UpperBlit'
|
||||
++'_SDL_LowerBlit'.'SDL2.dll'.'SDL_LowerBlit'
|
||||
++'_SDL_SoftStretch'.'SDL2.dll'.'SDL_SoftStretch'
|
||||
++'_SDL_UpperBlitScaled'.'SDL2.dll'.'SDL_UpperBlitScaled'
|
||||
++'_SDL_LowerBlitScaled'.'SDL2.dll'.'SDL_LowerBlitScaled'
|
||||
++'_SDL_GetWindowWMInfo'.'SDL2.dll'.'SDL_GetWindowWMInfo'
|
||||
++'_SDL_GetThreadName'.'SDL2.dll'.'SDL_GetThreadName'
|
||||
++'_SDL_ThreadID'.'SDL2.dll'.'SDL_ThreadID'
|
||||
++'_SDL_GetThreadID'.'SDL2.dll'.'SDL_GetThreadID'
|
||||
++'_SDL_SetThreadPriority'.'SDL2.dll'.'SDL_SetThreadPriority'
|
||||
++'_SDL_WaitThread'.'SDL2.dll'.'SDL_WaitThread'
|
||||
++'_SDL_DetachThread'.'SDL2.dll'.'SDL_DetachThread'
|
||||
++'_SDL_TLSCreate'.'SDL2.dll'.'SDL_TLSCreate'
|
||||
++'_SDL_TLSGet'.'SDL2.dll'.'SDL_TLSGet'
|
||||
++'_SDL_TLSSet'.'SDL2.dll'.'SDL_TLSSet'
|
||||
++'_SDL_GetTicks'.'SDL2.dll'.'SDL_GetTicks'
|
||||
++'_SDL_GetPerformanceCounter'.'SDL2.dll'.'SDL_GetPerformanceCounter'
|
||||
++'_SDL_GetPerformanceFrequency'.'SDL2.dll'.'SDL_GetPerformanceFrequency'
|
||||
++'_SDL_Delay'.'SDL2.dll'.'SDL_Delay'
|
||||
++'_SDL_AddTimer'.'SDL2.dll'.'SDL_AddTimer'
|
||||
++'_SDL_RemoveTimer'.'SDL2.dll'.'SDL_RemoveTimer'
|
||||
++'_SDL_GetNumTouchDevices'.'SDL2.dll'.'SDL_GetNumTouchDevices'
|
||||
++'_SDL_GetTouchDevice'.'SDL2.dll'.'SDL_GetTouchDevice'
|
||||
++'_SDL_GetNumTouchFingers'.'SDL2.dll'.'SDL_GetNumTouchFingers'
|
||||
++'_SDL_GetTouchFinger'.'SDL2.dll'.'SDL_GetTouchFinger'
|
||||
++'_SDL_GetVersion'.'SDL2.dll'.'SDL_GetVersion'
|
||||
++'_SDL_GetRevision'.'SDL2.dll'.'SDL_GetRevision'
|
||||
++'_SDL_GetRevisionNumber'.'SDL2.dll'.'SDL_GetRevisionNumber'
|
||||
++'_SDL_GetNumVideoDrivers'.'SDL2.dll'.'SDL_GetNumVideoDrivers'
|
||||
++'_SDL_GetVideoDriver'.'SDL2.dll'.'SDL_GetVideoDriver'
|
||||
++'_SDL_VideoInit'.'SDL2.dll'.'SDL_VideoInit'
|
||||
++'_SDL_VideoQuit'.'SDL2.dll'.'SDL_VideoQuit'
|
||||
++'_SDL_GetCurrentVideoDriver'.'SDL2.dll'.'SDL_GetCurrentVideoDriver'
|
||||
++'_SDL_GetNumVideoDisplays'.'SDL2.dll'.'SDL_GetNumVideoDisplays'
|
||||
++'_SDL_GetDisplayName'.'SDL2.dll'.'SDL_GetDisplayName'
|
||||
++'_SDL_GetDisplayBounds'.'SDL2.dll'.'SDL_GetDisplayBounds'
|
||||
++'_SDL_GetDisplayDPI'.'SDL2.dll'.'SDL_GetDisplayDPI'
|
||||
++'_SDL_GetNumDisplayModes'.'SDL2.dll'.'SDL_GetNumDisplayModes'
|
||||
++'_SDL_GetDisplayMode'.'SDL2.dll'.'SDL_GetDisplayMode'
|
||||
++'_SDL_GetDesktopDisplayMode'.'SDL2.dll'.'SDL_GetDesktopDisplayMode'
|
||||
++'_SDL_GetCurrentDisplayMode'.'SDL2.dll'.'SDL_GetCurrentDisplayMode'
|
||||
++'_SDL_GetClosestDisplayMode'.'SDL2.dll'.'SDL_GetClosestDisplayMode'
|
||||
++'_SDL_GetWindowDisplayIndex'.'SDL2.dll'.'SDL_GetWindowDisplayIndex'
|
||||
++'_SDL_SetWindowDisplayMode'.'SDL2.dll'.'SDL_SetWindowDisplayMode'
|
||||
++'_SDL_GetWindowDisplayMode'.'SDL2.dll'.'SDL_GetWindowDisplayMode'
|
||||
++'_SDL_GetWindowPixelFormat'.'SDL2.dll'.'SDL_GetWindowPixelFormat'
|
||||
++'_SDL_CreateWindow'.'SDL2.dll'.'SDL_CreateWindow'
|
||||
++'_SDL_CreateWindowFrom'.'SDL2.dll'.'SDL_CreateWindowFrom'
|
||||
++'_SDL_GetWindowID'.'SDL2.dll'.'SDL_GetWindowID'
|
||||
++'_SDL_GetWindowFromID'.'SDL2.dll'.'SDL_GetWindowFromID'
|
||||
++'_SDL_GetWindowFlags'.'SDL2.dll'.'SDL_GetWindowFlags'
|
||||
++'_SDL_SetWindowTitle'.'SDL2.dll'.'SDL_SetWindowTitle'
|
||||
++'_SDL_GetWindowTitle'.'SDL2.dll'.'SDL_GetWindowTitle'
|
||||
++'_SDL_SetWindowIcon'.'SDL2.dll'.'SDL_SetWindowIcon'
|
||||
++'_SDL_SetWindowData'.'SDL2.dll'.'SDL_SetWindowData'
|
||||
++'_SDL_GetWindowData'.'SDL2.dll'.'SDL_GetWindowData'
|
||||
++'_SDL_SetWindowPosition'.'SDL2.dll'.'SDL_SetWindowPosition'
|
||||
++'_SDL_GetWindowPosition'.'SDL2.dll'.'SDL_GetWindowPosition'
|
||||
++'_SDL_SetWindowSize'.'SDL2.dll'.'SDL_SetWindowSize'
|
||||
++'_SDL_GetWindowSize'.'SDL2.dll'.'SDL_GetWindowSize'
|
||||
++'_SDL_SetWindowMinimumSize'.'SDL2.dll'.'SDL_SetWindowMinimumSize'
|
||||
++'_SDL_GetWindowMinimumSize'.'SDL2.dll'.'SDL_GetWindowMinimumSize'
|
||||
++'_SDL_SetWindowMaximumSize'.'SDL2.dll'.'SDL_SetWindowMaximumSize'
|
||||
++'_SDL_GetWindowMaximumSize'.'SDL2.dll'.'SDL_GetWindowMaximumSize'
|
||||
++'_SDL_SetWindowBordered'.'SDL2.dll'.'SDL_SetWindowBordered'
|
||||
++'_SDL_ShowWindow'.'SDL2.dll'.'SDL_ShowWindow'
|
||||
++'_SDL_HideWindow'.'SDL2.dll'.'SDL_HideWindow'
|
||||
++'_SDL_RaiseWindow'.'SDL2.dll'.'SDL_RaiseWindow'
|
||||
++'_SDL_MaximizeWindow'.'SDL2.dll'.'SDL_MaximizeWindow'
|
||||
++'_SDL_MinimizeWindow'.'SDL2.dll'.'SDL_MinimizeWindow'
|
||||
++'_SDL_RestoreWindow'.'SDL2.dll'.'SDL_RestoreWindow'
|
||||
++'_SDL_SetWindowFullscreen'.'SDL2.dll'.'SDL_SetWindowFullscreen'
|
||||
++'_SDL_GetWindowSurface'.'SDL2.dll'.'SDL_GetWindowSurface'
|
||||
++'_SDL_UpdateWindowSurface'.'SDL2.dll'.'SDL_UpdateWindowSurface'
|
||||
++'_SDL_UpdateWindowSurfaceRects'.'SDL2.dll'.'SDL_UpdateWindowSurfaceRects'
|
||||
++'_SDL_SetWindowGrab'.'SDL2.dll'.'SDL_SetWindowGrab'
|
||||
++'_SDL_GetWindowGrab'.'SDL2.dll'.'SDL_GetWindowGrab'
|
||||
++'_SDL_SetWindowBrightness'.'SDL2.dll'.'SDL_SetWindowBrightness'
|
||||
++'_SDL_GetWindowBrightness'.'SDL2.dll'.'SDL_GetWindowBrightness'
|
||||
++'_SDL_SetWindowGammaRamp'.'SDL2.dll'.'SDL_SetWindowGammaRamp'
|
||||
++'_SDL_GetWindowGammaRamp'.'SDL2.dll'.'SDL_GetWindowGammaRamp'
|
||||
++'_SDL_DestroyWindow'.'SDL2.dll'.'SDL_DestroyWindow'
|
||||
++'_SDL_IsScreenSaverEnabled'.'SDL2.dll'.'SDL_IsScreenSaverEnabled'
|
||||
++'_SDL_EnableScreenSaver'.'SDL2.dll'.'SDL_EnableScreenSaver'
|
||||
++'_SDL_DisableScreenSaver'.'SDL2.dll'.'SDL_DisableScreenSaver'
|
||||
++'_SDL_GL_LoadLibrary'.'SDL2.dll'.'SDL_GL_LoadLibrary'
|
||||
++'_SDL_GL_GetProcAddress'.'SDL2.dll'.'SDL_GL_GetProcAddress'
|
||||
++'_SDL_GL_UnloadLibrary'.'SDL2.dll'.'SDL_GL_UnloadLibrary'
|
||||
++'_SDL_GL_ExtensionSupported'.'SDL2.dll'.'SDL_GL_ExtensionSupported'
|
||||
++'_SDL_GL_SetAttribute'.'SDL2.dll'.'SDL_GL_SetAttribute'
|
||||
++'_SDL_GL_GetAttribute'.'SDL2.dll'.'SDL_GL_GetAttribute'
|
||||
++'_SDL_GL_CreateContext'.'SDL2.dll'.'SDL_GL_CreateContext'
|
||||
++'_SDL_GL_MakeCurrent'.'SDL2.dll'.'SDL_GL_MakeCurrent'
|
||||
++'_SDL_GL_GetCurrentWindow'.'SDL2.dll'.'SDL_GL_GetCurrentWindow'
|
||||
++'_SDL_GL_GetCurrentContext'.'SDL2.dll'.'SDL_GL_GetCurrentContext'
|
||||
++'_SDL_GL_GetDrawableSize'.'SDL2.dll'.'SDL_GL_GetDrawableSize'
|
||||
++'_SDL_GL_SetSwapInterval'.'SDL2.dll'.'SDL_GL_SetSwapInterval'
|
||||
++'_SDL_GL_GetSwapInterval'.'SDL2.dll'.'SDL_GL_GetSwapInterval'
|
||||
++'_SDL_GL_SwapWindow'.'SDL2.dll'.'SDL_GL_SwapWindow'
|
||||
++'_SDL_GL_DeleteContext'.'SDL2.dll'.'SDL_GL_DeleteContext'
|
||||
++'_SDL_vsscanf'.'SDL2.dll'.'SDL_vsscanf'
|
||||
++'_SDL_GameControllerAddMappingsFromRW'.'SDL2.dll'.'SDL_GameControllerAddMappingsFromRW'
|
||||
++'_SDL_GL_ResetAttributes'.'SDL2.dll'.'SDL_GL_ResetAttributes'
|
||||
++'_SDL_HasAVX'.'SDL2.dll'.'SDL_HasAVX'
|
||||
++'_SDL_GetDefaultAssertionHandler'.'SDL2.dll'.'SDL_GetDefaultAssertionHandler'
|
||||
++'_SDL_GetAssertionHandler'.'SDL2.dll'.'SDL_GetAssertionHandler'
|
||||
++'_SDL_DXGIGetOutputInfo'.'SDL2.dll'.'SDL_DXGIGetOutputInfo'
|
||||
++'_SDL_RenderIsClipEnabled'.'SDL2.dll'.'SDL_RenderIsClipEnabled'
|
||||
# ++'_SDL_WinRTRunApp'.'SDL2.dll'.'SDL_WinRTRunApp'
|
||||
++'_SDL_WarpMouseGlobal'.'SDL2.dll'.'SDL_WarpMouseGlobal'
|
||||
# ++'_SDL_WinRTGetFSPathUNICODE'.'SDL2.dll'.'SDL_WinRTGetFSPathUNICODE'
|
||||
# ++'_SDL_WinRTGetFSPathUTF8'.'SDL2.dll'.'SDL_WinRTGetFSPathUTF8'
|
||||
++'_SDL_sqrtf'.'SDL2.dll'.'SDL_sqrtf'
|
||||
++'_SDL_tan'.'SDL2.dll'.'SDL_tan'
|
||||
++'_SDL_tanf'.'SDL2.dll'.'SDL_tanf'
|
||||
++'_SDL_CaptureMouse'.'SDL2.dll'.'SDL_CaptureMouse'
|
||||
++'_SDL_SetWindowHitTest'.'SDL2.dll'.'SDL_SetWindowHitTest'
|
||||
++'_SDL_GetGlobalMouseState'.'SDL2.dll'.'SDL_GetGlobalMouseState'
|
||||
++'_SDL_HasAVX2'.'SDL2.dll'.'SDL_HasAVX2'
|
||||
++'_SDL_QueueAudio'.'SDL2.dll'.'SDL_QueueAudio'
|
||||
++'_SDL_GetQueuedAudioSize'.'SDL2.dll'.'SDL_GetQueuedAudioSize'
|
||||
++'_SDL_ClearQueuedAudio'.'SDL2.dll'.'SDL_ClearQueuedAudio'
|
||||
++'_SDL_GetGrabbedWindow'.'SDL2.dll'.'SDL_GetGrabbedWindow'
|
||||
++'_SDL_SetWindowsMessageHook'.'SDL2.dll'.'SDL_SetWindowsMessageHook'
|
||||
++'_SDL_JoystickCurrentPowerLevel'.'SDL2.dll'.'SDL_JoystickCurrentPowerLevel'
|
||||
++'_SDL_GameControllerFromInstanceID'.'SDL2.dll'.'SDL_GameControllerFromInstanceID'
|
||||
++'_SDL_JoystickFromInstanceID'.'SDL2.dll'.'SDL_JoystickFromInstanceID'
|
||||
++'_SDL_GetDisplayUsableBounds'.'SDL2.dll'.'SDL_GetDisplayUsableBounds'
|
||||
++'_SDL_GetWindowBordersSize'.'SDL2.dll'.'SDL_GetWindowBordersSize'
|
||||
++'_SDL_SetWindowOpacity'.'SDL2.dll'.'SDL_SetWindowOpacity'
|
||||
++'_SDL_GetWindowOpacity'.'SDL2.dll'.'SDL_GetWindowOpacity'
|
||||
++'_SDL_SetWindowInputFocus'.'SDL2.dll'.'SDL_SetWindowInputFocus'
|
||||
++'_SDL_SetWindowModalFor'.'SDL2.dll'.'SDL_SetWindowModalFor'
|
||||
++'_SDL_RenderSetIntegerScale'.'SDL2.dll'.'SDL_RenderSetIntegerScale'
|
||||
++'_SDL_RenderGetIntegerScale'.'SDL2.dll'.'SDL_RenderGetIntegerScale'
|
||||
++'_SDL_DequeueAudio'.'SDL2.dll'.'SDL_DequeueAudio'
|
||||
++'_SDL_SetWindowResizable'.'SDL2.dll'.'SDL_SetWindowResizable'
|
||||
++'_SDL_CreateRGBSurfaceWithFormat'.'SDL2.dll'.'SDL_CreateRGBSurfaceWithFormat'
|
||||
++'_SDL_CreateRGBSurfaceWithFormatFrom'.'SDL2.dll'.'SDL_CreateRGBSurfaceWithFormatFrom'
|
||||
++'_SDL_GetHintBoolean'.'SDL2.dll'.'SDL_GetHintBoolean'
|
||||
++'_SDL_JoystickGetDeviceVendor'.'SDL2.dll'.'SDL_JoystickGetDeviceVendor'
|
||||
++'_SDL_JoystickGetDeviceProduct'.'SDL2.dll'.'SDL_JoystickGetDeviceProduct'
|
||||
++'_SDL_JoystickGetDeviceProductVersion'.'SDL2.dll'.'SDL_JoystickGetDeviceProductVersion'
|
||||
++'_SDL_JoystickGetVendor'.'SDL2.dll'.'SDL_JoystickGetVendor'
|
||||
++'_SDL_JoystickGetProduct'.'SDL2.dll'.'SDL_JoystickGetProduct'
|
||||
++'_SDL_JoystickGetProductVersion'.'SDL2.dll'.'SDL_JoystickGetProductVersion'
|
||||
++'_SDL_GameControllerGetVendor'.'SDL2.dll'.'SDL_GameControllerGetVendor'
|
||||
++'_SDL_GameControllerGetProduct'.'SDL2.dll'.'SDL_GameControllerGetProduct'
|
||||
++'_SDL_GameControllerGetProductVersion'.'SDL2.dll'.'SDL_GameControllerGetProductVersion'
|
||||
++'_SDL_HasNEON'.'SDL2.dll'.'SDL_HasNEON'
|
||||
++'_SDL_GameControllerNumMappings'.'SDL2.dll'.'SDL_GameControllerNumMappings'
|
||||
++'_SDL_GameControllerMappingForIndex'.'SDL2.dll'.'SDL_GameControllerMappingForIndex'
|
||||
++'_SDL_JoystickGetAxisInitialState'.'SDL2.dll'.'SDL_JoystickGetAxisInitialState'
|
||||
++'_SDL_JoystickGetDeviceType'.'SDL2.dll'.'SDL_JoystickGetDeviceType'
|
||||
++'_SDL_JoystickGetType'.'SDL2.dll'.'SDL_JoystickGetType'
|
||||
++'_SDL_MemoryBarrierReleaseFunction'.'SDL2.dll'.'SDL_MemoryBarrierReleaseFunction'
|
||||
++'_SDL_MemoryBarrierAcquireFunction'.'SDL2.dll'.'SDL_MemoryBarrierAcquireFunction'
|
||||
++'_SDL_JoystickGetDeviceInstanceID'.'SDL2.dll'.'SDL_JoystickGetDeviceInstanceID'
|
||||
++'_SDL_utf8strlen'.'SDL2.dll'.'SDL_utf8strlen'
|
||||
++'_SDL_LoadFile_RW'.'SDL2.dll'.'SDL_LoadFile_RW'
|
||||
++'_SDL_wcscmp'.'SDL2.dll'.'SDL_wcscmp'
|
||||
++'_SDL_ComposeCustomBlendMode'.'SDL2.dll'.'SDL_ComposeCustomBlendMode'
|
||||
++'_SDL_DuplicateSurface'.'SDL2.dll'.'SDL_DuplicateSurface'
|
||||
++'_SDL_Vulkan_LoadLibrary'.'SDL2.dll'.'SDL_Vulkan_LoadLibrary'
|
||||
++'_SDL_Vulkan_GetVkGetInstanceProcAddr'.'SDL2.dll'.'SDL_Vulkan_GetVkGetInstanceProcAddr'
|
||||
++'_SDL_Vulkan_UnloadLibrary'.'SDL2.dll'.'SDL_Vulkan_UnloadLibrary'
|
||||
++'_SDL_Vulkan_GetInstanceExtensions'.'SDL2.dll'.'SDL_Vulkan_GetInstanceExtensions'
|
||||
++'_SDL_Vulkan_CreateSurface'.'SDL2.dll'.'SDL_Vulkan_CreateSurface'
|
||||
++'_SDL_Vulkan_GetDrawableSize'.'SDL2.dll'.'SDL_Vulkan_GetDrawableSize'
|
||||
++'_SDL_LockJoysticks'.'SDL2.dll'.'SDL_LockJoysticks'
|
||||
++'_SDL_UnlockJoysticks'.'SDL2.dll'.'SDL_UnlockJoysticks'
|
||||
++'_SDL_GetMemoryFunctions'.'SDL2.dll'.'SDL_GetMemoryFunctions'
|
||||
++'_SDL_SetMemoryFunctions'.'SDL2.dll'.'SDL_SetMemoryFunctions'
|
||||
++'_SDL_GetNumAllocations'.'SDL2.dll'.'SDL_GetNumAllocations'
|
||||
++'_SDL_NewAudioStream'.'SDL2.dll'.'SDL_NewAudioStream'
|
||||
++'_SDL_AudioStreamPut'.'SDL2.dll'.'SDL_AudioStreamPut'
|
||||
++'_SDL_AudioStreamGet'.'SDL2.dll'.'SDL_AudioStreamGet'
|
||||
++'_SDL_AudioStreamClear'.'SDL2.dll'.'SDL_AudioStreamClear'
|
||||
++'_SDL_AudioStreamAvailable'.'SDL2.dll'.'SDL_AudioStreamAvailable'
|
||||
++'_SDL_FreeAudioStream'.'SDL2.dll'.'SDL_FreeAudioStream'
|
||||
++'_SDL_AudioStreamFlush'.'SDL2.dll'.'SDL_AudioStreamFlush'
|
||||
++'_SDL_acosf'.'SDL2.dll'.'SDL_acosf'
|
||||
++'_SDL_asinf'.'SDL2.dll'.'SDL_asinf'
|
||||
++'_SDL_atanf'.'SDL2.dll'.'SDL_atanf'
|
||||
++'_SDL_atan2f'.'SDL2.dll'.'SDL_atan2f'
|
||||
++'_SDL_ceilf'.'SDL2.dll'.'SDL_ceilf'
|
||||
++'_SDL_copysignf'.'SDL2.dll'.'SDL_copysignf'
|
||||
++'_SDL_fabsf'.'SDL2.dll'.'SDL_fabsf'
|
||||
++'_SDL_floorf'.'SDL2.dll'.'SDL_floorf'
|
||||
++'_SDL_logf'.'SDL2.dll'.'SDL_logf'
|
||||
++'_SDL_powf'.'SDL2.dll'.'SDL_powf'
|
||||
++'_SDL_scalbnf'.'SDL2.dll'.'SDL_scalbnf'
|
||||
++'_SDL_fmod'.'SDL2.dll'.'SDL_fmod'
|
||||
++'_SDL_fmodf'.'SDL2.dll'.'SDL_fmodf'
|
||||
++'_SDL_SetYUVConversionMode'.'SDL2.dll'.'SDL_SetYUVConversionMode'
|
||||
++'_SDL_GetYUVConversionMode'.'SDL2.dll'.'SDL_GetYUVConversionMode'
|
||||
++'_SDL_GetYUVConversionModeForResolution'.'SDL2.dll'.'SDL_GetYUVConversionModeForResolution'
|
||||
++'_SDL_RenderGetMetalLayer'.'SDL2.dll'.'SDL_RenderGetMetalLayer'
|
||||
++'_SDL_RenderGetMetalCommandEncoder'.'SDL2.dll'.'SDL_RenderGetMetalCommandEncoder'
|
||||
# ++'_SDL_IsAndroidTV'.'SDL2.dll'.'SDL_IsAndroidTV'
|
||||
# ++'_SDL_WinRTGetDeviceFamily'.'SDL2.dll'.'SDL_WinRTGetDeviceFamily'
|
||||
++'_SDL_log10'.'SDL2.dll'.'SDL_log10'
|
||||
++'_SDL_log10f'.'SDL2.dll'.'SDL_log10f'
|
||||
++'_SDL_GameControllerMappingForDeviceIndex'.'SDL2.dll'.'SDL_GameControllerMappingForDeviceIndex'
|
||||
# ++'_SDL_LinuxSetThreadPriority'.'SDL2.dll'.'SDL_LinuxSetThreadPriority'
|
||||
++'_SDL_HasAVX512F'.'SDL2.dll'.'SDL_HasAVX512F'
|
||||
# ++'_SDL_IsChromebook'.'SDL2.dll'.'SDL_IsChromebook'
|
||||
# ++'_SDL_IsDeXMode'.'SDL2.dll'.'SDL_IsDeXMode'
|
||||
# ++'_SDL_AndroidBackButton'.'SDL2.dll'.'SDL_AndroidBackButton'
|
||||
++'_SDL_exp'.'SDL2.dll'.'SDL_exp'
|
||||
++'_SDL_expf'.'SDL2.dll'.'SDL_expf'
|
||||
++'_SDL_wcsdup'.'SDL2.dll'.'SDL_wcsdup'
|
||||
++'_SDL_GameControllerRumble'.'SDL2.dll'.'SDL_GameControllerRumble'
|
||||
++'_SDL_JoystickRumble'.'SDL2.dll'.'SDL_JoystickRumble'
|
||||
++'_SDL_NumSensors'.'SDL2.dll'.'SDL_NumSensors'
|
||||
++'_SDL_SensorGetDeviceName'.'SDL2.dll'.'SDL_SensorGetDeviceName'
|
||||
++'_SDL_SensorGetDeviceType'.'SDL2.dll'.'SDL_SensorGetDeviceType'
|
||||
++'_SDL_SensorGetDeviceNonPortableType'.'SDL2.dll'.'SDL_SensorGetDeviceNonPortableType'
|
||||
++'_SDL_SensorGetDeviceInstanceID'.'SDL2.dll'.'SDL_SensorGetDeviceInstanceID'
|
||||
++'_SDL_SensorOpen'.'SDL2.dll'.'SDL_SensorOpen'
|
||||
++'_SDL_SensorFromInstanceID'.'SDL2.dll'.'SDL_SensorFromInstanceID'
|
||||
++'_SDL_SensorGetName'.'SDL2.dll'.'SDL_SensorGetName'
|
||||
++'_SDL_SensorGetType'.'SDL2.dll'.'SDL_SensorGetType'
|
||||
++'_SDL_SensorGetNonPortableType'.'SDL2.dll'.'SDL_SensorGetNonPortableType'
|
||||
++'_SDL_SensorGetInstanceID'.'SDL2.dll'.'SDL_SensorGetInstanceID'
|
||||
++'_SDL_SensorGetData'.'SDL2.dll'.'SDL_SensorGetData'
|
||||
++'_SDL_SensorClose'.'SDL2.dll'.'SDL_SensorClose'
|
||||
++'_SDL_SensorUpdate'.'SDL2.dll'.'SDL_SensorUpdate'
|
||||
++'_SDL_IsTablet'.'SDL2.dll'.'SDL_IsTablet'
|
||||
++'_SDL_GetDisplayOrientation'.'SDL2.dll'.'SDL_GetDisplayOrientation'
|
||||
++'_SDL_HasColorKey'.'SDL2.dll'.'SDL_HasColorKey'
|
||||
++'_SDL_CreateThreadWithStackSize'.'SDL2.dll'.'SDL_CreateThreadWithStackSize'
|
||||
++'_SDL_JoystickGetDevicePlayerIndex'.'SDL2.dll'.'SDL_JoystickGetDevicePlayerIndex'
|
||||
++'_SDL_JoystickGetPlayerIndex'.'SDL2.dll'.'SDL_JoystickGetPlayerIndex'
|
||||
++'_SDL_GameControllerGetPlayerIndex'.'SDL2.dll'.'SDL_GameControllerGetPlayerIndex'
|
||||
++'_SDL_RenderFlush'.'SDL2.dll'.'SDL_RenderFlush'
|
||||
++'_SDL_RenderDrawPointF'.'SDL2.dll'.'SDL_RenderDrawPointF'
|
||||
++'_SDL_RenderDrawPointsF'.'SDL2.dll'.'SDL_RenderDrawPointsF'
|
||||
++'_SDL_RenderDrawLineF'.'SDL2.dll'.'SDL_RenderDrawLineF'
|
||||
++'_SDL_RenderDrawLinesF'.'SDL2.dll'.'SDL_RenderDrawLinesF'
|
||||
++'_SDL_RenderDrawRectF'.'SDL2.dll'.'SDL_RenderDrawRectF'
|
||||
++'_SDL_RenderDrawRectsF'.'SDL2.dll'.'SDL_RenderDrawRectsF'
|
||||
++'_SDL_RenderFillRectF'.'SDL2.dll'.'SDL_RenderFillRectF'
|
||||
++'_SDL_RenderFillRectsF'.'SDL2.dll'.'SDL_RenderFillRectsF'
|
||||
++'_SDL_RenderCopyF'.'SDL2.dll'.'SDL_RenderCopyF'
|
||||
++'_SDL_RenderCopyExF'.'SDL2.dll'.'SDL_RenderCopyExF'
|
||||
++'_SDL_GetTouchDeviceType'.'SDL2.dll'.'SDL_GetTouchDeviceType'
|
||||
# ++'_SDL_UIKitRunApp'.'SDL2.dll'.'SDL_UIKitRunApp'
|
||||
++'_SDL_SIMDGetAlignment'.'SDL2.dll'.'SDL_SIMDGetAlignment'
|
||||
++'_SDL_SIMDAlloc'.'SDL2.dll'.'SDL_SIMDAlloc'
|
||||
++'_SDL_SIMDFree'.'SDL2.dll'.'SDL_SIMDFree'
|
||||
++'_SDL_RWsize'.'SDL2.dll'.'SDL_RWsize'
|
||||
++'_SDL_RWseek'.'SDL2.dll'.'SDL_RWseek'
|
||||
++'_SDL_RWtell'.'SDL2.dll'.'SDL_RWtell'
|
||||
++'_SDL_RWread'.'SDL2.dll'.'SDL_RWread'
|
||||
++'_SDL_RWwrite'.'SDL2.dll'.'SDL_RWwrite'
|
||||
++'_SDL_RWclose'.'SDL2.dll'.'SDL_RWclose'
|
||||
++'_SDL_LoadFile'.'SDL2.dll'.'SDL_LoadFile'
|
||||
++'_SDL_Metal_CreateView'.'SDL2.dll'.'SDL_Metal_CreateView'
|
||||
++'_SDL_Metal_DestroyView'.'SDL2.dll'.'SDL_Metal_DestroyView'
|
||||
++'_SDL_LockTextureToSurface'.'SDL2.dll'.'SDL_LockTextureToSurface'
|
||||
++'_SDL_HasARMSIMD'.'SDL2.dll'.'SDL_HasARMSIMD'
|
||||
++'_SDL_strtokr'.'SDL2.dll'.'SDL_strtokr'
|
||||
++'_SDL_wcsstr'.'SDL2.dll'.'SDL_wcsstr'
|
||||
++'_SDL_wcsncmp'.'SDL2.dll'.'SDL_wcsncmp'
|
||||
++'_SDL_GameControllerTypeForIndex'.'SDL2.dll'.'SDL_GameControllerTypeForIndex'
|
||||
++'_SDL_GameControllerGetType'.'SDL2.dll'.'SDL_GameControllerGetType'
|
||||
++'_SDL_GameControllerFromPlayerIndex'.'SDL2.dll'.'SDL_GameControllerFromPlayerIndex'
|
||||
++'_SDL_GameControllerSetPlayerIndex'.'SDL2.dll'.'SDL_GameControllerSetPlayerIndex'
|
||||
++'_SDL_JoystickFromPlayerIndex'.'SDL2.dll'.'SDL_JoystickFromPlayerIndex'
|
||||
++'_SDL_JoystickSetPlayerIndex'.'SDL2.dll'.'SDL_JoystickSetPlayerIndex'
|
||||
++'_SDL_SetTextureScaleMode'.'SDL2.dll'.'SDL_SetTextureScaleMode'
|
||||
++'_SDL_GetTextureScaleMode'.'SDL2.dll'.'SDL_GetTextureScaleMode'
|
||||
++'_SDL_OnApplicationWillTerminate'.'SDL2.dll'.'SDL_OnApplicationWillTerminate'
|
||||
++'_SDL_OnApplicationDidReceiveMemoryWarning'.'SDL2.dll'.'SDL_OnApplicationDidReceiveMemoryWarning'
|
||||
++'_SDL_OnApplicationWillResignActive'.'SDL2.dll'.'SDL_OnApplicationWillResignActive'
|
||||
++'_SDL_OnApplicationDidEnterBackground'.'SDL2.dll'.'SDL_OnApplicationDidEnterBackground'
|
||||
++'_SDL_OnApplicationWillEnterForeground'.'SDL2.dll'.'SDL_OnApplicationWillEnterForeground'
|
||||
++'_SDL_OnApplicationDidBecomeActive'.'SDL2.dll'.'SDL_OnApplicationDidBecomeActive'
|
||||
# ++'_SDL_OnApplicationDidChangeStatusBarOrientation'.'SDL2.dll'.'SDL_OnApplicationDidChangeStatusBarOrientation'
|
||||
# ++'_SDL_GetAndroidSDKVersion'.'SDL2.dll'.'SDL_GetAndroidSDKVersion'
|
||||
++'_SDL_isupper'.'SDL2.dll'.'SDL_isupper'
|
||||
++'_SDL_islower'.'SDL2.dll'.'SDL_islower'
|
||||
++'_SDL_JoystickAttachVirtual'.'SDL2.dll'.'SDL_JoystickAttachVirtual'
|
||||
++'_SDL_JoystickDetachVirtual'.'SDL2.dll'.'SDL_JoystickDetachVirtual'
|
||||
++'_SDL_JoystickIsVirtual'.'SDL2.dll'.'SDL_JoystickIsVirtual'
|
||||
++'_SDL_JoystickSetVirtualAxis'.'SDL2.dll'.'SDL_JoystickSetVirtualAxis'
|
||||
++'_SDL_JoystickSetVirtualButton'.'SDL2.dll'.'SDL_JoystickSetVirtualButton'
|
||||
++'_SDL_JoystickSetVirtualHat'.'SDL2.dll'.'SDL_JoystickSetVirtualHat'
|
||||
++'_SDL_GetErrorMsg'.'SDL2.dll'.'SDL_GetErrorMsg'
|
||||
++'_SDL_LockSensors'.'SDL2.dll'.'SDL_LockSensors'
|
||||
++'_SDL_UnlockSensors'.'SDL2.dll'.'SDL_UnlockSensors'
|
||||
++'_SDL_Metal_GetLayer'.'SDL2.dll'.'SDL_Metal_GetLayer'
|
||||
++'_SDL_Metal_GetDrawableSize'.'SDL2.dll'.'SDL_Metal_GetDrawableSize'
|
||||
++'_SDL_trunc'.'SDL2.dll'.'SDL_trunc'
|
||||
++'_SDL_truncf'.'SDL2.dll'.'SDL_truncf'
|
||||
++'_SDL_GetPreferredLocales'.'SDL2.dll'.'SDL_GetPreferredLocales'
|
||||
++'_SDL_SIMDRealloc'.'SDL2.dll'.'SDL_SIMDRealloc'
|
||||
# ++'_SDL_AndroidRequestPermission'.'SDL2.dll'.'SDL_AndroidRequestPermission'
|
||||
++'_SDL_OpenURL'.'SDL2.dll'.'SDL_OpenURL'
|
||||
++'_SDL_HasSurfaceRLE'.'SDL2.dll'.'SDL_HasSurfaceRLE'
|
||||
++'_SDL_GameControllerHasLED'.'SDL2.dll'.'SDL_GameControllerHasLED'
|
||||
++'_SDL_GameControllerSetLED'.'SDL2.dll'.'SDL_GameControllerSetLED'
|
||||
++'_SDL_JoystickHasLED'.'SDL2.dll'.'SDL_JoystickHasLED'
|
||||
++'_SDL_JoystickSetLED'.'SDL2.dll'.'SDL_JoystickSetLED'
|
||||
++'_SDL_GameControllerRumbleTriggers'.'SDL2.dll'.'SDL_GameControllerRumbleTriggers'
|
||||
++'_SDL_JoystickRumbleTriggers'.'SDL2.dll'.'SDL_JoystickRumbleTriggers'
|
||||
++'_SDL_GameControllerHasAxis'.'SDL2.dll'.'SDL_GameControllerHasAxis'
|
||||
++'_SDL_GameControllerHasButton'.'SDL2.dll'.'SDL_GameControllerHasButton'
|
||||
++'_SDL_GameControllerGetNumTouchpads'.'SDL2.dll'.'SDL_GameControllerGetNumTouchpads'
|
||||
++'_SDL_GameControllerGetNumTouchpadFingers'.'SDL2.dll'.'SDL_GameControllerGetNumTouchpadFingers'
|
||||
++'_SDL_GameControllerGetTouchpadFinger'.'SDL2.dll'.'SDL_GameControllerGetTouchpadFinger'
|
||||
++'_SDL_crc32'.'SDL2.dll'.'SDL_crc32'
|
||||
++'_SDL_GameControllerGetSerial'.'SDL2.dll'.'SDL_GameControllerGetSerial'
|
||||
++'_SDL_JoystickGetSerial'.'SDL2.dll'.'SDL_JoystickGetSerial'
|
||||
++'_SDL_GameControllerHasSensor'.'SDL2.dll'.'SDL_GameControllerHasSensor'
|
||||
++'_SDL_GameControllerSetSensorEnabled'.'SDL2.dll'.'SDL_GameControllerSetSensorEnabled'
|
||||
++'_SDL_GameControllerIsSensorEnabled'.'SDL2.dll'.'SDL_GameControllerIsSensorEnabled'
|
||||
++'_SDL_GameControllerGetSensorData'.'SDL2.dll'.'SDL_GameControllerGetSensorData'
|
||||
++'_SDL_wcscasecmp'.'SDL2.dll'.'SDL_wcscasecmp'
|
||||
++'_SDL_wcsncasecmp'.'SDL2.dll'.'SDL_wcsncasecmp'
|
||||
++'_SDL_round'.'SDL2.dll'.'SDL_round'
|
||||
++'_SDL_roundf'.'SDL2.dll'.'SDL_roundf'
|
||||
++'_SDL_lround'.'SDL2.dll'.'SDL_lround'
|
||||
++'_SDL_lroundf'.'SDL2.dll'.'SDL_lroundf'
|
||||
++'_SDL_SoftStretchLinear'.'SDL2.dll'.'SDL_SoftStretchLinear'
|
||||
++'_SDL_RenderGetD3D11Device'.'SDL2.dll'.'SDL_RenderGetD3D11Device'
|
||||
++'_SDL_UpdateNVTexture'.'SDL2.dll'.'SDL_UpdateNVTexture'
|
||||
++'_SDL_SetWindowKeyboardGrab'.'SDL2.dll'.'SDL_SetWindowKeyboardGrab'
|
||||
++'_SDL_SetWindowMouseGrab'.'SDL2.dll'.'SDL_SetWindowMouseGrab'
|
||||
++'_SDL_GetWindowKeyboardGrab'.'SDL2.dll'.'SDL_GetWindowKeyboardGrab'
|
||||
++'_SDL_GetWindowMouseGrab'.'SDL2.dll'.'SDL_GetWindowMouseGrab'
|
||||
++'_SDL_isalpha'.'SDL2.dll'.'SDL_isalpha'
|
||||
++'_SDL_isalnum'.'SDL2.dll'.'SDL_isalnum'
|
||||
++'_SDL_isblank'.'SDL2.dll'.'SDL_isblank'
|
||||
++'_SDL_iscntrl'.'SDL2.dll'.'SDL_iscntrl'
|
||||
++'_SDL_isxdigit'.'SDL2.dll'.'SDL_isxdigit'
|
||||
++'_SDL_ispunct'.'SDL2.dll'.'SDL_ispunct'
|
||||
++'_SDL_isprint'.'SDL2.dll'.'SDL_isprint'
|
||||
++'_SDL_isgraph'.'SDL2.dll'.'SDL_isgraph'
|
||||
# ++'_SDL_AndroidShowToast'.'SDL2.dll'.'SDL_AndroidShowToast'
|
||||
++'_SDL_GetAudioDeviceSpec'.'SDL2.dll'.'SDL_GetAudioDeviceSpec'
|
||||
++'_SDL_TLSCleanup'.'SDL2.dll'.'SDL_TLSCleanup'
|
||||
++'_SDL_SetWindowAlwaysOnTop'.'SDL2.dll'.'SDL_SetWindowAlwaysOnTop'
|
||||
++'_SDL_FlashWindow'.'SDL2.dll'.'SDL_FlashWindow'
|
||||
++'_SDL_GameControllerSendEffect'.'SDL2.dll'.'SDL_GameControllerSendEffect'
|
||||
++'_SDL_JoystickSendEffect'.'SDL2.dll'.'SDL_JoystickSendEffect'
|
||||
++'_SDL_GameControllerGetSensorDataRate'.'SDL2.dll'.'SDL_GameControllerGetSensorDataRate'
|
||||
++'_SDL_SetTextureUserData'.'SDL2.dll'.'SDL_SetTextureUserData'
|
||||
++'_SDL_GetTextureUserData'.'SDL2.dll'.'SDL_GetTextureUserData'
|
||||
++'_SDL_RenderGeometry'.'SDL2.dll'.'SDL_RenderGeometry'
|
||||
++'_SDL_RenderGeometryRaw'.'SDL2.dll'.'SDL_RenderGeometryRaw'
|
||||
++'_SDL_RenderSetVSync'.'SDL2.dll'.'SDL_RenderSetVSync'
|
||||
++'_SDL_asprintf'.'SDL2.dll'.'SDL_asprintf'
|
||||
++'_SDL_vasprintf'.'SDL2.dll'.'SDL_vasprintf'
|
||||
++'_SDL_GetWindowICCProfile'.'SDL2.dll'.'SDL_GetWindowICCProfile'
|
||||
++'_SDL_GetTicks64'.'SDL2.dll'.'SDL_GetTicks64'
|
||||
# ++'_SDL_LinuxSetThreadPriorityAndPolicy'.'SDL2.dll'.'SDL_LinuxSetThreadPriorityAndPolicy'
|
||||
++'_SDL_GameControllerGetAppleSFSymbolsNameForButton'.'SDL2.dll'.'SDL_GameControllerGetAppleSFSymbolsNameForButton'
|
||||
++'_SDL_GameControllerGetAppleSFSymbolsNameForAxis'.'SDL2.dll'.'SDL_GameControllerGetAppleSFSymbolsNameForAxis'
|
||||
++'_SDL_hid_init'.'SDL2.dll'.'SDL_hid_init'
|
||||
++'_SDL_hid_exit'.'SDL2.dll'.'SDL_hid_exit'
|
||||
++'_SDL_hid_device_change_count'.'SDL2.dll'.'SDL_hid_device_change_count'
|
||||
++'_SDL_hid_enumerate'.'SDL2.dll'.'SDL_hid_enumerate'
|
||||
++'_SDL_hid_free_enumeration'.'SDL2.dll'.'SDL_hid_free_enumeration'
|
||||
++'_SDL_hid_open'.'SDL2.dll'.'SDL_hid_open'
|
||||
++'_SDL_hid_open_path'.'SDL2.dll'.'SDL_hid_open_path'
|
||||
++'_SDL_hid_write'.'SDL2.dll'.'SDL_hid_write'
|
||||
++'_SDL_hid_read_timeout'.'SDL2.dll'.'SDL_hid_read_timeout'
|
||||
++'_SDL_hid_read'.'SDL2.dll'.'SDL_hid_read'
|
||||
++'_SDL_hid_set_nonblocking'.'SDL2.dll'.'SDL_hid_set_nonblocking'
|
||||
++'_SDL_hid_send_feature_report'.'SDL2.dll'.'SDL_hid_send_feature_report'
|
||||
++'_SDL_hid_get_feature_report'.'SDL2.dll'.'SDL_hid_get_feature_report'
|
||||
++'_SDL_hid_close'.'SDL2.dll'.'SDL_hid_close'
|
||||
++'_SDL_hid_get_manufacturer_string'.'SDL2.dll'.'SDL_hid_get_manufacturer_string'
|
||||
++'_SDL_hid_get_product_string'.'SDL2.dll'.'SDL_hid_get_product_string'
|
||||
++'_SDL_hid_get_serial_number_string'.'SDL2.dll'.'SDL_hid_get_serial_number_string'
|
||||
++'_SDL_hid_get_indexed_string'.'SDL2.dll'.'SDL_hid_get_indexed_string'
|
||||
++'_SDL_SetWindowMouseRect'.'SDL2.dll'.'SDL_SetWindowMouseRect'
|
||||
++'_SDL_GetWindowMouseRect'.'SDL2.dll'.'SDL_GetWindowMouseRect'
|
||||
++'_SDL_RenderWindowToLogical'.'SDL2.dll'.'SDL_RenderWindowToLogical'
|
||||
++'_SDL_RenderLogicalToWindow'.'SDL2.dll'.'SDL_RenderLogicalToWindow'
|
||||
++'_SDL_JoystickHasRumble'.'SDL2.dll'.'SDL_JoystickHasRumble'
|
||||
++'_SDL_JoystickHasRumbleTriggers'.'SDL2.dll'.'SDL_JoystickHasRumbleTriggers'
|
||||
++'_SDL_GameControllerHasRumble'.'SDL2.dll'.'SDL_GameControllerHasRumble'
|
||||
++'_SDL_GameControllerHasRumbleTriggers'.'SDL2.dll'.'SDL_GameControllerHasRumbleTriggers'
|
||||
++'_SDL_hid_ble_scan'.'SDL2.dll'.'SDL_hid_ble_scan'
|
||||
++'_SDL_PremultiplyAlpha'.'SDL2.dll'.'SDL_PremultiplyAlpha'
|
||||
# ++'_SDL_AndroidSendMessage'.'SDL2.dll'.'SDL_AndroidSendMessage'
|
||||
++'_SDL_GetTouchName'.'SDL2.dll'.'SDL_GetTouchName'
|
||||
++'_SDL_ClearComposition'.'SDL2.dll'.'SDL_ClearComposition'
|
||||
++'_SDL_IsTextInputShown'.'SDL2.dll'.'SDL_IsTextInputShown'
|
||||
++'_SDL_HasIntersectionF'.'SDL2.dll'.'SDL_HasIntersectionF'
|
||||
++'_SDL_IntersectFRect'.'SDL2.dll'.'SDL_IntersectFRect'
|
||||
++'_SDL_UnionFRect'.'SDL2.dll'.'SDL_UnionFRect'
|
||||
++'_SDL_EncloseFPoints'.'SDL2.dll'.'SDL_EncloseFPoints'
|
||||
++'_SDL_IntersectFRectAndLine'.'SDL2.dll'.'SDL_IntersectFRectAndLine'
|
||||
++'_SDL_RenderGetWindow'.'SDL2.dll'.'SDL_RenderGetWindow'
|
||||
++'_SDL_bsearch'.'SDL2.dll'.'SDL_bsearch'
|
||||
++'_SDL_GameControllerPathForIndex'.'SDL2.dll'.'SDL_GameControllerPathForIndex'
|
||||
++'_SDL_GameControllerPath'.'SDL2.dll'.'SDL_GameControllerPath'
|
||||
++'_SDL_JoystickPathForIndex'.'SDL2.dll'.'SDL_JoystickPathForIndex'
|
||||
++'_SDL_JoystickPath'.'SDL2.dll'.'SDL_JoystickPath'
|
||||
++'_SDL_JoystickAttachVirtualEx'.'SDL2.dll'.'SDL_JoystickAttachVirtualEx'
|
|
@ -59,8 +59,8 @@
|
|||
#define SDL_DYNAMIC_API 0 /* Turn off for static analysis, so reports are more clear. */
|
||||
#elif defined(__VITA__)
|
||||
#define SDL_DYNAMIC_API 0 /* vitasdk doesn't support dynamic linking */
|
||||
#elif defined(__OS2__)
|
||||
#define SDL_DYNAMIC_API 0 /* see github bugs #5667 and #5669 */
|
||||
#elif defined(__NGAGE__)
|
||||
#define SDL_DYNAMIC_API 0 /* The N-Gage doesn't support dynamic linking either */
|
||||
#elif defined(DYNAPI_NEEDS_DLOPEN) && !defined(HAVE_DLOPEN)
|
||||
#define SDL_DYNAMIC_API 0 /* we need dlopen(), but don't have it.... */
|
||||
#elif defined(__SWITCH__) && __SWITCH__
|
||||
|
|
|
@ -439,8 +439,6 @@
|
|||
#define SDL_iconv_close SDL_iconv_close_REAL
|
||||
#define SDL_iconv SDL_iconv_REAL
|
||||
#define SDL_iconv_string SDL_iconv_string_REAL
|
||||
#define SDL_CreateRGBSurfaceWithFormat SDL_CreateRGBSurfaceWithFormat_REAL
|
||||
#define SDL_CreateRGBSurfaceWithFormatFrom SDL_CreateRGBSurfaceWithFormatFrom_REAL
|
||||
#define SDL_CreateRGBSurface SDL_CreateRGBSurface_REAL
|
||||
#define SDL_CreateRGBSurfaceFrom SDL_CreateRGBSurfaceFrom_REAL
|
||||
#define SDL_FreeSurface SDL_FreeSurface_REAL
|
||||
|
@ -577,7 +575,6 @@
|
|||
#define SDL_WarpMouseGlobal SDL_WarpMouseGlobal_REAL
|
||||
#define SDL_WinRTGetFSPathUNICODE SDL_WinRTGetFSPathUNICODE_REAL
|
||||
#define SDL_WinRTGetFSPathUTF8 SDL_WinRTGetFSPathUTF8_REAL
|
||||
#define SDL_WinRTRunApp SDL_WinRTRunApp_REAL
|
||||
#define SDL_sqrtf SDL_sqrtf_REAL
|
||||
#define SDL_tan SDL_tan_REAL
|
||||
#define SDL_tanf SDL_tanf_REAL
|
||||
|
@ -753,7 +750,6 @@
|
|||
#define SDL_JoystickDetachVirtual SDL_JoystickDetachVirtual_REAL
|
||||
#define SDL_JoystickIsVirtual SDL_JoystickIsVirtual_REAL
|
||||
#define SDL_JoystickSetVirtualAxis SDL_JoystickSetVirtualAxis_REAL
|
||||
#define SDL_JoystickSetVirtualBall SDL_JoystickSetVirtualBall_REAL
|
||||
#define SDL_JoystickSetVirtualButton SDL_JoystickSetVirtualButton_REAL
|
||||
#define SDL_JoystickSetVirtualHat SDL_JoystickSetVirtualHat_REAL
|
||||
#define SDL_GetErrorMsg SDL_GetErrorMsg_REAL
|
||||
|
@ -865,3 +861,9 @@
|
|||
#define SDL_EncloseFPoints SDL_EncloseFPoints_REAL
|
||||
#define SDL_IntersectFRectAndLine SDL_IntersectFRectAndLine_REAL
|
||||
#define SDL_RenderGetWindow SDL_RenderGetWindow_REAL
|
||||
#define SDL_bsearch SDL_bsearch_REAL
|
||||
#define SDL_GameControllerPathForIndex SDL_GameControllerPathForIndex_REAL
|
||||
#define SDL_GameControllerPath SDL_GameControllerPath_REAL
|
||||
#define SDL_JoystickPathForIndex SDL_JoystickPathForIndex_REAL
|
||||
#define SDL_JoystickPath SDL_JoystickPath_REAL
|
||||
#define SDL_JoystickAttachVirtualEx SDL_JoystickAttachVirtualEx_REAL
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue