Compare commits
145
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2eef7ca475 | ||
|
|
d126e7bbba | ||
|
|
e5024fae3d | ||
|
|
eb053c7f3f | ||
|
|
ed441c8289 | ||
|
|
59b0a1dc65 | ||
|
|
80d36aba5b | ||
|
|
e1e36d213b | ||
|
|
5c8d92e4d0 | ||
|
|
8a39054b54 | ||
|
|
c60e2704c8 | ||
|
|
a9fdbf7f21 | ||
|
|
ed86b02df8 | ||
|
|
0811b4dc51 | ||
|
|
d9901e0b85 | ||
|
|
0f5752b0fc | ||
|
|
31f77182d0 | ||
|
|
620e875335 | ||
|
|
c18173c260 | ||
|
|
f08f458896 | ||
|
|
53cf48f505 | ||
|
|
c32a1a5023 | ||
|
|
8b204815cc | ||
|
|
a9bb92b3ae | ||
|
|
630272eb55 | ||
|
|
92fe3b19c8 | ||
|
|
30e2b03a65 | ||
|
|
f8943854fd | ||
|
|
325465935d | ||
|
|
1cdd37b32c | ||
|
|
499bff9c3a | ||
|
|
bd06e43b87 | ||
|
|
72e5620202 | ||
|
|
fbb9646806 | ||
|
|
4b91f0793c | ||
|
|
6243a80b3f | ||
|
|
e0b0a98c8e | ||
|
|
785eac863b | ||
|
|
ab8659922d | ||
|
|
d48f9c4af4 | ||
|
|
5cc0644aa0 | ||
|
|
91accc391d | ||
|
|
3ee20388c5 | ||
|
|
2449510673 | ||
|
|
2c07ed320e | ||
|
|
607f37dafd | ||
|
|
acc2e040ce | ||
|
|
faa9bbdc8e | ||
|
|
cf6c760cd3 | ||
|
|
e49349ac0c | ||
|
|
1e5db996ff | ||
|
|
793a0681a9 | ||
|
|
825ffaa168 | ||
|
|
9ad6a36b7b | ||
|
|
c3b53c72c7 | ||
|
|
0800d81fb4 | ||
|
|
c27219695a | ||
|
|
9dcfc308ef | ||
|
|
77b3a6afaf | ||
|
|
dd42795131 | ||
|
|
fb1497566c | ||
|
|
cc6c0fe230 | ||
|
|
f9a46a319b | ||
|
|
48a0592a45 | ||
|
|
1c74a8b5ae | ||
|
|
3d18043005 | ||
|
|
6e1e00701e | ||
|
|
5570d846ea | ||
|
|
f5dcb8f7ad | ||
|
|
f6f1b09b69 | ||
|
|
bf540985aa | ||
|
|
c39f86c28a | ||
|
|
b5da8ad00d | ||
|
|
f62b86263a | ||
|
|
3449c734d5 | ||
|
|
3f29d985fe | ||
|
|
2f4a7bbced | ||
|
|
a0522e4c21 | ||
|
|
f461d91cd2 | ||
|
|
ef54e0c4f4 | ||
|
|
863f39fb9f | ||
|
|
d33b28c9fe | ||
|
|
c15a87a614 | ||
|
|
45de0635ac | ||
|
|
bca314c339 | ||
|
|
f05490d0e2 | ||
|
|
442e201705 | ||
|
|
9c346b2321 | ||
|
|
a6b684d05a | ||
|
|
8fb82da226 | ||
|
|
0949f89028 | ||
|
|
350a49e1cc | ||
|
|
bc19e38728 | ||
|
|
228a2954d7 | ||
|
|
3d6d4ca2cd | ||
|
|
4c3e5cf1d1 | ||
|
|
27b1b6d4eb | ||
|
|
24269007d8 | ||
|
|
d849036927 | ||
|
|
5be47255ba | ||
|
|
8f860b3698 | ||
|
|
35992597ae | ||
|
|
3f0d7a2937 | ||
|
|
dae1232489 | ||
|
|
8e388843b8 | ||
|
|
5adbf3765a | ||
|
|
e910e6f13d | ||
|
|
2f2cca8ac6 | ||
|
|
a2f39399a1 | ||
|
|
c1149f88b6 | ||
|
|
54adba6a31 | ||
|
|
b48106f8a8 | ||
|
|
f345428367 | ||
|
|
e4287595c1 | ||
|
|
73efbf2e14 | ||
|
|
ad342dfca9 | ||
|
|
f13d6d4b0f | ||
|
|
dfb8241317 | ||
|
|
c67f10e43f | ||
|
|
932eea513e | ||
|
|
5e51a37518 | ||
|
|
372564299e | ||
|
|
c397fe0c51 | ||
|
|
95227e2732 | ||
|
|
6f8d6da77f | ||
|
|
6f15aec644 | ||
|
|
9bed177f10 | ||
|
|
7de4f16710 | ||
|
|
beac43f41f | ||
|
|
8538d5dcf1 | ||
|
|
0fb294ade4 | ||
|
|
0f6a682ea6 | ||
|
|
c4fc20a033 | ||
|
|
a24e2bfc76 | ||
|
|
6a83588fdd | ||
|
|
0092b3629e | ||
|
|
c0eedcd4ce | ||
|
|
d1b6d5f33d | ||
|
|
fe297fc6d8 | ||
|
|
384fcea585 | ||
|
|
2f2b44a1bd | ||
|
|
8386daddcb | ||
|
|
739a23e506 | ||
|
|
5a59155a05 | ||
|
|
1ad917e2f6 |
No files matched your search
@@ -15,7 +15,7 @@ jobs:
|
|||||||
- { name: CMake, cmake: 1, android_abi: "arm64-v8a", android_platform: 23, arch: "aarch64" }
|
- { name: CMake, cmake: 1, android_abi: "arm64-v8a", android_platform: 23, arch: "aarch64" }
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: nttld/setup-ndk@v1
|
- uses: nttld/setup-ndk@v1
|
||||||
id: setup_ndk
|
id: setup_ndk
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ jobs:
|
|||||||
name: FreeBSD
|
name: FreeBSD
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Build
|
- name: Build
|
||||||
uses: cross-platform-actions/action@v0.19.1
|
uses: cross-platform-actions/action@v0.23.0
|
||||||
with:
|
with:
|
||||||
operating_system: freebsd
|
operating_system: freebsd
|
||||||
version: '13.2'
|
version: '13.2'
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ jobs:
|
|||||||
emscripten:
|
emscripten:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: mymindstorm/setup-emsdk@v12
|
- uses: mymindstorm/setup-emsdk@v14
|
||||||
with:
|
with:
|
||||||
version: 3.1.35
|
version: 3.1.35
|
||||||
- name: Install ninja
|
- name: Install ninja
|
||||||
|
|||||||
@@ -15,6 +15,6 @@ jobs:
|
|||||||
- { name: tvOS, target: Static Library-tvOS, sdk: appletvos }
|
- { name: tvOS, target: Static Library-tvOS, sdk: appletvos }
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Build
|
- name: Build
|
||||||
run: xcodebuild -project Xcode/SDL/SDL.xcodeproj -target '${{ matrix.platform.target }}' -configuration Release -sdk ${{ matrix.platform.sdk }} clean build
|
run: xcodebuild -project Xcode/SDL/SDL.xcodeproj -target '${{ matrix.platform.target }}' -configuration Release -sdk ${{ matrix.platform.sdk }} clean build
|
||||||
@@ -64,6 +64,7 @@ jobs:
|
|||||||
if: runner.os == 'macOS'
|
if: runner.os == 'macOS'
|
||||||
run: |
|
run: |
|
||||||
brew install \
|
brew install \
|
||||||
|
autoconf \
|
||||||
ninja \
|
ninja \
|
||||||
pkg-config
|
pkg-config
|
||||||
|
|
||||||
@@ -83,7 +84,7 @@ jobs:
|
|||||||
# Install oneAPI
|
# Install oneAPI
|
||||||
sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
|
sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
|
||||||
|
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Check that versioning is consistent
|
- name: Check that versioning is consistent
|
||||||
# We only need to run this once: arbitrarily use the Linux/CMake build
|
# We only need to run this once: arbitrarily use the Linux/CMake build
|
||||||
if: "runner.os == 'Linux' && ! matrix.platform.autotools"
|
if: "runner.os == 'Linux' && ! matrix.platform.autotools"
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ jobs:
|
|||||||
project: VisualC-WinRT/SDL-UWP.sln, projectflags: '/p:Platform=x64 /p:WindowsTargetPlatformVersion=10.0.17763.0' }
|
project: VisualC-WinRT/SDL-UWP.sln, projectflags: '/p:Platform=x64 /p:WindowsTargetPlatformVersion=10.0.17763.0' }
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Create CMake project using SDL as a subproject
|
- name: Create CMake project using SDL as a subproject
|
||||||
shell: python
|
shell: python
|
||||||
run: |
|
run: |
|
||||||
@@ -74,7 +74,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Add msbuild to PATH
|
- name: Add msbuild to PATH
|
||||||
if: ${{ matrix.platform.project != '' }}
|
if: ${{ matrix.platform.project != '' }}
|
||||||
uses: microsoft/setup-msbuild@v1.1.3
|
uses: microsoft/setup-msbuild@v2
|
||||||
- name: Build msbuild
|
- name: Build msbuild
|
||||||
if: ${{ matrix.platform.project != '' }}
|
if: ${{ matrix.platform.project != '' }}
|
||||||
run: msbuild ${{ matrix.platform.project }} /m /p:BuildInParallel=true /p:Configuration=Release ${{ matrix.platform.projectflags }}
|
run: msbuild ${{ matrix.platform.project }} /m /p:BuildInParallel=true /p:Configuration=Release ${{ matrix.platform.projectflags }}
|
||||||
@@ -8,7 +8,7 @@ jobs:
|
|||||||
container:
|
container:
|
||||||
image: devkitpro/devkitarm:latest
|
image: devkitpro/devkitarm:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Install build requirements
|
- name: Install build requirements
|
||||||
run: |
|
run: |
|
||||||
apt update
|
apt update
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: ps2dev/ps2dev:latest
|
container: ps2dev/ps2dev:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Setup dependencies
|
- name: Setup dependencies
|
||||||
run: |
|
run: |
|
||||||
apk update
|
apk update
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: pspdev/pspdev:latest
|
container: pspdev/pspdev:latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Setup dependencies
|
- name: Setup dependencies
|
||||||
run: |
|
run: |
|
||||||
apk update
|
apk update
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Setup dependencies
|
- name: Setup dependencies
|
||||||
run: apt-get update && apt-get install -y cmake ninja-build
|
run: apt-get update && apt-get install -y cmake ninja-build
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Configure (autotools)
|
- name: Configure (autotools)
|
||||||
if: ${{ contains(matrix.platform.name, 'autotools') }}
|
if: ${{ contains(matrix.platform.name, 'autotools') }}
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ jobs:
|
|||||||
- { name: GLES (pib), os: windows-latest, pib: true }
|
- { name: GLES (pib), os: windows-latest, pib: true }
|
||||||
- { name: GLES (PVR_PSP2 + gl4es4vita), os: windows-latest, pvr: true }
|
- { name: GLES (PVR_PSP2 + gl4es4vita), os: windows-latest, pvr: true }
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Install build requirements
|
- name: Install build requirements
|
||||||
run: |
|
run: |
|
||||||
apk update
|
apk update
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ jobs:
|
|||||||
- { name: OS/2, makefile: Makefile.os2 }
|
- { name: OS/2, makefile: Makefile.os2 }
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- uses: open-watcom/setup-watcom@v0
|
- uses: open-watcom/setup-watcom@v0
|
||||||
- name: Build SDL2
|
- name: Build SDL2
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
+8
-24
@@ -87,7 +87,7 @@ endif()
|
|||||||
# See docs/release_checklist.md
|
# See docs/release_checklist.md
|
||||||
set(SDL_MAJOR_VERSION 2)
|
set(SDL_MAJOR_VERSION 2)
|
||||||
set(SDL_MINOR_VERSION 30)
|
set(SDL_MINOR_VERSION 30)
|
||||||
set(SDL_MICRO_VERSION 0)
|
set(SDL_MICRO_VERSION 5)
|
||||||
set(SDL_VERSION "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}.${SDL_MICRO_VERSION}")
|
set(SDL_VERSION "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}.${SDL_MICRO_VERSION}")
|
||||||
|
|
||||||
# Set defaults preventing destination file conflicts
|
# Set defaults preventing destination file conflicts
|
||||||
@@ -241,7 +241,7 @@ endif()
|
|||||||
if(UNIX OR MINGW OR MSYS OR (USE_CLANG AND NOT WINDOWS) OR VITA OR PSP OR PS2 OR N3DS)
|
if(UNIX OR MINGW OR MSYS OR (USE_CLANG AND NOT WINDOWS) OR VITA OR PSP OR PS2 OR N3DS)
|
||||||
set(OPT_DEF_LIBC ON)
|
set(OPT_DEF_LIBC ON)
|
||||||
endif()
|
endif()
|
||||||
if(WINDOWS OR IOS OR TVOS)
|
if(WINDOWS OR DARWIN OR MACOSX OR IOS OR TVOS)
|
||||||
set(SDL_SYSTEM_ICONV_DEFAULT OFF)
|
set(SDL_SYSTEM_ICONV_DEFAULT OFF)
|
||||||
else()
|
else()
|
||||||
set(SDL_SYSTEM_ICONV_DEFAULT ON)
|
set(SDL_SYSTEM_ICONV_DEFAULT ON)
|
||||||
@@ -926,22 +926,6 @@ if(SDL_ASSEMBLY)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(SDL_LASX)
|
|
||||||
cmake_push_check_state()
|
|
||||||
set(CMAKE_REQUIRED_FLAGS "-mlasx")
|
|
||||||
check_c_source_compiles("
|
|
||||||
#ifndef __loongarch_asx
|
|
||||||
#error Assembler CPP flag not enabled
|
|
||||||
#endif
|
|
||||||
int main(int argc, char **argv) { return 0; }" CPU_SUPPORTS_LASX)
|
|
||||||
check_include_file("lasxintrin.h" HAVE_LASXINTRIN_H)
|
|
||||||
cmake_pop_check_state()
|
|
||||||
if(CPU_SUPPORTS_LASX AND HAVE_LASXINTRIN_H)
|
|
||||||
list(APPEND EXTRA_CFLAGS "-mlasx")
|
|
||||||
set(HAVE_LASX TRUE)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(SDL_ARMSIMD)
|
if(SDL_ARMSIMD)
|
||||||
set(ORIG_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
set(ORIG_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
||||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -x assembler-with-cpp")
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -x assembler-with-cpp")
|
||||||
@@ -1107,6 +1091,8 @@ if(SDL_LIBC)
|
|||||||
check_symbol_exists(getauxval "sys/auxv.h" HAVE_GETAUXVAL)
|
check_symbol_exists(getauxval "sys/auxv.h" HAVE_GETAUXVAL)
|
||||||
check_symbol_exists(elf_aux_info "sys/auxv.h" HAVE_ELF_AUX_INFO)
|
check_symbol_exists(elf_aux_info "sys/auxv.h" HAVE_ELF_AUX_INFO)
|
||||||
check_symbol_exists(poll "poll.h" HAVE_POLL)
|
check_symbol_exists(poll "poll.h" HAVE_POLL)
|
||||||
|
check_symbol_exists(memfd_create "sys/mman.h" HAVE_MEMFD_CREATE)
|
||||||
|
check_symbol_exists(posix_fallocate "fcntl.h" HAVE_POSIX_FALLOCATE)
|
||||||
|
|
||||||
check_library_exists(m pow "" HAVE_LIBM)
|
check_library_exists(m pow "" HAVE_LIBM)
|
||||||
if(HAVE_LIBM)
|
if(HAVE_LIBM)
|
||||||
@@ -1688,7 +1674,7 @@ elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
|
|||||||
if(FREEBSD OR NETBSD OR OPENBSD OR BSDI)
|
if(FREEBSD OR NETBSD OR OPENBSD OR BSDI)
|
||||||
CheckUSBHID()
|
CheckUSBHID()
|
||||||
endif()
|
endif()
|
||||||
if(LINUX AND HAVE_LINUX_INPUT_H AND NOT ANDROID)
|
if((LINUX OR FREEBSD) AND HAVE_LINUX_INPUT_H AND NOT ANDROID)
|
||||||
set(SDL_JOYSTICK_LINUX 1)
|
set(SDL_JOYSTICK_LINUX 1)
|
||||||
file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/linux/*.c ${SDL2_SOURCE_DIR}/src/joystick/steam/*.c)
|
file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/linux/*.c ${SDL2_SOURCE_DIR}/src/joystick/steam/*.c)
|
||||||
list(APPEND SOURCE_FILES ${JOYSTICK_SOURCES})
|
list(APPEND SOURCE_FILES ${JOYSTICK_SOURCES})
|
||||||
@@ -1824,13 +1810,11 @@ elseif(WINDOWS)
|
|||||||
check_include_file(d3d9.h HAVE_D3D_H)
|
check_include_file(d3d9.h HAVE_D3D_H)
|
||||||
check_include_file(d3d11_1.h HAVE_D3D11_H)
|
check_include_file(d3d11_1.h HAVE_D3D11_H)
|
||||||
check_c_source_compiles("
|
check_c_source_compiles("
|
||||||
#include <winsdkver.h>
|
|
||||||
#include <sdkddkver.h>
|
|
||||||
#include <d3d12.h>
|
#include <d3d12.h>
|
||||||
|
#include <d3d12sdklayers.h>
|
||||||
ID3D12Device1 *device;
|
ID3D12Device1 *device;
|
||||||
#if WDK_NTDDI_VERSION > 0x0A000008
|
int main(int argc, char **argv) {return 0; }
|
||||||
int main(int argc, char **argv) { return 0; }
|
" HAVE_D3D12_H)
|
||||||
#endif" HAVE_D3D12_H)
|
|
||||||
check_include_file(ddraw.h HAVE_DDRAW_H)
|
check_include_file(ddraw.h HAVE_DDRAW_H)
|
||||||
check_include_file(dsound.h HAVE_DSOUND_H)
|
check_include_file(dsound.h HAVE_DSOUND_H)
|
||||||
check_include_file(dinput.h HAVE_DINPUT_H)
|
check_include_file(dinput.h HAVE_DINPUT_H)
|
||||||
|
|||||||
+1
-1
@@ -52,7 +52,7 @@ WAYLAND_SCANNER_CODE_MODE = @WAYLAND_SCANNER_CODE_MODE@
|
|||||||
|
|
||||||
INSTALL_SDL2_CONFIG = @INSTALL_SDL2_CONFIG@
|
INSTALL_SDL2_CONFIG = @INSTALL_SDL2_CONFIG@
|
||||||
|
|
||||||
SRC_DIST = *.md *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.ac docs include Makefile.* mingw sdl2-config.cmake.in sdl2-config-version.cmake.in sdl2-config.in sdl2.m4 sdl2.pc.in SDL2.spec.in SDL2Config.cmake.in src test VisualC VisualC-WinRT Xcode Xcode-iOS wayland-protocols
|
SRC_DIST = *.md *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.ac docs include Makefile.* mingw sdl2-config.cmake.in sdl2-config-version.cmake.in sdl2-config.in sdl2.m4 sdl2.pc.in SDL2.spec.in SDL2Config.cmake.in src test VisualC VisualC-GDK VisualC-WinRT Xcode Xcode-iOS wayland-protocols
|
||||||
GEN_DIST = SDL2.spec
|
GEN_DIST = SDL2.spec
|
||||||
|
|
||||||
ifneq ($V,1)
|
ifneq ($V,1)
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@
|
|||||||
LIBNAME = SDL2
|
LIBNAME = SDL2
|
||||||
MAJOR_VERSION = 2
|
MAJOR_VERSION = 2
|
||||||
MINOR_VERSION = 30
|
MINOR_VERSION = 30
|
||||||
MICRO_VERSION = 0
|
MICRO_VERSION = 5
|
||||||
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
||||||
DESCRIPTION = Simple DirectMedia Layer 2
|
DESCRIPTION = Simple DirectMedia Layer 2
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
LIBNAME = SDL2
|
LIBNAME = SDL2
|
||||||
MAJOR_VERSION = 2
|
MAJOR_VERSION = 2
|
||||||
MINOR_VERSION = 30
|
MINOR_VERSION = 30
|
||||||
MICRO_VERSION = 0
|
MICRO_VERSION = 5
|
||||||
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)
|
||||||
|
|
||||||
LIBHOME = .
|
LIBHOME = .
|
||||||
|
|||||||
@@ -499,7 +499,6 @@
|
|||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_platform.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_platform.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_sdk_platform.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_sdk_platform.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.hpp" />
|
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_beta.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_beta.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_core.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_core.h" />
|
||||||
|
|||||||
@@ -780,9 +780,6 @@
|
|||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h">
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h">
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
<Filter>video\khronos\vulkan</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.hpp">
|
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h">
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h">
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
<Filter>video\khronos\vulkan</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|||||||
@@ -139,7 +139,7 @@
|
|||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Xbox.Scarlett.x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Gaming.Xbox.Scarlett.x64'">
|
||||||
@@ -211,7 +211,7 @@
|
|||||||
<Link>
|
<Link>
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.141.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>xgameruntime.lib;../Microsoft.Xbox.Services.GDK.C.Thunks.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">
|
||||||
@@ -409,7 +409,7 @@
|
|||||||
<CopyFileToFolders Include="..\..\logos\Logo480x480.png" />
|
<CopyFileToFolders Include="..\..\logos\Logo480x480.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.141.GDK.C.Thunks.dll">
|
<CopyFileToFolders Include="$(Console_GRDKExtLibRoot)Xbox.Services.API.C\DesignTime\CommonConfiguration\Neutral\Lib\Release\Microsoft.Xbox.Services.GDK.C.Thunks.dll">
|
||||||
<FileType>Document</FileType>
|
<FileType>Document</FileType>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.Scarlett.x64'">true</ExcludedFromBuild>
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.XboxOne.x64'">true</ExcludedFromBuild>
|
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Gaming.Xbox.XboxOne.x64'">true</ExcludedFromBuild>
|
||||||
|
|||||||
@@ -394,7 +394,6 @@
|
|||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_platform.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_platform.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_sdk_platform.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vk_sdk_platform.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.hpp" />
|
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_beta.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_beta.h" />
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_core.h" />
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_core.h" />
|
||||||
|
|||||||
@@ -780,9 +780,6 @@
|
|||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h">
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.h">
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
<Filter>video\khronos\vulkan</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan.hpp">
|
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h">
|
<ClInclude Include="..\..\src\video\khronos\vulkan\vulkan_android.h">
|
||||||
<Filter>video\khronos\vulkan</Filter>
|
<Filter>video\khronos\vulkan</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|||||||
@@ -19,10 +19,10 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>FMWK</string>
|
<string>FMWK</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>2.30.0</string>
|
<string>2.30.5</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>SDLX</string>
|
<string>SDLX</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>2.30.0</string>
|
<string>2.30.5</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
@@ -206,7 +206,6 @@
|
|||||||
A75FCD4823E25AB700529352 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCD4823E25AB700529352 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
||||||
A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
||||||
A75FCD4E23E25AB700529352 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A75FCD4F23E25AB700529352 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCD4F23E25AB700529352 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCD5023E25AB700529352 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
A75FCD5023E25AB700529352 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
||||||
A75FCD5123E25AB700529352 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
A75FCD5123E25AB700529352 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
||||||
@@ -282,7 +281,6 @@
|
|||||||
A75FCDA123E25AB700529352 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A75FCDA123E25AB700529352 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
A75FCDA223E25AB700529352 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
A75FCDA223E25AB700529352 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
||||||
A75FCDA323E25AB700529352 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
A75FCDA323E25AB700529352 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
||||||
A75FCDA423E25AB700529352 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A75FCDA523E25AB700529352 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCDA523E25AB700529352 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCDA623E25AB700529352 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
A75FCDA623E25AB700529352 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
||||||
A75FCDA723E25AB700529352 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
A75FCDA723E25AB700529352 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
||||||
@@ -580,7 +578,6 @@
|
|||||||
A75FCF0123E25AC700529352 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCF0123E25AC700529352 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DB1595D4D800BBD41B /* SDL_keycode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
||||||
A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
||||||
A75FCF0723E25AC700529352 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A75FCF0823E25AC700529352 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCF0823E25AC700529352 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557DC1595D4D800BBD41B /* SDL_loadso.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCF0923E25AC700529352 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
A75FCF0923E25AC700529352 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
||||||
A75FCF0A23E25AC700529352 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
A75FCF0A23E25AC700529352 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
||||||
@@ -656,7 +653,6 @@
|
|||||||
A75FCF5A23E25AC700529352 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A75FCF5A23E25AC700529352 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
A75FCF5B23E25AC700529352 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
A75FCF5B23E25AC700529352 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
||||||
A75FCF5C23E25AC700529352 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
A75FCF5C23E25AC700529352 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
||||||
A75FCF5D23E25AC700529352 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A75FCF5E23E25AC700529352 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
A75FCF5E23E25AC700529352 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7557E81595D4D800BBD41B /* SDL_quit.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
A75FCF5F23E25AC700529352 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
A75FCF5F23E25AC700529352 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
||||||
A75FCF6023E25AC700529352 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
A75FCF6023E25AC700529352 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
||||||
@@ -974,7 +970,6 @@
|
|||||||
A769B0CD23E259AE00872273 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; };
|
A769B0CD23E259AE00872273 /* SDL_systhread_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A78423E2513E00DCD162 /* SDL_systhread_c.h */; };
|
||||||
A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A68023E2513E00DCD162 /* SDL_cocoakeyboard.h */; };
|
||||||
A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A63323E2513D00DCD162 /* SDL_uikitvulkan.h */; };
|
||||||
A769B0D423E259AE00872273 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A769B0D623E259AE00872273 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
A769B0D623E259AE00872273 /* gl2ext.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72323E2513E00DCD162 /* gl2ext.h */; };
|
||||||
A769B0D723E259AE00872273 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
A769B0D723E259AE00872273 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93923E2514000DCD162 /* SDL_clipboardevents_c.h */; };
|
||||||
A769B0D923E259AE00872273 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; };
|
A769B0D923E259AE00872273 /* SDL_syshaptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A5CF23E2513D00DCD162 /* SDL_syshaptic_c.h */; };
|
||||||
@@ -1036,7 +1031,6 @@
|
|||||||
A769B12923E259AE00872273 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A769B12923E259AE00872273 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
A769B12A23E259AE00872273 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
A769B12A23E259AE00872273 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
|
||||||
A769B12B23E259AE00872273 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
A769B12B23E259AE00872273 /* vulkan_vi.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */; };
|
||||||
A769B12C23E259AE00872273 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A769B12E23E259AE00872273 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
A769B12E23E259AE00872273 /* default_cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A93323E2514000DCD162 /* default_cursor.h */; };
|
||||||
A769B12F23E259AE00872273 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
A769B12F23E259AE00872273 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A8F523E2514000DCD162 /* SDL_render_sw_c.h */; };
|
||||||
A769B13223E259AE00872273 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; };
|
A769B13223E259AE00872273 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A60A23E2513D00DCD162 /* SDL_nullvideo.h */; };
|
||||||
@@ -2110,12 +2104,6 @@
|
|||||||
A7D8B26923E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
A7D8B26923E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
||||||
A7D8B26A23E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
A7D8B26A23E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
||||||
A7D8B26B23E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
A7D8B26B23E2514200DCD162 /* vk_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73123E2513E00DCD162 /* vk_platform.h */; };
|
||||||
A7D8B26C23E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B26D23E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B26E23E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B26F23E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B27023E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B27123E2514200DCD162 /* vulkan.hpp in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73223E2513E00DCD162 /* vulkan.hpp */; };
|
|
||||||
A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
||||||
A7D8B27323E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
A7D8B27323E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
||||||
A7D8B27423E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
A7D8B27423E2514200DCD162 /* vulkan_fuchsia.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */; };
|
||||||
@@ -2152,12 +2140,6 @@
|
|||||||
A7D8B29323E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
A7D8B29323E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
||||||
A7D8B29423E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
A7D8B29423E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
||||||
A7D8B29523E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
A7D8B29523E2514200DCD162 /* vulkan_xcb.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */; };
|
||||||
A7D8B29623E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29723E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29823E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29923E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29A23E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29B23E2514200DCD162 /* vulkan_mir.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73923E2513E00DCD162 /* vulkan_mir.h */; };
|
|
||||||
A7D8B29C23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A7D8B29C23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
A7D8B29D23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A7D8B29D23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
A7D8B29E23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
A7D8B29E23E2514200DCD162 /* vulkan_xlib.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */; };
|
||||||
@@ -3968,14 +3950,12 @@
|
|||||||
A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_vi.h; sourceTree = "<group>"; };
|
A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_vi.h; sourceTree = "<group>"; };
|
||||||
A7D8A73023E2513E00DCD162 /* vulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan.h; sourceTree = "<group>"; };
|
A7D8A73023E2513E00DCD162 /* vulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan.h; sourceTree = "<group>"; };
|
||||||
A7D8A73123E2513E00DCD162 /* vk_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_platform.h; sourceTree = "<group>"; };
|
A7D8A73123E2513E00DCD162 /* vk_platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vk_platform.h; sourceTree = "<group>"; };
|
||||||
A7D8A73223E2513E00DCD162 /* vulkan.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = vulkan.hpp; sourceTree = "<group>"; };
|
|
||||||
A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_fuchsia.h; sourceTree = "<group>"; };
|
A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_fuchsia.h; sourceTree = "<group>"; };
|
||||||
A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_wayland.h; sourceTree = "<group>"; };
|
A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_wayland.h; sourceTree = "<group>"; };
|
||||||
A7D8A73523E2513E00DCD162 /* vulkan_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_win32.h; sourceTree = "<group>"; };
|
A7D8A73523E2513E00DCD162 /* vulkan_win32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_win32.h; sourceTree = "<group>"; };
|
||||||
A7D8A73623E2513E00DCD162 /* vulkan_macos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_macos.h; sourceTree = "<group>"; };
|
A7D8A73623E2513E00DCD162 /* vulkan_macos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_macos.h; sourceTree = "<group>"; };
|
||||||
A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib_xrandr.h; sourceTree = "<group>"; };
|
A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib_xrandr.h; sourceTree = "<group>"; };
|
||||||
A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xcb.h; sourceTree = "<group>"; };
|
A7D8A73823E2513E00DCD162 /* vulkan_xcb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xcb.h; sourceTree = "<group>"; };
|
||||||
A7D8A73923E2513E00DCD162 /* vulkan_mir.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_mir.h; sourceTree = "<group>"; };
|
|
||||||
A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib.h; sourceTree = "<group>"; };
|
A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_xlib.h; sourceTree = "<group>"; };
|
||||||
A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_ios.h; sourceTree = "<group>"; };
|
A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_ios.h; sourceTree = "<group>"; };
|
||||||
A7D8A73C23E2513E00DCD162 /* vulkan_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_core.h; sourceTree = "<group>"; };
|
A7D8A73C23E2513E00DCD162 /* vulkan_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vulkan_core.h; sourceTree = "<group>"; };
|
||||||
@@ -5003,7 +4983,6 @@
|
|||||||
A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */,
|
A7D8A73323E2513E00DCD162 /* vulkan_fuchsia.h */,
|
||||||
A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */,
|
A7D8A73B23E2513E00DCD162 /* vulkan_ios.h */,
|
||||||
A7D8A73623E2513E00DCD162 /* vulkan_macos.h */,
|
A7D8A73623E2513E00DCD162 /* vulkan_macos.h */,
|
||||||
A7D8A73923E2513E00DCD162 /* vulkan_mir.h */,
|
|
||||||
A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */,
|
A7D8A72F23E2513E00DCD162 /* vulkan_vi.h */,
|
||||||
A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */,
|
A7D8A73423E2513E00DCD162 /* vulkan_wayland.h */,
|
||||||
A7D8A73523E2513E00DCD162 /* vulkan_win32.h */,
|
A7D8A73523E2513E00DCD162 /* vulkan_win32.h */,
|
||||||
@@ -5011,7 +4990,6 @@
|
|||||||
A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */,
|
A7D8A73723E2513E00DCD162 /* vulkan_xlib_xrandr.h */,
|
||||||
A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */,
|
A7D8A73A23E2513E00DCD162 /* vulkan_xlib.h */,
|
||||||
A7D8A73023E2513E00DCD162 /* vulkan.h */,
|
A7D8A73023E2513E00DCD162 /* vulkan.h */,
|
||||||
A7D8A73223E2513E00DCD162 /* vulkan.hpp */,
|
|
||||||
);
|
);
|
||||||
path = vulkan;
|
path = vulkan;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -5596,7 +5574,6 @@
|
|||||||
5616CA63252BB35F005D5928 /* SDL_sysurl.h in Headers */,
|
5616CA63252BB35F005D5928 /* SDL_sysurl.h in Headers */,
|
||||||
A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */,
|
A75FCD4A23E25AB700529352 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */,
|
A75FCD4B23E25AB700529352 /* SDL_uikitvulkan.h in Headers */,
|
||||||
A75FCD4E23E25AB700529352 /* vulkan.hpp in Headers */,
|
|
||||||
A75FCD4F23E25AB700529352 /* SDL_loadso.h in Headers */,
|
A75FCD4F23E25AB700529352 /* SDL_loadso.h in Headers */,
|
||||||
A75FCD5023E25AB700529352 /* gl2ext.h in Headers */,
|
A75FCD5023E25AB700529352 /* gl2ext.h in Headers */,
|
||||||
A75FCD5123E25AB700529352 /* SDL_clipboardevents_c.h in Headers */,
|
A75FCD5123E25AB700529352 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
@@ -5680,7 +5657,6 @@
|
|||||||
A75FCDA123E25AB700529352 /* vulkan_xlib.h in Headers */,
|
A75FCDA123E25AB700529352 /* vulkan_xlib.h in Headers */,
|
||||||
A75FCDA223E25AB700529352 /* SDL_uikitwindow.h in Headers */,
|
A75FCDA223E25AB700529352 /* SDL_uikitwindow.h in Headers */,
|
||||||
A75FCDA323E25AB700529352 /* vulkan_vi.h in Headers */,
|
A75FCDA323E25AB700529352 /* vulkan_vi.h in Headers */,
|
||||||
A75FCDA423E25AB700529352 /* vulkan_mir.h in Headers */,
|
|
||||||
A75FCDA523E25AB700529352 /* SDL_quit.h in Headers */,
|
A75FCDA523E25AB700529352 /* SDL_quit.h in Headers */,
|
||||||
A75FCDA623E25AB700529352 /* default_cursor.h in Headers */,
|
A75FCDA623E25AB700529352 /* default_cursor.h in Headers */,
|
||||||
A75FCDA723E25AB700529352 /* SDL_render_sw_c.h in Headers */,
|
A75FCDA723E25AB700529352 /* SDL_render_sw_c.h in Headers */,
|
||||||
@@ -5833,7 +5809,6 @@
|
|||||||
5616CA66252BB361005D5928 /* SDL_sysurl.h in Headers */,
|
5616CA66252BB361005D5928 /* SDL_sysurl.h in Headers */,
|
||||||
A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */,
|
A75FCF0323E25AC700529352 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */,
|
A75FCF0423E25AC700529352 /* SDL_uikitvulkan.h in Headers */,
|
||||||
A75FCF0723E25AC700529352 /* vulkan.hpp in Headers */,
|
|
||||||
A75FCF0823E25AC700529352 /* SDL_loadso.h in Headers */,
|
A75FCF0823E25AC700529352 /* SDL_loadso.h in Headers */,
|
||||||
A75FCF0923E25AC700529352 /* gl2ext.h in Headers */,
|
A75FCF0923E25AC700529352 /* gl2ext.h in Headers */,
|
||||||
A75FCF0A23E25AC700529352 /* SDL_clipboardevents_c.h in Headers */,
|
A75FCF0A23E25AC700529352 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
@@ -5917,7 +5892,6 @@
|
|||||||
A75FCF5A23E25AC700529352 /* vulkan_xlib.h in Headers */,
|
A75FCF5A23E25AC700529352 /* vulkan_xlib.h in Headers */,
|
||||||
A75FCF5B23E25AC700529352 /* SDL_uikitwindow.h in Headers */,
|
A75FCF5B23E25AC700529352 /* SDL_uikitwindow.h in Headers */,
|
||||||
A75FCF5C23E25AC700529352 /* vulkan_vi.h in Headers */,
|
A75FCF5C23E25AC700529352 /* vulkan_vi.h in Headers */,
|
||||||
A75FCF5D23E25AC700529352 /* vulkan_mir.h in Headers */,
|
|
||||||
A75FCF5E23E25AC700529352 /* SDL_quit.h in Headers */,
|
A75FCF5E23E25AC700529352 /* SDL_quit.h in Headers */,
|
||||||
A75FCF5F23E25AC700529352 /* default_cursor.h in Headers */,
|
A75FCF5F23E25AC700529352 /* default_cursor.h in Headers */,
|
||||||
A75FCF6023E25AC700529352 /* SDL_render_sw_c.h in Headers */,
|
A75FCF6023E25AC700529352 /* SDL_render_sw_c.h in Headers */,
|
||||||
@@ -6043,7 +6017,6 @@
|
|||||||
A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */,
|
A769B0D023E259AE00872273 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
5616CA5D252BB35E005D5928 /* SDL_sysurl.h in Headers */,
|
5616CA5D252BB35E005D5928 /* SDL_sysurl.h in Headers */,
|
||||||
A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */,
|
A769B0D123E259AE00872273 /* SDL_uikitvulkan.h in Headers */,
|
||||||
A769B0D423E259AE00872273 /* vulkan.hpp in Headers */,
|
|
||||||
A769B0D623E259AE00872273 /* gl2ext.h in Headers */,
|
A769B0D623E259AE00872273 /* gl2ext.h in Headers */,
|
||||||
A769B0D723E259AE00872273 /* SDL_clipboardevents_c.h in Headers */,
|
A769B0D723E259AE00872273 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
A769B0D923E259AE00872273 /* SDL_syshaptic_c.h in Headers */,
|
A769B0D923E259AE00872273 /* SDL_syshaptic_c.h in Headers */,
|
||||||
@@ -6114,7 +6087,6 @@
|
|||||||
F386F6F52884663E001840AA /* SDL_utils_c.h in Headers */,
|
F386F6F52884663E001840AA /* SDL_utils_c.h in Headers */,
|
||||||
A769B12A23E259AE00872273 /* SDL_uikitwindow.h in Headers */,
|
A769B12A23E259AE00872273 /* SDL_uikitwindow.h in Headers */,
|
||||||
A769B12B23E259AE00872273 /* vulkan_vi.h in Headers */,
|
A769B12B23E259AE00872273 /* vulkan_vi.h in Headers */,
|
||||||
A769B12C23E259AE00872273 /* vulkan_mir.h in Headers */,
|
|
||||||
A769B12E23E259AE00872273 /* default_cursor.h in Headers */,
|
A769B12E23E259AE00872273 /* default_cursor.h in Headers */,
|
||||||
A769B12F23E259AE00872273 /* SDL_render_sw_c.h in Headers */,
|
A769B12F23E259AE00872273 /* SDL_render_sw_c.h in Headers */,
|
||||||
A769B13223E259AE00872273 /* SDL_nullvideo.h in Headers */,
|
A769B13223E259AE00872273 /* SDL_nullvideo.h in Headers */,
|
||||||
@@ -6387,13 +6359,11 @@
|
|||||||
A7D8B26723E2514200DCD162 /* vk_platform.h in Headers */,
|
A7D8B26723E2514200DCD162 /* vk_platform.h in Headers */,
|
||||||
A7D8B2AF23E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
A7D8B2AF23E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
||||||
A7D8B26123E2514200DCD162 /* vulkan.h in Headers */,
|
A7D8B26123E2514200DCD162 /* vulkan.h in Headers */,
|
||||||
A7D8B26D23E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
A7D8B2B523E2514200DCD162 /* vulkan_android.h in Headers */,
|
A7D8B2B523E2514200DCD162 /* vulkan_android.h in Headers */,
|
||||||
A7D8B2A923E2514200DCD162 /* vulkan_core.h in Headers */,
|
A7D8B2A923E2514200DCD162 /* vulkan_core.h in Headers */,
|
||||||
A7D8B27323E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
A7D8B27323E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
||||||
A7D8B2A323E2514200DCD162 /* vulkan_ios.h in Headers */,
|
A7D8B2A323E2514200DCD162 /* vulkan_ios.h in Headers */,
|
||||||
A7D8B28523E2514200DCD162 /* vulkan_macos.h in Headers */,
|
A7D8B28523E2514200DCD162 /* vulkan_macos.h in Headers */,
|
||||||
A7D8B29723E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
A7D8B25B23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25B23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
A7D8B27923E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
A7D8B27923E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
||||||
A7D8B27F23E2514200DCD162 /* vulkan_win32.h in Headers */,
|
A7D8B27F23E2514200DCD162 /* vulkan_win32.h in Headers */,
|
||||||
@@ -6629,13 +6599,11 @@
|
|||||||
A7D8B26823E2514200DCD162 /* vk_platform.h in Headers */,
|
A7D8B26823E2514200DCD162 /* vk_platform.h in Headers */,
|
||||||
A7D8B2B023E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
A7D8B2B023E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
||||||
A7D8B26223E2514200DCD162 /* vulkan.h in Headers */,
|
A7D8B26223E2514200DCD162 /* vulkan.h in Headers */,
|
||||||
A7D8B26E23E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
A7D8B2B623E2514200DCD162 /* vulkan_android.h in Headers */,
|
A7D8B2B623E2514200DCD162 /* vulkan_android.h in Headers */,
|
||||||
A7D8B2AA23E2514200DCD162 /* vulkan_core.h in Headers */,
|
A7D8B2AA23E2514200DCD162 /* vulkan_core.h in Headers */,
|
||||||
A7D8B27423E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
A7D8B27423E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
||||||
A7D8B2A423E2514200DCD162 /* vulkan_ios.h in Headers */,
|
A7D8B2A423E2514200DCD162 /* vulkan_ios.h in Headers */,
|
||||||
A7D8B28623E2514200DCD162 /* vulkan_macos.h in Headers */,
|
A7D8B28623E2514200DCD162 /* vulkan_macos.h in Headers */,
|
||||||
A7D8B29823E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
A7D8B25C23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25C23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
A7D8B27A23E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
A7D8B27A23E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
||||||
A7D8B28023E2514200DCD162 /* vulkan_win32.h in Headers */,
|
A7D8B28023E2514200DCD162 /* vulkan_win32.h in Headers */,
|
||||||
@@ -6704,7 +6672,6 @@
|
|||||||
A7D8AE9223E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
A7D8AE9223E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
5616CA5A252BB35D005D5928 /* SDL_sysurl.h in Headers */,
|
5616CA5A252BB35D005D5928 /* SDL_sysurl.h in Headers */,
|
||||||
A7D8ACE523E2514100DCD162 /* SDL_uikitvulkan.h in Headers */,
|
A7D8ACE523E2514100DCD162 /* SDL_uikitvulkan.h in Headers */,
|
||||||
A7D8B27023E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
A7D8B22823E2514200DCD162 /* gl2ext.h in Headers */,
|
A7D8B22823E2514200DCD162 /* gl2ext.h in Headers */,
|
||||||
A7D8BB7323E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
A7D8BB7323E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
A7D8AAE423E2514100DCD162 /* SDL_syshaptic_c.h in Headers */,
|
A7D8AAE423E2514100DCD162 /* SDL_syshaptic_c.h in Headers */,
|
||||||
@@ -6775,7 +6742,6 @@
|
|||||||
F386F6F42884663E001840AA /* SDL_utils_c.h in Headers */,
|
F386F6F42884663E001840AA /* SDL_utils_c.h in Headers */,
|
||||||
A7D8AC9D23E2514100DCD162 /* SDL_uikitwindow.h in Headers */,
|
A7D8AC9D23E2514100DCD162 /* SDL_uikitwindow.h in Headers */,
|
||||||
A7D8B25E23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25E23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
A7D8B29A23E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
A7D8BB4F23E2514500DCD162 /* default_cursor.h in Headers */,
|
A7D8BB4F23E2514500DCD162 /* default_cursor.h in Headers */,
|
||||||
A7D8B9FF23E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
A7D8B9FF23E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
||||||
A7D8ABFB23E2514100DCD162 /* SDL_nullvideo.h in Headers */,
|
A7D8ABFB23E2514100DCD162 /* SDL_nullvideo.h in Headers */,
|
||||||
@@ -7048,13 +7014,11 @@
|
|||||||
A7D8B26623E2514200DCD162 /* vk_platform.h in Headers */,
|
A7D8B26623E2514200DCD162 /* vk_platform.h in Headers */,
|
||||||
A7D8B2AE23E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
A7D8B2AE23E2514200DCD162 /* vk_sdk_platform.h in Headers */,
|
||||||
A7D8B26023E2514200DCD162 /* vulkan.h in Headers */,
|
A7D8B26023E2514200DCD162 /* vulkan.h in Headers */,
|
||||||
A7D8B26C23E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
A7D8B2B423E2514200DCD162 /* vulkan_android.h in Headers */,
|
A7D8B2B423E2514200DCD162 /* vulkan_android.h in Headers */,
|
||||||
A7D8B2A823E2514200DCD162 /* vulkan_core.h in Headers */,
|
A7D8B2A823E2514200DCD162 /* vulkan_core.h in Headers */,
|
||||||
A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
A7D8B27223E2514200DCD162 /* vulkan_fuchsia.h in Headers */,
|
||||||
A7D8B2A223E2514200DCD162 /* vulkan_ios.h in Headers */,
|
A7D8B2A223E2514200DCD162 /* vulkan_ios.h in Headers */,
|
||||||
A7D8B28423E2514200DCD162 /* vulkan_macos.h in Headers */,
|
A7D8B28423E2514200DCD162 /* vulkan_macos.h in Headers */,
|
||||||
A7D8B29623E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
A7D8B25A23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25A23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
A7D8B27823E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
A7D8B27823E2514200DCD162 /* vulkan_wayland.h in Headers */,
|
||||||
A7D8B27E23E2514200DCD162 /* vulkan_win32.h in Headers */,
|
A7D8B27E23E2514200DCD162 /* vulkan_win32.h in Headers */,
|
||||||
@@ -7118,7 +7082,6 @@
|
|||||||
A7D8BA7623E2514400DCD162 /* SDL_shaders_gl.h in Headers */,
|
A7D8BA7623E2514400DCD162 /* SDL_shaders_gl.h in Headers */,
|
||||||
A7D8B42B23E2514300DCD162 /* SDL_systhread_c.h in Headers */,
|
A7D8B42B23E2514300DCD162 /* SDL_systhread_c.h in Headers */,
|
||||||
A7D8AE9123E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
A7D8AE9123E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
A7D8B26F23E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
A7D8B22723E2514200DCD162 /* gl2ext.h in Headers */,
|
A7D8B22723E2514200DCD162 /* gl2ext.h in Headers */,
|
||||||
A7D8BB7223E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
A7D8BB7223E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
A7D8AAE323E2514100DCD162 /* SDL_syshaptic_c.h in Headers */,
|
A7D8AAE323E2514100DCD162 /* SDL_syshaptic_c.h in Headers */,
|
||||||
@@ -7189,7 +7152,6 @@
|
|||||||
A7D8B29F23E2514200DCD162 /* vulkan_xlib.h in Headers */,
|
A7D8B29F23E2514200DCD162 /* vulkan_xlib.h in Headers */,
|
||||||
A7D8B25D23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25D23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
F316AB882B5A02C3002EF551 /* yuv_rgb_common.h in Headers */,
|
F316AB882B5A02C3002EF551 /* yuv_rgb_common.h in Headers */,
|
||||||
A7D8B29923E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
A1BB8B6F27F6CF330057CFA8 /* SDL_list.h in Headers */,
|
A1BB8B6F27F6CF330057CFA8 /* SDL_list.h in Headers */,
|
||||||
A7D8BB4E23E2514500DCD162 /* default_cursor.h in Headers */,
|
A7D8BB4E23E2514500DCD162 /* default_cursor.h in Headers */,
|
||||||
A7D8B9FE23E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
A7D8B9FE23E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
||||||
@@ -7325,7 +7287,6 @@
|
|||||||
DB313FDB17554B71006C0E22 /* SDL_keycode.h in Headers */,
|
DB313FDB17554B71006C0E22 /* SDL_keycode.h in Headers */,
|
||||||
A7D8AE9323E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
A7D8AE9323E2514100DCD162 /* SDL_cocoakeyboard.h in Headers */,
|
||||||
A7D8ACE623E2514100DCD162 /* SDL_uikitvulkan.h in Headers */,
|
A7D8ACE623E2514100DCD162 /* SDL_uikitvulkan.h in Headers */,
|
||||||
A7D8B27123E2514200DCD162 /* vulkan.hpp in Headers */,
|
|
||||||
DB313FDC17554B71006C0E22 /* SDL_loadso.h in Headers */,
|
DB313FDC17554B71006C0E22 /* SDL_loadso.h in Headers */,
|
||||||
A7D8B22923E2514200DCD162 /* gl2ext.h in Headers */,
|
A7D8B22923E2514200DCD162 /* gl2ext.h in Headers */,
|
||||||
A7D8BB7423E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
A7D8BB7423E2514500DCD162 /* SDL_clipboardevents_c.h in Headers */,
|
||||||
@@ -7409,7 +7370,6 @@
|
|||||||
A7D8B2A123E2514200DCD162 /* vulkan_xlib.h in Headers */,
|
A7D8B2A123E2514200DCD162 /* vulkan_xlib.h in Headers */,
|
||||||
A7D8AC9E23E2514100DCD162 /* SDL_uikitwindow.h in Headers */,
|
A7D8AC9E23E2514100DCD162 /* SDL_uikitwindow.h in Headers */,
|
||||||
A7D8B25F23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
A7D8B25F23E2514200DCD162 /* vulkan_vi.h in Headers */,
|
||||||
A7D8B29B23E2514200DCD162 /* vulkan_mir.h in Headers */,
|
|
||||||
DB313FE817554B71006C0E22 /* SDL_quit.h in Headers */,
|
DB313FE817554B71006C0E22 /* SDL_quit.h in Headers */,
|
||||||
A7D8BB5023E2514500DCD162 /* default_cursor.h in Headers */,
|
A7D8BB5023E2514500DCD162 /* default_cursor.h in Headers */,
|
||||||
A7D8BA0023E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
A7D8BA0023E2514400DCD162 /* SDL_render_sw_c.h in Headers */,
|
||||||
@@ -9769,7 +9729,7 @@
|
|||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
DEPLOYMENT_POSTPROCESSING = YES;
|
DEPLOYMENT_POSTPROCESSING = YES;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 3001.0.0;
|
DYLIB_COMPATIBILITY_VERSION = 3001.0.0;
|
||||||
DYLIB_CURRENT_VERSION = 3001.0.0;
|
DYLIB_CURRENT_VERSION = 3001.5.0;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
GCC_ALTIVEC_EXTENSIONS = YES;
|
GCC_ALTIVEC_EXTENSIONS = YES;
|
||||||
@@ -9810,7 +9770,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||||
MARKETING_VERSION = 2.30.0;
|
MARKETING_VERSION = 2.30.5;
|
||||||
OTHER_LDFLAGS = "-liconv";
|
OTHER_LDFLAGS = "-liconv";
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
@@ -9854,7 +9814,7 @@
|
|||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 3001.0.0;
|
DYLIB_COMPATIBILITY_VERSION = 3001.0.0;
|
||||||
DYLIB_CURRENT_VERSION = 3001.0.0;
|
DYLIB_CURRENT_VERSION = 3001.5.0;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
@@ -9896,7 +9856,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_LINK_OBJC_RUNTIME = NO;
|
CLANG_LINK_OBJC_RUNTIME = NO;
|
||||||
MARKETING_VERSION = 2.30.0;
|
MARKETING_VERSION = 2.30.5;
|
||||||
OTHER_LDFLAGS = "-liconv";
|
OTHER_LDFLAGS = "-liconv";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@@ -10103,7 +10063,7 @@
|
|||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = "";
|
||||||
DYLIB_COMPATIBILITY_VERSION = 3001.0.0;
|
DYLIB_COMPATIBILITY_VERSION = 3001.0.0;
|
||||||
DYLIB_CURRENT_VERSION = 3001.0.0;
|
DYLIB_CURRENT_VERSION = 3001.5.0;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
@@ -10155,7 +10115,7 @@
|
|||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = "";
|
||||||
DYLIB_COMPATIBILITY_VERSION = 3001.0.0;
|
DYLIB_COMPATIBILITY_VERSION = 3001.0.0;
|
||||||
DYLIB_CURRENT_VERSION = 3001.0.0;
|
DYLIB_CURRENT_VERSION = 3001.5.0;
|
||||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
Title SDL 2.30.0
|
Title SDL 2.30.5
|
||||||
Version 1
|
Version 1
|
||||||
Description SDL Library for Mac OS X (http://www.libsdl.org)
|
Description SDL Library for Mac OS X (http://www.libsdl.org)
|
||||||
DefaultLocation /Library/Frameworks
|
DefaultLocation /Library/Frameworks
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
<application android:label="@string/app_name"
|
<application android:label="@string/app_name"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
|
android:theme="@style/AppTheme"
|
||||||
android:hardwareAccelerated="true" >
|
android:hardwareAccelerated="true" >
|
||||||
|
|
||||||
<!-- Example of setting SDL hints from AndroidManifest.xml:
|
<!-- Example of setting SDL hints from AndroidManifest.xml:
|
||||||
|
|||||||
@@ -277,6 +277,7 @@ public class HIDDeviceManager {
|
|||||||
0x044f, // Thrustmaster
|
0x044f, // Thrustmaster
|
||||||
0x045e, // Microsoft
|
0x045e, // Microsoft
|
||||||
0x0738, // Mad Catz
|
0x0738, // Mad Catz
|
||||||
|
0x0b05, // ASUS
|
||||||
0x0e6f, // PDP
|
0x0e6f, // PDP
|
||||||
0x0f0d, // Hori
|
0x0f0d, // Hori
|
||||||
0x10f5, // Turtle Beach
|
0x10f5, // Turtle Beach
|
||||||
@@ -590,7 +591,13 @@ public class HIDDeviceManager {
|
|||||||
} else {
|
} else {
|
||||||
flags = 0;
|
flags = 0;
|
||||||
}
|
}
|
||||||
|
if (Build.VERSION.SDK_INT >= 33 /* Android 14.0 (U) */) {
|
||||||
|
Intent intent = new Intent(HIDDeviceManager.ACTION_USB_PERMISSION);
|
||||||
|
intent.setPackage(mContext.getPackageName());
|
||||||
|
mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, intent, flags));
|
||||||
|
} else {
|
||||||
mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags));
|
mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags));
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.v(TAG, "Couldn't request permission for USB device " + usbDevice);
|
Log.v(TAG, "Couldn't request permission for USB device " + usbDevice);
|
||||||
HIDDeviceOpenResult(deviceID, false);
|
HIDDeviceOpenResult(deviceID, false);
|
||||||
|
|||||||
@@ -38,6 +38,10 @@ public class SDL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError, SecurityException, NullPointerException {
|
public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError, SecurityException, NullPointerException {
|
||||||
|
loadLibrary(libraryName, mContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void loadLibrary(String libraryName, Context context) throws UnsatisfiedLinkError, SecurityException, NullPointerException {
|
||||||
|
|
||||||
if (libraryName == null) {
|
if (libraryName == null) {
|
||||||
throw new NullPointerException("No library name provided.");
|
throw new NullPointerException("No library name provided.");
|
||||||
@@ -53,10 +57,10 @@ public class SDL {
|
|||||||
// To use ReLinker, just add it as a dependency. For more information, see
|
// To use ReLinker, just add it as a dependency. For more information, see
|
||||||
// https://github.com/KeepSafe/ReLinker for ReLinker's repository.
|
// https://github.com/KeepSafe/ReLinker for ReLinker's repository.
|
||||||
//
|
//
|
||||||
Class<?> relinkClass = mContext.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker");
|
Class<?> relinkClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker");
|
||||||
Class<?> relinkListenerClass = mContext.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker$LoadListener");
|
Class<?> relinkListenerClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker$LoadListener");
|
||||||
Class<?> contextClass = mContext.getClassLoader().loadClass("android.content.Context");
|
Class<?> contextClass = context.getClassLoader().loadClass("android.content.Context");
|
||||||
Class<?> stringClass = mContext.getClassLoader().loadClass("java.lang.String");
|
Class<?> stringClass = context.getClassLoader().loadClass("java.lang.String");
|
||||||
|
|
||||||
// Get a 'force' instance of the ReLinker, so we can ensure libraries are reinstalled if
|
// Get a 'force' instance of the ReLinker, so we can ensure libraries are reinstalled if
|
||||||
// they've changed during updates.
|
// they've changed during updates.
|
||||||
@@ -66,7 +70,7 @@ public class SDL {
|
|||||||
|
|
||||||
// Actually load the library!
|
// Actually load the library!
|
||||||
Method loadMethod = relinkInstanceClass.getDeclaredMethod("loadLibrary", contextClass, stringClass, stringClass, relinkListenerClass);
|
Method loadMethod = relinkInstanceClass.getDeclaredMethod("loadLibrary", contextClass, stringClass, stringClass, relinkListenerClass);
|
||||||
loadMethod.invoke(relinkInstance, mContext, libraryName, null, null);
|
loadMethod.invoke(relinkInstance, context, libraryName, null, null);
|
||||||
}
|
}
|
||||||
catch (final Throwable e) {
|
catch (final Throwable e) {
|
||||||
// Fall back
|
// Fall back
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||||||
private static final String TAG = "SDL";
|
private static final String TAG = "SDL";
|
||||||
private static final int SDL_MAJOR_VERSION = 2;
|
private static final int SDL_MAJOR_VERSION = 2;
|
||||||
private static final int SDL_MINOR_VERSION = 30;
|
private static final int SDL_MINOR_VERSION = 30;
|
||||||
private static final int SDL_MICRO_VERSION = 0;
|
private static final int SDL_MICRO_VERSION = 5;
|
||||||
/*
|
/*
|
||||||
// Display InputType.SOURCE/CLASS of events and devices
|
// Display InputType.SOURCE/CLASS of events and devices
|
||||||
//
|
//
|
||||||
@@ -281,7 +281,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||||||
// Load the .so
|
// Load the .so
|
||||||
public void loadLibraries() {
|
public void loadLibraries() {
|
||||||
for (String lib : getLibraries()) {
|
for (String lib : getLibraries()) {
|
||||||
SDL.loadLibrary(lib);
|
SDL.loadLibrary(lib, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -995,8 +995,8 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||||||
/* No valid hint, nothing is explicitly allowed */
|
/* No valid hint, nothing is explicitly allowed */
|
||||||
if (!is_portrait_allowed && !is_landscape_allowed) {
|
if (!is_portrait_allowed && !is_landscape_allowed) {
|
||||||
if (resizable) {
|
if (resizable) {
|
||||||
/* All orientations are allowed */
|
/* All orientations are allowed, respecting user orientation lock setting */
|
||||||
req = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR;
|
req = ActivityInfo.SCREEN_ORIENTATION_FULL_USER;
|
||||||
} else {
|
} else {
|
||||||
/* Fixed window and nothing specified. Get orientation from w/h of created window */
|
/* Fixed window and nothing specified. Get orientation from w/h of created window */
|
||||||
req = (w > h ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
|
req = (w > h ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
|
||||||
@@ -1005,8 +1005,8 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||||||
/* At least one orientation is allowed */
|
/* At least one orientation is allowed */
|
||||||
if (resizable) {
|
if (resizable) {
|
||||||
if (is_portrait_allowed && is_landscape_allowed) {
|
if (is_portrait_allowed && is_landscape_allowed) {
|
||||||
/* hint allows both landscape and portrait, promote to full sensor */
|
/* hint allows both landscape and portrait, promote to full user */
|
||||||
req = ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR;
|
req = ActivityInfo.SCREEN_ORIENTATION_FULL_USER;
|
||||||
} else {
|
} else {
|
||||||
/* Use the only one allowed "orientation" */
|
/* Use the only one allowed "orientation" */
|
||||||
req = (is_landscape_allowed ? orientation_landscape : orientation_portrait);
|
req = (is_landscape_allowed ? orientation_landscape : orientation_portrait);
|
||||||
|
|||||||
@@ -546,6 +546,7 @@ class SDLHapticHandler {
|
|||||||
if (haptic == null) {
|
if (haptic == null) {
|
||||||
InputDevice device = InputDevice.getDevice(deviceIds[i]);
|
InputDevice device = InputDevice.getDevice(deviceIds[i]);
|
||||||
Vibrator vib = device.getVibrator();
|
Vibrator vib = device.getVibrator();
|
||||||
|
if (vib != null) {
|
||||||
if (vib.hasVibrator()) {
|
if (vib.hasVibrator()) {
|
||||||
haptic = new SDLHaptic();
|
haptic = new SDLHaptic();
|
||||||
haptic.device_id = deviceIds[i];
|
haptic.device_id = deviceIds[i];
|
||||||
@@ -556,6 +557,7 @@ class SDLHapticHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Check VIBRATOR_SERVICE */
|
/* Check VIBRATOR_SERVICE */
|
||||||
Vibrator vib = (Vibrator) SDL.getContext().getSystemService(Context.VIBRATOR_SERVICE);
|
Vibrator vib = (Vibrator) SDL.getContext().getSystemService(Context.VIBRATOR_SERVICE);
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<!-- Base application theme. -->
|
<!-- Base application theme. -->
|
||||||
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
|
<style name="AppTheme" parent="android:Theme.NoTitleBar.Fullscreen">
|
||||||
<!-- Customize your theme here. -->
|
<!-- Customize your theme here. -->
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -873,7 +873,6 @@ enable_sse2
|
|||||||
enable_sse3
|
enable_sse3
|
||||||
enable_altivec
|
enable_altivec
|
||||||
enable_lsx
|
enable_lsx
|
||||||
enable_lasx
|
|
||||||
enable_oss
|
enable_oss
|
||||||
enable_alsa
|
enable_alsa
|
||||||
with_alsa_prefix
|
with_alsa_prefix
|
||||||
@@ -1675,7 +1674,6 @@ Optional Features:
|
|||||||
--enable-sse3 use SSE3 assembly routines [default=maybe]
|
--enable-sse3 use SSE3 assembly routines [default=maybe]
|
||||||
--enable-altivec use Altivec assembly routines [default=yes]
|
--enable-altivec use Altivec assembly routines [default=yes]
|
||||||
--enable-lsx use LSX assembly routines [default=yes]
|
--enable-lsx use LSX assembly routines [default=yes]
|
||||||
--enable-lasx use LASX assembly routines [default=yes]
|
|
||||||
--enable-oss support the OSS audio API [default=maybe]
|
--enable-oss support the OSS audio API [default=maybe]
|
||||||
--enable-alsa support the ALSA audio API [default=yes]
|
--enable-alsa support the ALSA audio API [default=yes]
|
||||||
--disable-alsatest Do not try to compile and run a test Alsa program
|
--disable-alsatest Do not try to compile and run a test Alsa program
|
||||||
@@ -3510,7 +3508,7 @@ orig_CFLAGS="$CFLAGS"
|
|||||||
# See docs/release_checklist.md
|
# See docs/release_checklist.md
|
||||||
SDL_MAJOR_VERSION=2
|
SDL_MAJOR_VERSION=2
|
||||||
SDL_MINOR_VERSION=30
|
SDL_MINOR_VERSION=30
|
||||||
SDL_MICRO_VERSION=0
|
SDL_MICRO_VERSION=5
|
||||||
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
|
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
|
||||||
|
|
||||||
SDL_BINARY_AGE=`expr $SDL_MINOR_VERSION \* 100 + $SDL_MICRO_VERSION`
|
SDL_BINARY_AGE=`expr $SDL_MINOR_VERSION \* 100 + $SDL_MICRO_VERSION`
|
||||||
@@ -18818,7 +18816,7 @@ fi
|
|||||||
|
|
||||||
enable_system_iconv_default=yes
|
enable_system_iconv_default=yes
|
||||||
case "$host" in
|
case "$host" in
|
||||||
*-*-cygwin*|*-*-mingw*)
|
*-*-cygwin*|*-*-mingw*|*-*-darwin*|*-ios-*)
|
||||||
enable_system_iconv_default=no
|
enable_system_iconv_default=no
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -19749,6 +19747,18 @@ if test "x$ac_cv_func_poll" = xyes
|
|||||||
then :
|
then :
|
||||||
printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h
|
printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
|
ac_fn_c_check_func "$LINENO" "memfd_create" "ac_cv_func_memfd_create"
|
||||||
|
if test "x$ac_cv_func_memfd_create" = xyes
|
||||||
|
then :
|
||||||
|
printf "%s\n" "#define HAVE_MEMFD_CREATE 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
|
ac_fn_c_check_func "$LINENO" "posix_fallocate" "ac_cv_func_posix_fallocate"
|
||||||
|
if test "x$ac_cv_func_posix_fallocate" = xyes
|
||||||
|
then :
|
||||||
|
printf "%s\n" "#define HAVE_POSIX_FALLOCATE 1" >>confdefs.h
|
||||||
|
|
||||||
fi
|
fi
|
||||||
ac_fn_c_check_func "$LINENO" "_Exit" "ac_cv_func__Exit"
|
ac_fn_c_check_func "$LINENO" "_Exit" "ac_cv_func__Exit"
|
||||||
if test "x$ac_cv_func__Exit" = xyes
|
if test "x$ac_cv_func__Exit" = xyes
|
||||||
@@ -21100,80 +21110,6 @@ printf "%s\n" "#define HAVE_LSXINTRIN_H 1" >>confdefs.h
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check whether --enable-lasx was given.
|
|
||||||
if test ${enable_lasx+y}
|
|
||||||
then :
|
|
||||||
enableval=$enable_lasx;
|
|
||||||
else $as_nop
|
|
||||||
enable_LASX=yes
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x$enable_LASX = xyes; then
|
|
||||||
save_CFLAGS="$CFLAGS"
|
|
||||||
have_gcc_lasx=no
|
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GCC -mlasx option" >&5
|
|
||||||
printf %s "checking for GCC -mlasx option... " >&6; }
|
|
||||||
lasx_CFLAGS="-mlasx"
|
|
||||||
CFLAGS="$save_CFLAGS $lasx_CFLAGS"
|
|
||||||
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
#ifndef __loongarch_asx
|
|
||||||
#error Assembler CPP flag not enabled
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
if ac_fn_c_try_compile "$LINENO"
|
|
||||||
then :
|
|
||||||
have_gcc_lasx=yes
|
|
||||||
fi
|
|
||||||
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_gcc_lasx" >&5
|
|
||||||
printf "%s\n" "$have_gcc_lasx" >&6; }
|
|
||||||
CFLAGS="$save_CFLAGS"
|
|
||||||
|
|
||||||
if test x$have_gcc_lasx = xyes; then
|
|
||||||
EXTRA_CFLAGS="$EXTRA_CFLAGS $lasx_CFLAGS"
|
|
||||||
SUMMARY_math="${SUMMARY_math} lasx"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lasxintrin.h" >&5
|
|
||||||
printf %s "checking for lasxintrin.h... " >&6; }
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <lasxintrin.h>
|
|
||||||
int
|
|
||||||
main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
if ac_fn_c_try_compile "$LINENO"
|
|
||||||
then :
|
|
||||||
have_lasxintrin_h_hdr=yes
|
|
||||||
else $as_nop
|
|
||||||
have_lasxintrin_h_hdr=no
|
|
||||||
fi
|
|
||||||
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_lasxintrin_h_hdr" >&5
|
|
||||||
printf "%s\n" "$have_lasxintrin_h_hdr" >&6; }
|
|
||||||
if test x$have_lasxintrin_h_hdr = xyes; then
|
|
||||||
|
|
||||||
printf "%s\n" "#define HAVE_LASXINTRIN_H 1" >>confdefs.h
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
CheckOSS()
|
CheckOSS()
|
||||||
{
|
{
|
||||||
# Check whether --enable-oss was given.
|
# Check whether --enable-oss was given.
|
||||||
@@ -27577,18 +27513,14 @@ then :
|
|||||||
have_d3d11=yes
|
have_d3d11=yes
|
||||||
fi
|
fi
|
||||||
|
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for d3d12 Windows SDK version" >&5
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compatible d3d12 headers" >&5
|
||||||
printf %s "checking for d3d12 Windows SDK version... " >&6; }
|
printf %s "checking for compatible d3d12 headers... " >&6; }
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
/* end confdefs.h. */
|
/* end confdefs.h. */
|
||||||
|
|
||||||
#include <winsdkver.h>
|
|
||||||
#include <sdkddkver.h>
|
|
||||||
#include <d3d12.h>
|
#include <d3d12.h>
|
||||||
|
#include <d3d12sdklayers.h>
|
||||||
ID3D12Device1 *device;
|
ID3D12Device1 *device;
|
||||||
#if WDK_NTDDI_VERSION <= 0x0A000008
|
|
||||||
asdf
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main (void)
|
main (void)
|
||||||
@@ -27607,6 +27539,7 @@ fi
|
|||||||
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_d3d12" >&5
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_d3d12" >&5
|
||||||
printf "%s\n" "$have_d3d12" >&6; }
|
printf "%s\n" "$have_d3d12" >&6; }
|
||||||
|
|
||||||
ac_fn_c_check_header_compile "$LINENO" "ddraw.h" "ac_cv_header_ddraw_h" "$ac_includes_default"
|
ac_fn_c_check_header_compile "$LINENO" "ddraw.h" "ac_cv_header_ddraw_h" "$ac_includes_default"
|
||||||
if test "x$ac_cv_header_ddraw_h" = xyes
|
if test "x$ac_cv_header_ddraw_h" = xyes
|
||||||
then :
|
then :
|
||||||
|
|||||||
+6
-41
@@ -13,7 +13,7 @@ dnl Set various version strings - taken gratefully from the GTk sources
|
|||||||
# See docs/release_checklist.md
|
# See docs/release_checklist.md
|
||||||
SDL_MAJOR_VERSION=2
|
SDL_MAJOR_VERSION=2
|
||||||
SDL_MINOR_VERSION=30
|
SDL_MINOR_VERSION=30
|
||||||
SDL_MICRO_VERSION=0
|
SDL_MICRO_VERSION=5
|
||||||
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
|
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
|
||||||
|
|
||||||
SDL_BINARY_AGE=`expr $SDL_MINOR_VERSION \* 100 + $SDL_MICRO_VERSION`
|
SDL_BINARY_AGE=`expr $SDL_MINOR_VERSION \* 100 + $SDL_MICRO_VERSION`
|
||||||
@@ -322,7 +322,7 @@ AC_ARG_ENABLE(libc,
|
|||||||
dnl See whether we are allowed to use system iconv
|
dnl See whether we are allowed to use system iconv
|
||||||
enable_system_iconv_default=yes
|
enable_system_iconv_default=yes
|
||||||
case "$host" in
|
case "$host" in
|
||||||
*-*-cygwin*|*-*-mingw*)
|
*-*-cygwin*|*-*-mingw*|*-*-darwin*|*-ios-*)
|
||||||
enable_system_iconv_default=no
|
enable_system_iconv_default=no
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -359,7 +359,7 @@ dnl Checks for library functions.
|
|||||||
AC_DEFINE(HAVE_MPROTECT, 1, [ ])
|
AC_DEFINE(HAVE_MPROTECT, 1, [ ])
|
||||||
],[]),
|
],[]),
|
||||||
)
|
)
|
||||||
AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv bsearch qsort abs bcopy memset memcmp 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 strtod strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp strcasestr 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 memcmp 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 strtod strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp strcasestr vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname getauxval elf_aux_info poll memfd_create posix_fallocate _Exit)
|
||||||
|
|
||||||
AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
|
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)
|
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)
|
||||||
@@ -938,38 +938,6 @@ fi
|
|||||||
AC_DEFINE(HAVE_LSXINTRIN_H, 1, [ ])
|
AC_DEFINE(HAVE_LSXINTRIN_H, 1, [ ])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_ARG_ENABLE(lasx,
|
|
||||||
[AS_HELP_STRING([--enable-lasx], [use LASX assembly routines [default=yes]])],
|
|
||||||
, enable_LASX=yes)
|
|
||||||
if test x$enable_LASX = xyes; then
|
|
||||||
save_CFLAGS="$CFLAGS"
|
|
||||||
have_gcc_lasx=no
|
|
||||||
AC_MSG_CHECKING(for GCC -mlasx option)
|
|
||||||
lasx_CFLAGS="-mlasx"
|
|
||||||
CFLAGS="$save_CFLAGS $lasx_CFLAGS"
|
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
#ifndef __loongarch_asx
|
|
||||||
#error Assembler CPP flag not enabled
|
|
||||||
#endif
|
|
||||||
]], [])], [have_gcc_lasx=yes], [])
|
|
||||||
AC_MSG_RESULT($have_gcc_lasx)
|
|
||||||
CFLAGS="$save_CFLAGS"
|
|
||||||
|
|
||||||
if test x$have_gcc_lasx = xyes; then
|
|
||||||
EXTRA_CFLAGS="$EXTRA_CFLAGS $lasx_CFLAGS"
|
|
||||||
SUMMARY_math="${SUMMARY_math} lasx"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for lasxintrin.h)
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <lasxintrin.h>]])],
|
|
||||||
[have_lasxintrin_h_hdr=yes],[have_lasxintrin_h_hdr=no])
|
|
||||||
AC_MSG_RESULT($have_lasxintrin_h_hdr)
|
|
||||||
if test x$have_lasxintrin_h_hdr = xyes; then
|
|
||||||
AC_DEFINE(HAVE_LASXINTRIN_H, 1, [ ])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl See if the OSS audio interface is supported
|
dnl See if the OSS audio interface is supported
|
||||||
CheckOSS()
|
CheckOSS()
|
||||||
{
|
{
|
||||||
@@ -3375,17 +3343,14 @@ CheckDIRECTX()
|
|||||||
if test x$enable_directx = xyes; then
|
if test x$enable_directx = xyes; then
|
||||||
AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
|
AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
|
||||||
AC_CHECK_HEADER(d3d11_1.h, have_d3d11=yes)
|
AC_CHECK_HEADER(d3d11_1.h, have_d3d11=yes)
|
||||||
AC_MSG_CHECKING(for d3d12 Windows SDK version)
|
AC_MSG_CHECKING(for compatible d3d12 headers)
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||||
#include <winsdkver.h>
|
|
||||||
#include <sdkddkver.h>
|
|
||||||
#include <d3d12.h>
|
#include <d3d12.h>
|
||||||
|
#include <d3d12sdklayers.h>
|
||||||
ID3D12Device1 *device;
|
ID3D12Device1 *device;
|
||||||
#if WDK_NTDDI_VERSION <= 0x0A000008
|
|
||||||
asdf
|
|
||||||
#endif
|
|
||||||
]])], [have_d3d12=yes],[have_d3d12=no])
|
]])], [have_d3d12=yes],[have_d3d12=no])
|
||||||
AC_MSG_RESULT($have_d3d12)
|
AC_MSG_RESULT($have_d3d12)
|
||||||
|
|
||||||
AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
|
AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
|
||||||
AC_CHECK_HEADER(dsound.h, have_dsound=yes)
|
AC_CHECK_HEADER(dsound.h, have_dsound=yes)
|
||||||
AC_CHECK_HEADER(dinput.h, have_dinput=yes)
|
AC_CHECK_HEADER(dinput.h, have_dinput=yes)
|
||||||
|
|||||||
@@ -190,6 +190,8 @@
|
|||||||
#cmakedefine HAVE_FOPEN64 1
|
#cmakedefine HAVE_FOPEN64 1
|
||||||
#cmakedefine HAVE_FSEEKO 1
|
#cmakedefine HAVE_FSEEKO 1
|
||||||
#cmakedefine HAVE_FSEEKO64 1
|
#cmakedefine HAVE_FSEEKO64 1
|
||||||
|
#cmakedefine HAVE_MEMFD_CREATE 1
|
||||||
|
#cmakedefine HAVE_POSIX_FALLOCATE 1
|
||||||
#cmakedefine HAVE_SIGACTION 1
|
#cmakedefine HAVE_SIGACTION 1
|
||||||
#cmakedefine HAVE_SA_SIGACTION 1
|
#cmakedefine HAVE_SA_SIGACTION 1
|
||||||
#cmakedefine HAVE_SETJMP 1
|
#cmakedefine HAVE_SETJMP 1
|
||||||
|
|||||||
@@ -211,6 +211,8 @@
|
|||||||
#undef HAVE_GETAUXVAL
|
#undef HAVE_GETAUXVAL
|
||||||
#undef HAVE_ELF_AUX_INFO
|
#undef HAVE_ELF_AUX_INFO
|
||||||
#undef HAVE_POLL
|
#undef HAVE_POLL
|
||||||
|
#undef HAVE_MEMFD_CREATE
|
||||||
|
#undef HAVE_POSIX_FALLOCATE
|
||||||
#undef HAVE__EXIT
|
#undef HAVE__EXIT
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -114,9 +114,6 @@
|
|||||||
#define HAVE_MEMCPY 1
|
#define HAVE_MEMCPY 1
|
||||||
#define HAVE_MEMMOVE 1
|
#define HAVE_MEMMOVE 1
|
||||||
#define HAVE_MEMCMP 1
|
#define HAVE_MEMCMP 1
|
||||||
#define HAVE_WCSLEN 1
|
|
||||||
#define HAVE_WCSLCPY 1
|
|
||||||
#define HAVE_WCSLCAT 1
|
|
||||||
#define HAVE_WCSCMP 1
|
#define HAVE_WCSCMP 1
|
||||||
#define HAVE__WCSICMP 1
|
#define HAVE__WCSICMP 1
|
||||||
#define HAVE__WCSNICMP 1
|
#define HAVE__WCSNICMP 1
|
||||||
|
|||||||
@@ -99,9 +99,11 @@ typedef unsigned int uintptr_t;
|
|||||||
#define HAVE_D3D11_H 1
|
#define HAVE_D3D11_H 1
|
||||||
#define HAVE_ROAPI_H 1
|
#define HAVE_ROAPI_H 1
|
||||||
#endif
|
#endif
|
||||||
#if defined(WDK_NTDDI_VERSION) && WDK_NTDDI_VERSION > 0x0A000008 /* 10.0.19041.0 */
|
#if defined(__has_include)
|
||||||
|
#if __has_include(<d3d12.h>) && __has_include(<d3d12sdklayers.h>)
|
||||||
#define HAVE_D3D12_H 1
|
#define HAVE_D3D12_H 1
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0603 /* Windows 8.1 SDK */
|
#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0603 /* Windows 8.1 SDK */
|
||||||
#define HAVE_SHELLSCALINGAPI_H 1
|
#define HAVE_SHELLSCALINGAPI_H 1
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+13
-1
@@ -1424,7 +1424,19 @@ extern "C" {
|
|||||||
#define SDL_HINT_MOUSE_RELATIVE_WARP_MOTION "SDL_MOUSE_RELATIVE_WARP_MOTION"
|
#define SDL_HINT_MOUSE_RELATIVE_WARP_MOTION "SDL_MOUSE_RELATIVE_WARP_MOTION"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief A variable controlling whether mouse events should generate synthetic touch events
|
* \brief A variable controlling whether the hardware cursor stays visible when relative mode is active.
|
||||||
|
*
|
||||||
|
* This variable can be set to the following values:
|
||||||
|
* "0" - The cursor will be hidden while relative mode is active (default)
|
||||||
|
* "1" - The cursor will remain visible while relative mode is active
|
||||||
|
*
|
||||||
|
* Note that for systems without raw hardware inputs, relative mode is implemented using warping, so the hardware cursor will visibly warp between frames if this is enabled on those systems.
|
||||||
|
*/
|
||||||
|
#define SDL_HINT_MOUSE_RELATIVE_CURSOR_VISIBLE "SDL_MOUSE_RELATIVE_CURSOR_VISIBLE"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A variable controlling whether mouse events should generate synthetic touch
|
||||||
|
* events
|
||||||
*
|
*
|
||||||
* This variable can be set to the following values:
|
* This variable can be set to the following values:
|
||||||
* "0" - Mouse events will not generate touch events (default for desktop platforms)
|
* "0" - Mouse events will not generate touch events (default for desktop platforms)
|
||||||
|
|||||||
+10
-5
@@ -790,12 +790,17 @@ extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void);
|
|||||||
* **WARNING**: Calling this function may delete all events currently in SDL's
|
* **WARNING**: Calling this function may delete all events currently in SDL's
|
||||||
* event queue.
|
* event queue.
|
||||||
*
|
*
|
||||||
* \param state can be one of `SDL_QUERY`, `SDL_IGNORE`, or `SDL_ENABLE`
|
* While `param` is meant to be one of `SDL_QUERY`, `SDL_IGNORE`, or
|
||||||
* \returns 1 if enabled, 0 if disabled, or a negative error code on failure;
|
* `SDL_ENABLE`, this function accepts any value, with any non-zero value that
|
||||||
* call SDL_GetError() for more information.
|
* isn't `SDL_QUERY` being treated as `SDL_ENABLE`.
|
||||||
*
|
*
|
||||||
* If `state` is `SDL_QUERY` then the current state is returned,
|
* If SDL was built with events disabled (extremely uncommon!), this will
|
||||||
* otherwise the new processing state is returned.
|
* do nothing and always return `SDL_IGNORE`.
|
||||||
|
*
|
||||||
|
* \param state can be one of `SDL_QUERY`, `SDL_IGNORE`, or `SDL_ENABLE`
|
||||||
|
* \returns If `state` is `SDL_QUERY` then the current state is returned,
|
||||||
|
* otherwise `state` is returned (even if it was not one of the
|
||||||
|
* allowed values).
|
||||||
*
|
*
|
||||||
* \since This function is available since SDL 2.0.0.
|
* \since This function is available since SDL 2.0.0.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -73,7 +73,13 @@
|
|||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
/* lets us know what version of Mac OS X we're compiling on */
|
/* lets us know what version of Mac OS X we're compiling on */
|
||||||
#include <AvailabilityMacros.h>
|
#include <AvailabilityMacros.h>
|
||||||
|
#ifndef __has_extension /* Older compilers don't support this */
|
||||||
|
#define __has_extension(x) 0
|
||||||
#include <TargetConditionals.h>
|
#include <TargetConditionals.h>
|
||||||
|
#undef __has_extension
|
||||||
|
#else
|
||||||
|
#include <TargetConditionals.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Fix building with older SDKs that don't define these
|
/* Fix building with older SDKs that don't define these
|
||||||
See this for more information:
|
See this for more information:
|
||||||
@@ -199,8 +205,10 @@
|
|||||||
#undef __GDK__
|
#undef __GDK__
|
||||||
#define __GDK__ 1
|
#define __GDK__ 1
|
||||||
#endif
|
#endif
|
||||||
#if defined(__PSP__)
|
#if defined(__PSP__) || defined(__psp__)
|
||||||
|
#ifdef __PSP__
|
||||||
#undef __PSP__
|
#undef __PSP__
|
||||||
|
#endif
|
||||||
#define __PSP__ 1
|
#define __PSP__ 1
|
||||||
#endif
|
#endif
|
||||||
#if defined(PS2)
|
#if defined(PS2)
|
||||||
|
|||||||
+13
-13
@@ -107,7 +107,7 @@
|
|||||||
# elif defined(__MRC__)
|
# elif defined(__MRC__)
|
||||||
void *alloca(unsigned);
|
void *alloca(unsigned);
|
||||||
# else
|
# else
|
||||||
char *alloca();
|
void *alloca(size_t);
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -253,10 +253,10 @@ typedef uint64_t Uint64;
|
|||||||
* <stdint.h> should define these but this is not true all platforms.
|
* <stdint.h> should define these but this is not true all platforms.
|
||||||
* (for example win32) */
|
* (for example win32) */
|
||||||
#ifndef SDL_PRIs64
|
#ifndef SDL_PRIs64
|
||||||
#ifdef PRIs64
|
#if defined(__WIN32__) || defined(__GDK__)
|
||||||
#define SDL_PRIs64 PRIs64
|
|
||||||
#elif defined(__WIN32__) || defined(__GDK__)
|
|
||||||
#define SDL_PRIs64 "I64d"
|
#define SDL_PRIs64 "I64d"
|
||||||
|
#elif defined(PRIs64)
|
||||||
|
#define SDL_PRIs64 PRIs64
|
||||||
#elif defined(__LP64__) && !defined(__APPLE__)
|
#elif defined(__LP64__) && !defined(__APPLE__)
|
||||||
#define SDL_PRIs64 "ld"
|
#define SDL_PRIs64 "ld"
|
||||||
#else
|
#else
|
||||||
@@ -264,10 +264,10 @@ typedef uint64_t Uint64;
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef SDL_PRIu64
|
#ifndef SDL_PRIu64
|
||||||
#ifdef PRIu64
|
#if defined(__WIN32__) || defined(__GDK__)
|
||||||
#define SDL_PRIu64 PRIu64
|
|
||||||
#elif defined(__WIN32__) || defined(__GDK__)
|
|
||||||
#define SDL_PRIu64 "I64u"
|
#define SDL_PRIu64 "I64u"
|
||||||
|
#elif defined(PRIu64)
|
||||||
|
#define SDL_PRIu64 PRIu64
|
||||||
#elif defined(__LP64__) && !defined(__APPLE__)
|
#elif defined(__LP64__) && !defined(__APPLE__)
|
||||||
#define SDL_PRIu64 "lu"
|
#define SDL_PRIu64 "lu"
|
||||||
#else
|
#else
|
||||||
@@ -275,10 +275,10 @@ typedef uint64_t Uint64;
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef SDL_PRIx64
|
#ifndef SDL_PRIx64
|
||||||
#ifdef PRIx64
|
#if defined(__WIN32__) || defined(__GDK__)
|
||||||
#define SDL_PRIx64 PRIx64
|
|
||||||
#elif defined(__WIN32__) || defined(__GDK__)
|
|
||||||
#define SDL_PRIx64 "I64x"
|
#define SDL_PRIx64 "I64x"
|
||||||
|
#elif defined(PRIx64)
|
||||||
|
#define SDL_PRIx64 PRIx64
|
||||||
#elif defined(__LP64__) && !defined(__APPLE__)
|
#elif defined(__LP64__) && !defined(__APPLE__)
|
||||||
#define SDL_PRIx64 "lx"
|
#define SDL_PRIx64 "lx"
|
||||||
#else
|
#else
|
||||||
@@ -286,10 +286,10 @@ typedef uint64_t Uint64;
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef SDL_PRIX64
|
#ifndef SDL_PRIX64
|
||||||
#ifdef PRIX64
|
#if defined(__WIN32__) || defined(__GDK__)
|
||||||
#define SDL_PRIX64 PRIX64
|
|
||||||
#elif defined(__WIN32__) || defined(__GDK__)
|
|
||||||
#define SDL_PRIX64 "I64X"
|
#define SDL_PRIX64 "I64X"
|
||||||
|
#elif defined(PRIX64)
|
||||||
|
#define SDL_PRIX64 PRIX64
|
||||||
#elif defined(__LP64__) && !defined(__APPLE__)
|
#elif defined(__LP64__) && !defined(__APPLE__)
|
||||||
#define SDL_PRIX64 "lX"
|
#define SDL_PRIX64 "lX"
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ typedef struct SDL_version
|
|||||||
*/
|
*/
|
||||||
#define SDL_MAJOR_VERSION 2
|
#define SDL_MAJOR_VERSION 2
|
||||||
#define SDL_MINOR_VERSION 30
|
#define SDL_MINOR_VERSION 30
|
||||||
#define SDL_PATCHLEVEL 0
|
#define SDL_PATCHLEVEL 5
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Macro to determine SDL version program was compiled against.
|
* Macro to determine SDL version program was compiled against.
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ const char *SDL_GetHint(const char *name)
|
|||||||
const char *env;
|
const char *env;
|
||||||
SDL_Hint *hint;
|
SDL_Hint *hint;
|
||||||
|
|
||||||
|
if (!name) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
env = SDL_getenv(name);
|
env = SDL_getenv(name);
|
||||||
for (hint = SDL_hints; hint; hint = hint->next) {
|
for (hint = SDL_hints; hint; hint = hint->next) {
|
||||||
if (SDL_strcmp(name, hint->name) == 0) {
|
if (SDL_strcmp(name, hint->name) == 0) {
|
||||||
|
|||||||
@@ -125,6 +125,86 @@
|
|||||||
#define SDL_HAVE_YUV !SDL_LEAN_AND_MEAN
|
#define SDL_HAVE_YUV !SDL_LEAN_AND_MEAN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef SDL_RENDER_DISABLED
|
||||||
|
/* define the not defined ones as 0 */
|
||||||
|
#ifndef SDL_VIDEO_RENDER_D3D
|
||||||
|
#define SDL_VIDEO_RENDER_D3D 0
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_VIDEO_RENDER_D3D11
|
||||||
|
#define SDL_VIDEO_RENDER_D3D11 0
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_VIDEO_RENDER_D3D12
|
||||||
|
#define SDL_VIDEO_RENDER_D3D12 0
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_VIDEO_RENDER_METAL
|
||||||
|
#define SDL_VIDEO_RENDER_METAL 0
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_VIDEO_RENDER_OGL
|
||||||
|
#define SDL_VIDEO_RENDER_OGL 0
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_VIDEO_RENDER_OGL_ES
|
||||||
|
#define SDL_VIDEO_RENDER_OGL_ES 0
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_VIDEO_RENDER_OGL_ES2
|
||||||
|
#define SDL_VIDEO_RENDER_OGL_ES2 0
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_VIDEO_RENDER_DIRECTFB
|
||||||
|
#define SDL_VIDEO_RENDER_DIRECTFB 0
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_VIDEO_RENDER_PS2
|
||||||
|
#define SDL_VIDEO_RENDER_PS2 0
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_VIDEO_RENDER_PSP
|
||||||
|
#define SDL_VIDEO_RENDER_PSP 0
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_VIDEO_RENDER_VITA_GXM
|
||||||
|
#define SDL_VIDEO_RENDER_VITA_GXM 0
|
||||||
|
#endif
|
||||||
|
#else /* define all as 0 */
|
||||||
|
#undef SDL_VIDEO_RENDER_SW
|
||||||
|
#define SDL_VIDEO_RENDER_SW 0
|
||||||
|
#undef SDL_VIDEO_RENDER_D3D
|
||||||
|
#define SDL_VIDEO_RENDER_D3D 0
|
||||||
|
#undef SDL_VIDEO_RENDER_D3D11
|
||||||
|
#define SDL_VIDEO_RENDER_D3D11 0
|
||||||
|
#undef SDL_VIDEO_RENDER_D3D12
|
||||||
|
#define SDL_VIDEO_RENDER_D3D12 0
|
||||||
|
#undef SDL_VIDEO_RENDER_METAL
|
||||||
|
#define SDL_VIDEO_RENDER_METAL 0
|
||||||
|
#undef SDL_VIDEO_RENDER_OGL
|
||||||
|
#define SDL_VIDEO_RENDER_OGL 0
|
||||||
|
#undef SDL_VIDEO_RENDER_OGL_ES
|
||||||
|
#define SDL_VIDEO_RENDER_OGL_ES 0
|
||||||
|
#undef SDL_VIDEO_RENDER_OGL_ES2
|
||||||
|
#define SDL_VIDEO_RENDER_OGL_ES2 0
|
||||||
|
#undef SDL_VIDEO_RENDER_DIRECTFB
|
||||||
|
#define SDL_VIDEO_RENDER_DIRECTFB 0
|
||||||
|
#undef SDL_VIDEO_RENDER_PS2
|
||||||
|
#define SDL_VIDEO_RENDER_PS2 0
|
||||||
|
#undef SDL_VIDEO_RENDER_PSP
|
||||||
|
#define SDL_VIDEO_RENDER_PSP 0
|
||||||
|
#undef SDL_VIDEO_RENDER_VITA_GXM
|
||||||
|
#define SDL_VIDEO_RENDER_VITA_GXM 0
|
||||||
|
#endif /* SDL_RENDER_DISABLED */
|
||||||
|
|
||||||
|
#define SDL_HAS_RENDER_DRIVER \
|
||||||
|
(SDL_VIDEO_RENDER_SW | \
|
||||||
|
SDL_VIDEO_RENDER_D3D | \
|
||||||
|
SDL_VIDEO_RENDER_D3D11 | \
|
||||||
|
SDL_VIDEO_RENDER_D3D12 | \
|
||||||
|
SDL_VIDEO_RENDER_METAL | \
|
||||||
|
SDL_VIDEO_RENDER_OGL | \
|
||||||
|
SDL_VIDEO_RENDER_OGL_ES | \
|
||||||
|
SDL_VIDEO_RENDER_OGL_ES2 | \
|
||||||
|
SDL_VIDEO_RENDER_DIRECTFB | \
|
||||||
|
SDL_VIDEO_RENDER_PS2 | \
|
||||||
|
SDL_VIDEO_RENDER_PSP | \
|
||||||
|
SDL_VIDEO_RENDER_VITA_GXM)
|
||||||
|
|
||||||
|
#if !defined(SDL_RENDER_DISABLED) && !SDL_HAS_RENDER_DRIVER
|
||||||
|
#error SDL_RENDER enabled without any backend drivers.
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "SDL_assert.h"
|
#include "SDL_assert.h"
|
||||||
#include "SDL_log.h"
|
#include "SDL_log.h"
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ static void SDLCALL SDL_Convert_U8_to_F32_Scalar(SDL_AudioCVT *cvt, SDL_AudioFor
|
|||||||
|
|
||||||
static void SDLCALL SDL_Convert_S16_to_F32_Scalar(SDL_AudioCVT *cvt, SDL_AudioFormat format)
|
static void SDLCALL SDL_Convert_S16_to_F32_Scalar(SDL_AudioCVT *cvt, SDL_AudioFormat format)
|
||||||
{
|
{
|
||||||
const int num_samples = cvt->len_cvt;
|
const int num_samples = cvt->len_cvt / sizeof(Sint16);
|
||||||
const Sint16 *src = (const Sint16 *)cvt->buf;
|
const Sint16 *src = (const Sint16 *)cvt->buf;
|
||||||
float *dst = (float *)cvt->buf;
|
float *dst = (float *)cvt->buf;
|
||||||
int i;
|
int i;
|
||||||
@@ -350,7 +350,7 @@ static void SDLCALL SDL_Convert_S8_to_F32_SSE2(SDL_AudioCVT *cvt, SDL_AudioForma
|
|||||||
i -= 16;
|
i -= 16;
|
||||||
|
|
||||||
{
|
{
|
||||||
const __m128i bytes = _mm_xor_si128(_mm_loadu_si128((const __m128i *)&src[i-16]), flipper);
|
const __m128i bytes = _mm_xor_si128(_mm_loadu_si128((const __m128i *)&src[i]), flipper);
|
||||||
|
|
||||||
const __m128i shorts1 = _mm_unpacklo_epi8(bytes, zero);
|
const __m128i shorts1 = _mm_unpacklo_epi8(bytes, zero);
|
||||||
const __m128i shorts2 = _mm_unpackhi_epi8(bytes, zero);
|
const __m128i shorts2 = _mm_unpackhi_epi8(bytes, zero);
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ extern "C" {
|
|||||||
static XTaskQueueHandle GDK_GlobalTaskQueue;
|
static XTaskQueueHandle GDK_GlobalTaskQueue;
|
||||||
|
|
||||||
PAPPSTATE_REGISTRATION hPLM = {};
|
PAPPSTATE_REGISTRATION hPLM = {};
|
||||||
|
PAPPCONSTRAIN_REGISTRATION hCPLM = {};
|
||||||
HANDLE plmSuspendComplete = nullptr;
|
HANDLE plmSuspendComplete = nullptr;
|
||||||
|
|
||||||
extern "C" DECLSPEC int
|
extern "C" DECLSPEC int
|
||||||
@@ -177,6 +178,23 @@ SDL_GDKRunApp(SDL_main_func mainFunction, void *reserved)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Register constrain/unconstrain handling */
|
||||||
|
auto raccn = [](BOOLEAN constrained, PVOID context) {
|
||||||
|
SDL_LogDebug(SDL_LOG_CATEGORY_APPLICATION, "[GDK] in RegisterAppConstrainedChangeNotification handler");
|
||||||
|
SDL_VideoDevice *_this = SDL_GetVideoDevice();
|
||||||
|
if (_this) {
|
||||||
|
if (constrained) {
|
||||||
|
SDL_SetKeyboardFocus(NULL);
|
||||||
|
} else {
|
||||||
|
SDL_SetKeyboardFocus(_this->windows);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if (RegisterAppConstrainedChangeNotification(raccn, NULL, &hCPLM)) {
|
||||||
|
SDL_SetError("[GDK] Unable to call RegisterAppConstrainedChangeNotification");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Run the application main() code */
|
/* Run the application main() code */
|
||||||
result = mainFunction(argc, argv);
|
result = mainFunction(argc, argv);
|
||||||
|
|
||||||
@@ -184,6 +202,9 @@ SDL_GDKRunApp(SDL_main_func mainFunction, void *reserved)
|
|||||||
UnregisterAppStateChangeNotification(hPLM);
|
UnregisterAppStateChangeNotification(hPLM);
|
||||||
CloseHandle(plmSuspendComplete);
|
CloseHandle(plmSuspendComplete);
|
||||||
|
|
||||||
|
/* Unregister constrain/unconstrain handling */
|
||||||
|
UnregisterAppConstrainedChangeNotification(hCPLM);
|
||||||
|
|
||||||
/* !!! FIXME: This follows the docs exactly, but for some reason still leaks handles on exit? */
|
/* !!! FIXME: This follows the docs exactly, but for some reason still leaks handles on exit? */
|
||||||
/* Terminate the task queue and dispatch any pending tasks */
|
/* Terminate the task queue and dispatch any pending tasks */
|
||||||
XTaskQueueTerminate(taskQueue, false, nullptr, nullptr);
|
XTaskQueueTerminate(taskQueue, false, nullptr, nullptr);
|
||||||
|
|||||||
@@ -485,7 +485,6 @@ void SDL_Fcitx_PumpEvents(void)
|
|||||||
|
|
||||||
while (dbus->connection_dispatch(conn) == DBUS_DISPATCH_DATA_REMAINS) {
|
while (dbus->connection_dispatch(conn) == DBUS_DISPATCH_DATA_REMAINS) {
|
||||||
/* Do nothing, actual work happens in DBus_MessageFilter */
|
/* Do nothing, actual work happens in DBus_MessageFilter */
|
||||||
usleep(10);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+24
-25
@@ -31,6 +31,7 @@
|
|||||||
#ifdef SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
|
|
||||||
#include <linux/input.h>
|
#include <linux/input.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#include "SDL_assert.h"
|
#include "SDL_assert.h"
|
||||||
#include "SDL_evdev_capabilities.h"
|
#include "SDL_evdev_capabilities.h"
|
||||||
@@ -227,34 +228,35 @@ void SDL_UDEV_Scan(void)
|
|||||||
|
|
||||||
SDL_bool SDL_UDEV_GetProductInfo(const char *device_path, Uint16 *vendor, Uint16 *product, Uint16 *version, int *class)
|
SDL_bool SDL_UDEV_GetProductInfo(const char *device_path, Uint16 *vendor, Uint16 *product, Uint16 *version, int *class)
|
||||||
{
|
{
|
||||||
struct udev_enumerate *enumerate = NULL;
|
struct stat statbuf;
|
||||||
struct udev_list_entry *devs = NULL;
|
char type;
|
||||||
struct udev_list_entry *item = NULL;
|
struct udev_device *dev;
|
||||||
SDL_bool found = SDL_FALSE;
|
const char* val;
|
||||||
|
int class_temp;
|
||||||
|
|
||||||
if (!_this) {
|
if (!_this) {
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
enumerate = _this->syms.udev_enumerate_new(_this->udev);
|
if (stat(device_path, &statbuf) == -1) {
|
||||||
if (!enumerate) {
|
|
||||||
SDL_SetError("udev_enumerate_new() failed");
|
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
_this->syms.udev_enumerate_scan_devices(enumerate);
|
if (S_ISBLK(statbuf.st_mode)) {
|
||||||
devs = _this->syms.udev_enumerate_get_list_entry(enumerate);
|
type = 'b';
|
||||||
for (item = devs; item && !found; item = _this->syms.udev_list_entry_get_next(item)) {
|
}
|
||||||
const char *path = _this->syms.udev_list_entry_get_name(item);
|
else if (S_ISCHR(statbuf.st_mode)) {
|
||||||
struct udev_device *dev = _this->syms.udev_device_new_from_syspath(_this->udev, path);
|
type = 'c';
|
||||||
if (dev) {
|
}
|
||||||
const char *val = NULL;
|
else {
|
||||||
const char *existing_path;
|
return SDL_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
existing_path = _this->syms.udev_device_get_devnode(dev);
|
dev = _this->syms.udev_device_new_from_devnum(_this->udev, type, statbuf.st_rdev);
|
||||||
if (existing_path && SDL_strcmp(device_path, existing_path) == 0) {
|
|
||||||
int class_temp;
|
if (!dev) {
|
||||||
found = SDL_TRUE;
|
return SDL_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
val = _this->syms.udev_device_get_property_value(dev, "ID_VENDOR_ID");
|
val = _this->syms.udev_device_get_property_value(dev, "ID_VENDOR_ID");
|
||||||
if (val) {
|
if (val) {
|
||||||
@@ -275,13 +277,10 @@ SDL_bool SDL_UDEV_GetProductInfo(const char *device_path, Uint16 *vendor, Uint16
|
|||||||
if (class_temp) {
|
if (class_temp) {
|
||||||
*class = class_temp;
|
*class = class_temp;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
_this->syms.udev_device_unref(dev);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_this->syms.udev_enumerate_unref(enumerate);
|
|
||||||
|
|
||||||
return found;
|
_this->syms.udev_device_unref(dev);
|
||||||
|
|
||||||
|
return SDL_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDL_UDEV_UnloadLibrary(void)
|
void SDL_UDEV_UnloadLibrary(void)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#undef WINVER
|
#undef WINVER
|
||||||
#undef _WIN32_WINNT
|
#undef _WIN32_WINNT
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D12)
|
#if SDL_VIDEO_RENDER_D3D12
|
||||||
#define _WIN32_WINNT 0xA00 /* For D3D12, 0xA00 is required */
|
#define _WIN32_WINNT 0xA00 /* For D3D12, 0xA00 is required */
|
||||||
#elif defined(HAVE_SHELLSCALINGAPI_H)
|
#elif defined(HAVE_SHELLSCALINGAPI_H)
|
||||||
#define _WIN32_WINNT 0x603 /* For DPI support */
|
#define _WIN32_WINNT 0x603 /* For DPI support */
|
||||||
@@ -92,16 +92,6 @@
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <basetyps.h> /* for REFIID with broken mingw.org headers */
|
#include <basetyps.h> /* for REFIID with broken mingw.org headers */
|
||||||
|
|
||||||
/* Older Visual C++ headers don't have the Win64-compatible typedefs... */
|
|
||||||
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
|
||||||
#ifndef DWORD_PTR
|
|
||||||
#define DWORD_PTR DWORD
|
|
||||||
#endif
|
|
||||||
#ifndef LONG_PTR
|
|
||||||
#define LONG_PTR LONG
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "SDL_rect.h"
|
#include "SDL_rect.h"
|
||||||
|
|
||||||
/* Routines to convert from UTF8 to native Windows text */
|
/* Routines to convert from UTF8 to native Windows text */
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ typedef struct
|
|||||||
#endif /* HAVE_XINPUT_H */
|
#endif /* HAVE_XINPUT_H */
|
||||||
|
|
||||||
/* This struct is not defined in XInput headers. */
|
/* This struct is not defined in XInput headers. */
|
||||||
typedef struct _XINPUT_CAPABILITIES_EX
|
typedef struct
|
||||||
{
|
{
|
||||||
XINPUT_CAPABILITIES Capabilities;
|
XINPUT_CAPABILITIES Capabilities;
|
||||||
WORD VendorId;
|
WORD VendorId;
|
||||||
@@ -220,7 +220,7 @@ typedef struct _XINPUT_CAPABILITIES_EX
|
|||||||
WORD ProductVersion;
|
WORD ProductVersion;
|
||||||
WORD unk1;
|
WORD unk1;
|
||||||
DWORD unk2;
|
DWORD unk2;
|
||||||
} XINPUT_CAPABILITIES_EX, *PXINPUT_CAPABILITIES_EX;
|
} SDL_XINPUT_CAPABILITIES_EX;
|
||||||
|
|
||||||
/* Forward decl's for XInput API's we load dynamically and use if available */
|
/* Forward decl's for XInput API's we load dynamically and use if available */
|
||||||
typedef DWORD(WINAPI *XInputGetState_t)(
|
typedef DWORD(WINAPI *XInputGetState_t)(
|
||||||
@@ -244,7 +244,7 @@ typedef DWORD(WINAPI *XInputGetCapabilitiesEx_t)(
|
|||||||
DWORD dwReserved, /* [in] Must be 1 */
|
DWORD dwReserved, /* [in] Must be 1 */
|
||||||
DWORD dwUserIndex, /* [in] Index of the gamer associated with the device */
|
DWORD dwUserIndex, /* [in] Index of the gamer associated with the device */
|
||||||
DWORD dwFlags, /* [in] Input flags that identify the device type */
|
DWORD dwFlags, /* [in] Input flags that identify the device type */
|
||||||
XINPUT_CAPABILITIES_EX *pCapabilitiesEx /* [out] Receives the capabilities */
|
SDL_XINPUT_CAPABILITIES_EX *pCapabilitiesEx /* [out] Receives the capabilities */
|
||||||
);
|
);
|
||||||
|
|
||||||
typedef DWORD(WINAPI *XInputGetBatteryInformation_t)(
|
typedef DWORD(WINAPI *XInputGetBatteryInformation_t)(
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ extern "C" {
|
|||||||
#include "SDL_winrtapp_common.h"
|
#include "SDL_winrtapp_common.h"
|
||||||
#include "SDL_winrtapp_direct3d.h"
|
#include "SDL_winrtapp_direct3d.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D11) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D11
|
||||||
/* Calling IDXGIDevice3::Trim on the active Direct3D 11.x device is necessary
|
/* Calling IDXGIDevice3::Trim on the active Direct3D 11.x device is necessary
|
||||||
* when Windows 8.1 apps are about to get suspended.
|
* when Windows 8.1 apps are about to get suspended.
|
||||||
*/
|
*/
|
||||||
@@ -622,7 +622,7 @@ void SDL_WinRTApp::OnSuspending(Platform::Object ^ sender, SuspendingEventArgs ^
|
|||||||
// Let the Direct3D 11 renderer prepare for the app to be backgrounded.
|
// Let the Direct3D 11 renderer prepare for the app to be backgrounded.
|
||||||
// This is necessary for Windows 8.1, possibly elsewhere in the future.
|
// This is necessary for Windows 8.1, possibly elsewhere in the future.
|
||||||
// More details at: http://msdn.microsoft.com/en-us/library/windows/apps/Hh994929.aspx
|
// More details at: http://msdn.microsoft.com/en-us/library/windows/apps/Hh994929.aspx
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D11) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D11
|
||||||
if (WINRT_GlobalSDLWindow) {
|
if (WINRT_GlobalSDLWindow) {
|
||||||
SDL_Renderer *renderer = SDL_GetRenderer(WINRT_GlobalSDLWindow);
|
SDL_Renderer *renderer = SDL_GetRenderer(WINRT_GlobalSDLWindow);
|
||||||
if (renderer && (SDL_strcmp(renderer->info.name, "direct3d11") == 0)) {
|
if (renderer && (SDL_strcmp(renderer->info.name, "direct3d11") == 0)) {
|
||||||
|
|||||||
+5
-12
@@ -34,13 +34,6 @@
|
|||||||
#include "../video/SDL_sysvideo.h"
|
#include "../video/SDL_sysvideo.h"
|
||||||
#include "SDL_syswm.h"
|
#include "SDL_syswm.h"
|
||||||
|
|
||||||
#undef SDL_PRIs64
|
|
||||||
#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__CYGWIN__)
|
|
||||||
#define SDL_PRIs64 "I64d"
|
|
||||||
#else
|
|
||||||
#define SDL_PRIs64 "lld"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* An arbitrary limit so we don't have unbounded growth */
|
/* An arbitrary limit so we don't have unbounded growth */
|
||||||
#define SDL_MAX_QUEUED_EVENTS 65535
|
#define SDL_MAX_QUEUED_EVENTS 65535
|
||||||
|
|
||||||
@@ -454,8 +447,8 @@ static void SDL_LogEvent(const SDL_Event *event)
|
|||||||
|
|
||||||
#define PRINT_FINGER_EVENT(event) \
|
#define PRINT_FINGER_EVENT(event) \
|
||||||
(void)SDL_snprintf(details, sizeof(details), " (timestamp=%u touchid=%" SDL_PRIs64 " fingerid=%" SDL_PRIs64 " x=%f y=%f dx=%f dy=%f pressure=%f)", \
|
(void)SDL_snprintf(details, sizeof(details), " (timestamp=%u touchid=%" SDL_PRIs64 " fingerid=%" SDL_PRIs64 " x=%f y=%f dx=%f dy=%f pressure=%f)", \
|
||||||
(uint)event->tfinger.timestamp, (long long)event->tfinger.touchId, \
|
(uint)event->tfinger.timestamp, event->tfinger.touchId, \
|
||||||
(long long)event->tfinger.fingerId, event->tfinger.x, event->tfinger.y, \
|
event->tfinger.fingerId, event->tfinger.x, event->tfinger.y, \
|
||||||
event->tfinger.dx, event->tfinger.dy, event->tfinger.pressure)
|
event->tfinger.dx, event->tfinger.dy, event->tfinger.pressure)
|
||||||
SDL_EVENT_CASE(SDL_FINGERDOWN)
|
SDL_EVENT_CASE(SDL_FINGERDOWN)
|
||||||
PRINT_FINGER_EVENT(event);
|
PRINT_FINGER_EVENT(event);
|
||||||
@@ -470,8 +463,8 @@ static void SDL_LogEvent(const SDL_Event *event)
|
|||||||
|
|
||||||
#define PRINT_DOLLAR_EVENT(event) \
|
#define PRINT_DOLLAR_EVENT(event) \
|
||||||
(void)SDL_snprintf(details, sizeof(details), " (timestamp=%u touchid=%" SDL_PRIs64 " gestureid=%" SDL_PRIs64 " numfingers=%u error=%f x=%f y=%f)", \
|
(void)SDL_snprintf(details, sizeof(details), " (timestamp=%u touchid=%" SDL_PRIs64 " gestureid=%" SDL_PRIs64 " numfingers=%u error=%f x=%f y=%f)", \
|
||||||
(uint)event->dgesture.timestamp, (long long)event->dgesture.touchId, \
|
(uint)event->dgesture.timestamp, event->dgesture.touchId, \
|
||||||
(long long)event->dgesture.gestureId, (uint)event->dgesture.numFingers, \
|
event->dgesture.gestureId, (uint)event->dgesture.numFingers, \
|
||||||
event->dgesture.error, event->dgesture.x, event->dgesture.y)
|
event->dgesture.error, event->dgesture.x, event->dgesture.y)
|
||||||
SDL_EVENT_CASE(SDL_DOLLARGESTURE)
|
SDL_EVENT_CASE(SDL_DOLLARGESTURE)
|
||||||
PRINT_DOLLAR_EVENT(event);
|
PRINT_DOLLAR_EVENT(event);
|
||||||
@@ -483,7 +476,7 @@ static void SDL_LogEvent(const SDL_Event *event)
|
|||||||
|
|
||||||
SDL_EVENT_CASE(SDL_MULTIGESTURE)
|
SDL_EVENT_CASE(SDL_MULTIGESTURE)
|
||||||
(void)SDL_snprintf(details, sizeof(details), " (timestamp=%u touchid=%" SDL_PRIs64 " dtheta=%f ddist=%f x=%f y=%f numfingers=%u)",
|
(void)SDL_snprintf(details, sizeof(details), " (timestamp=%u touchid=%" SDL_PRIs64 " dtheta=%f ddist=%f x=%f y=%f numfingers=%u)",
|
||||||
(uint)event->mgesture.timestamp, (long long)event->mgesture.touchId,
|
(uint)event->mgesture.timestamp, event->mgesture.touchId,
|
||||||
event->mgesture.dTheta, event->mgesture.dDist,
|
event->mgesture.dTheta, event->mgesture.dDist,
|
||||||
event->mgesture.x, event->mgesture.y, (uint)event->mgesture.numFingers);
|
event->mgesture.x, event->mgesture.y, (uint)event->mgesture.numFingers);
|
||||||
break;
|
break;
|
||||||
|
|||||||
+14
-1
@@ -170,6 +170,13 @@ static void SDLCALL SDL_MouseRelativeWarpMotionChanged(void *userdata, const cha
|
|||||||
mouse->relative_mode_warp_motion = SDL_GetStringBoolean(hint, SDL_FALSE);
|
mouse->relative_mode_warp_motion = SDL_GetStringBoolean(hint, SDL_FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void SDLCALL SDL_MouseRelativeCursorVisibleChanged(void *userdata, const char *name, const char *oldValue, const char *hint)
|
||||||
|
{
|
||||||
|
SDL_Mouse *mouse = (SDL_Mouse *)userdata;
|
||||||
|
|
||||||
|
mouse->relative_mode_cursor_visible = SDL_GetStringBoolean(hint, SDL_FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
/* Public functions */
|
/* Public functions */
|
||||||
int SDL_MousePreInit(void)
|
int SDL_MousePreInit(void)
|
||||||
{
|
{
|
||||||
@@ -209,6 +216,9 @@ int SDL_MousePreInit(void)
|
|||||||
SDL_AddHintCallback(SDL_HINT_MOUSE_RELATIVE_WARP_MOTION,
|
SDL_AddHintCallback(SDL_HINT_MOUSE_RELATIVE_WARP_MOTION,
|
||||||
SDL_MouseRelativeWarpMotionChanged, mouse);
|
SDL_MouseRelativeWarpMotionChanged, mouse);
|
||||||
|
|
||||||
|
SDL_AddHintCallback(SDL_HINT_MOUSE_RELATIVE_CURSOR_VISIBLE,
|
||||||
|
SDL_MouseRelativeCursorVisibleChanged, mouse);
|
||||||
|
|
||||||
mouse->was_touch_mouse_events = SDL_FALSE; /* no touch to mouse movement event pending */
|
mouse->was_touch_mouse_events = SDL_FALSE; /* no touch to mouse movement event pending */
|
||||||
|
|
||||||
mouse->cursor_shown = SDL_TRUE;
|
mouse->cursor_shown = SDL_TRUE;
|
||||||
@@ -992,6 +1002,9 @@ void SDL_MouseQuit(void)
|
|||||||
|
|
||||||
SDL_DelHintCallback(SDL_HINT_MOUSE_RELATIVE_WARP_MOTION,
|
SDL_DelHintCallback(SDL_HINT_MOUSE_RELATIVE_WARP_MOTION,
|
||||||
SDL_MouseRelativeWarpMotionChanged, mouse);
|
SDL_MouseRelativeWarpMotionChanged, mouse);
|
||||||
|
|
||||||
|
SDL_DelHintCallback(SDL_HINT_MOUSE_RELATIVE_CURSOR_VISIBLE,
|
||||||
|
SDL_MouseRelativeCursorVisibleChanged, mouse);
|
||||||
}
|
}
|
||||||
|
|
||||||
Uint32 SDL_GetMouseState(int *x, int *y)
|
Uint32 SDL_GetMouseState(int *x, int *y)
|
||||||
@@ -1412,7 +1425,7 @@ void SDL_SetCursor(SDL_Cursor *cursor)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cursor && mouse->cursor_shown && !mouse->relative_mode) {
|
if (cursor && mouse->cursor_shown && (!mouse->relative_mode || mouse->relative_mode_cursor_visible)) {
|
||||||
if (mouse->ShowCursor) {
|
if (mouse->ShowCursor) {
|
||||||
mouse->ShowCursor(cursor);
|
mouse->ShowCursor(cursor);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ typedef struct
|
|||||||
SDL_bool relative_mode;
|
SDL_bool relative_mode;
|
||||||
SDL_bool relative_mode_warp;
|
SDL_bool relative_mode_warp;
|
||||||
SDL_bool relative_mode_warp_motion;
|
SDL_bool relative_mode_warp_motion;
|
||||||
|
SDL_bool relative_mode_cursor_visible;
|
||||||
SDL_bool enable_normal_speed_scale;
|
SDL_bool enable_normal_speed_scale;
|
||||||
float normal_speed_scale;
|
float normal_speed_scale;
|
||||||
SDL_bool enable_relative_speed_scale;
|
SDL_bool enable_relative_speed_scale;
|
||||||
|
|||||||
+10
-10
@@ -38,7 +38,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_LIMITS_H
|
#ifdef HAVE_LIMITS_H
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -525,16 +524,17 @@ static int SDLCALL mem_close(SDL_RWops *context)
|
|||||||
/* Functions to create SDL_RWops structures from various data sources */
|
/* Functions to create SDL_RWops structures from various data sources */
|
||||||
|
|
||||||
#if defined(HAVE_STDIO_H) && !(defined(__WIN32__) || defined(__GDK__))
|
#if defined(HAVE_STDIO_H) && !(defined(__WIN32__) || defined(__GDK__))
|
||||||
static SDL_bool SDL_IsRegularFile(FILE *f)
|
static SDL_bool IsRegularFileOrPipe(FILE *f)
|
||||||
{
|
{
|
||||||
#ifdef __WINRT__
|
#ifdef __WINRT__
|
||||||
struct __stat64 st;
|
struct __stat64 st;
|
||||||
if (_fstat64(_fileno(f), &st) < 0 || (st.st_mode & _S_IFMT) != _S_IFREG) {
|
if (_fstat64(_fileno(f), &st) < 0 ||
|
||||||
|
!((st.st_mode & _S_IFMT) == _S_IFREG || (st.st_mode & _S_IFMT) == _S_IFIFO)) {
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
struct stat st;
|
struct stat st;
|
||||||
if (fstat(fileno(f), &st) < 0 || !S_ISREG(st.st_mode)) {
|
if (fstat(fileno(f), &st) < 0 || !(S_ISREG(st.st_mode) || S_ISFIFO(st.st_mode))) {
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -555,9 +555,9 @@ SDL_RWops *SDL_RWFromFile(const char *file, const char *mode)
|
|||||||
if (*file == '/') {
|
if (*file == '/') {
|
||||||
FILE *fp = fopen(file, mode);
|
FILE *fp = fopen(file, mode);
|
||||||
if (fp) {
|
if (fp) {
|
||||||
if (!SDL_IsRegularFile(fp)) {
|
if (!IsRegularFileOrPipe(fp)) {
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
SDL_SetError("%s is not a regular file", file);
|
SDL_SetError("%s is not a regular file or pipe", file);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return SDL_RWFromFP(fp, 1);
|
return SDL_RWFromFP(fp, 1);
|
||||||
@@ -575,9 +575,9 @@ SDL_RWops *SDL_RWFromFile(const char *file, const char *mode)
|
|||||||
fp = fopen(path, mode);
|
fp = fopen(path, mode);
|
||||||
SDL_stack_free(path);
|
SDL_stack_free(path);
|
||||||
if (fp) {
|
if (fp) {
|
||||||
if (!SDL_IsRegularFile(fp)) {
|
if (!IsRegularFileOrPipe(fp)) {
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
SDL_SetError("%s is not a regular file", path);
|
SDL_SetError("%s is not a regular file or pipe", path);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return SDL_RWFromFP(fp, 1);
|
return SDL_RWFromFP(fp, 1);
|
||||||
@@ -633,10 +633,10 @@ SDL_RWops *SDL_RWFromFile(const char *file, const char *mode)
|
|||||||
#endif
|
#endif
|
||||||
if (!fp) {
|
if (!fp) {
|
||||||
SDL_SetError("Couldn't open %s", file);
|
SDL_SetError("Couldn't open %s", file);
|
||||||
} else if (!SDL_IsRegularFile(fp)) {
|
} else if (!IsRegularFileOrPipe(fp)) {
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
fp = NULL;
|
fp = NULL;
|
||||||
SDL_SetError("%s is not a regular file", file);
|
SDL_SetError("%s is not a regular file or pipe", file);
|
||||||
} else {
|
} else {
|
||||||
rwops = SDL_RWFromFP(fp, SDL_TRUE);
|
rwops = SDL_RWFromFP(fp, SDL_TRUE);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,6 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#ifdef SDL_FILESYSTEM_XBOX
|
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
/* System dependent filesystem routines */
|
/* System dependent filesystem routines */
|
||||||
@@ -135,6 +134,5 @@ SDL_GetPrefPath(const char *org, const char *app)
|
|||||||
return folderPath;
|
return folderPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL_FILESYSTEM_XBOX */
|
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -877,6 +877,41 @@ static int SDL_libusb_get_string_descriptor(libusb_device_handle *dev,
|
|||||||
#undef make_path
|
#undef make_path
|
||||||
#undef read_thread
|
#undef read_thread
|
||||||
|
|
||||||
|
/* If the platform has any backend other than libusb, try to avoid using
|
||||||
|
* libusb as the main backend for devices, since it detaches drivers and
|
||||||
|
* therefore makes devices inaccessible to the rest of the OS.
|
||||||
|
*
|
||||||
|
* We do this by whitelisting devices we know to be accessible _exclusively_
|
||||||
|
* via libusb; these are typically devices that look like HIDs but have a
|
||||||
|
* quirk that requires direct access to the hardware.
|
||||||
|
*/
|
||||||
|
static const struct {
|
||||||
|
Uint16 vendor;
|
||||||
|
Uint16 product;
|
||||||
|
} SDL_libusb_whitelist[] = {
|
||||||
|
{ 0x057e, 0x0337 } /* Nintendo WUP-028, Wii U/Switch GameCube Adapter */
|
||||||
|
};
|
||||||
|
|
||||||
|
static SDL_bool
|
||||||
|
IsInWhitelist(Uint16 vendor, Uint16 product)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < SDL_arraysize(SDL_libusb_whitelist); i += 1) {
|
||||||
|
if (vendor == SDL_libusb_whitelist[i].vendor &&
|
||||||
|
product == SDL_libusb_whitelist[i].product) {
|
||||||
|
return SDL_TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return SDL_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(HAVE_PLATFORM_BACKEND) || HAVE_DRIVER_BACKEND
|
||||||
|
static const SDL_bool use_libusb_whitelist_default = SDL_TRUE;
|
||||||
|
#else
|
||||||
|
static const SDL_bool use_libusb_whitelist_default = SDL_FALSE;
|
||||||
|
#endif /* HAVE_PLATFORM_BACKEND || HAVE_DRIVER_BACKEND */
|
||||||
|
static SDL_bool use_libusb_whitelist = use_libusb_whitelist_default;
|
||||||
|
|
||||||
#endif /* HAVE_LIBUSB */
|
#endif /* HAVE_LIBUSB */
|
||||||
|
|
||||||
#endif /* !SDL_HIDAPI_DISABLED */
|
#endif /* !SDL_HIDAPI_DISABLED */
|
||||||
@@ -1062,6 +1097,8 @@ int SDL_hid_init(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_LIBUSB
|
#ifdef HAVE_LIBUSB
|
||||||
|
use_libusb_whitelist = SDL_GetHintBoolean("SDL_HIDAPI_LIBUSB_WHITELIST",
|
||||||
|
use_libusb_whitelist_default);
|
||||||
if (SDL_getenv("SDL_HIDAPI_DISABLE_LIBUSB") != NULL) {
|
if (SDL_getenv("SDL_HIDAPI_DISABLE_LIBUSB") != NULL) {
|
||||||
SDL_LogDebug(SDL_LOG_CATEGORY_INPUT,
|
SDL_LogDebug(SDL_LOG_CATEGORY_INPUT,
|
||||||
"libusb disabled by SDL_HIDAPI_DISABLE_LIBUSB");
|
"libusb disabled by SDL_HIDAPI_DISABLE_LIBUSB");
|
||||||
@@ -1238,6 +1275,16 @@ struct SDL_hid_device_info *SDL_hid_enumerate(unsigned short vendor_id, unsigned
|
|||||||
SDL_Log("libusb devices found:");
|
SDL_Log("libusb devices found:");
|
||||||
#endif
|
#endif
|
||||||
for (usb_dev = usb_devs; usb_dev; usb_dev = usb_dev->next) {
|
for (usb_dev = usb_devs; usb_dev; usb_dev = usb_dev->next) {
|
||||||
|
if (use_libusb_whitelist) {
|
||||||
|
if (!IsInWhitelist(usb_dev->vendor_id, usb_dev->product_id)) {
|
||||||
|
#ifdef DEBUG_HIDAPI
|
||||||
|
SDL_Log("Device was not in libusb whitelist: %ls %ls 0x%.4hx 0x%.4hx",
|
||||||
|
usb_dev->manufacturer_string, usb_dev->product_string,
|
||||||
|
usb_dev->vendor_id, usb_dev->product_id);
|
||||||
|
#endif /* DEBUG_HIDAPI */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
new_dev = (struct SDL_hid_device_info *)SDL_malloc(sizeof(struct SDL_hid_device_info));
|
new_dev = (struct SDL_hid_device_info *)SDL_malloc(sizeof(struct SDL_hid_device_info));
|
||||||
if (new_dev == NULL) {
|
if (new_dev == NULL) {
|
||||||
LIBUSB_hid_free_enumeration(usb_devs);
|
LIBUSB_hid_free_enumeration(usb_devs);
|
||||||
|
|||||||
@@ -715,6 +715,7 @@ static int is_xboxone(unsigned short vendor_id, const struct libusb_interface_de
|
|||||||
0x044f, /* Thrustmaster */
|
0x044f, /* Thrustmaster */
|
||||||
0x045e, /* Microsoft */
|
0x045e, /* Microsoft */
|
||||||
0x0738, /* Mad Catz */
|
0x0738, /* Mad Catz */
|
||||||
|
0x0b05, /* ASUS */
|
||||||
0x0e6f, /* PDP */
|
0x0e6f, /* PDP */
|
||||||
0x0f0d, /* Hori */
|
0x0f0d, /* Hori */
|
||||||
0x10f5, /* Turtle Beach */
|
0x10f5, /* Turtle Beach */
|
||||||
|
|||||||
@@ -555,7 +555,7 @@ static ControllerMapping_t *SDL_CreateMappingForHIDAPIController(SDL_JoystickGUI
|
|||||||
SDL_strlcat(mapping_string, "a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a5,start:b6,x:b2,y:b3,misc1:b15,", sizeof(mapping_string));
|
SDL_strlcat(mapping_string, "a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a5,start:b6,x:b2,y:b3,misc1:b15,", sizeof(mapping_string));
|
||||||
break;
|
break;
|
||||||
case k_eSwitchDeviceInfoControllerType_SEGA_Genesis:
|
case k_eSwitchDeviceInfoControllerType_SEGA_Genesis:
|
||||||
SDL_strlcat(mapping_string, "a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,rightshoulder:b10,righttrigger:a5,start:b6,misc1:b15,", sizeof(mapping_string));
|
SDL_strlcat(mapping_string, "a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,rightshoulder:b10,righttrigger:a5,start:b6,x:b2,y:b3,misc1:b15,", sizeof(mapping_string));
|
||||||
break;
|
break;
|
||||||
case k_eWiiExtensionControllerType_None:
|
case k_eWiiExtensionControllerType_None:
|
||||||
SDL_strlcat(mapping_string, "a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,start:b6,x:b2,y:b3,", sizeof(mapping_string));
|
SDL_strlcat(mapping_string, "a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,start:b6,x:b2,y:b3,", sizeof(mapping_string));
|
||||||
@@ -688,16 +688,14 @@ static ControllerMapping_t *SDL_CreateMappingForWGIController(SDL_JoystickGUID g
|
|||||||
/*
|
/*
|
||||||
* Helper function to scan the mappings database for a controller with the specified GUID
|
* Helper function to scan the mappings database for a controller with the specified GUID
|
||||||
*/
|
*/
|
||||||
static ControllerMapping_t *SDL_PrivateMatchControllerMappingForGUID(SDL_JoystickGUID guid, SDL_bool match_crc, SDL_bool match_version)
|
static ControllerMapping_t *SDL_PrivateMatchControllerMappingForGUID(SDL_JoystickGUID guid, SDL_bool match_version)
|
||||||
{
|
{
|
||||||
ControllerMapping_t *mapping;
|
ControllerMapping_t *mapping, *best_match = NULL;
|
||||||
Uint16 crc = 0;
|
Uint16 crc = 0;
|
||||||
|
|
||||||
SDL_AssertJoysticksLocked();
|
SDL_AssertJoysticksLocked();
|
||||||
|
|
||||||
if (match_crc) {
|
|
||||||
SDL_GetJoystickGUIDInfo(guid, NULL, NULL, NULL, &crc);
|
SDL_GetJoystickGUIDInfo(guid, NULL, NULL, NULL, &crc);
|
||||||
}
|
|
||||||
|
|
||||||
/* Clear the CRC from the GUID for matching, the mappings never include it in the GUID */
|
/* Clear the CRC from the GUID for matching, the mappings never include it in the GUID */
|
||||||
SDL_SetJoystickGUIDCRC(&guid, 0);
|
SDL_SetJoystickGUIDCRC(&guid, 0);
|
||||||
@@ -719,20 +717,26 @@ static ControllerMapping_t *SDL_PrivateMatchControllerMappingForGUID(SDL_Joystic
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (SDL_memcmp(&guid, &mapping_guid, sizeof(guid)) == 0) {
|
if (SDL_memcmp(&guid, &mapping_guid, sizeof(guid)) == 0) {
|
||||||
Uint16 mapping_crc = 0;
|
|
||||||
|
|
||||||
if (match_crc) {
|
|
||||||
const char *crc_string = SDL_strstr(mapping->mapping, SDL_CONTROLLER_CRC_FIELD);
|
const char *crc_string = SDL_strstr(mapping->mapping, SDL_CONTROLLER_CRC_FIELD);
|
||||||
if (crc_string) {
|
if (crc_string) {
|
||||||
mapping_crc = (Uint16)SDL_strtol(crc_string + SDL_CONTROLLER_CRC_FIELD_SIZE, NULL, 16);
|
Uint16 mapping_crc = (Uint16)SDL_strtol(crc_string + SDL_CONTROLLER_CRC_FIELD_SIZE, NULL, 16);
|
||||||
|
|
||||||
|
if (mapping_crc != crc) {
|
||||||
|
/* This mapping specified a CRC and they don't match */
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (crc == mapping_crc) {
|
/* An exact match, including CRC */
|
||||||
return mapping;
|
return mapping;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!best_match) {
|
||||||
|
best_match = mapping;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return NULL;
|
}
|
||||||
|
return best_match;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -741,19 +745,8 @@ static ControllerMapping_t *SDL_PrivateMatchControllerMappingForGUID(SDL_Joystic
|
|||||||
static ControllerMapping_t *SDL_PrivateGetControllerMappingForGUID(SDL_JoystickGUID guid, SDL_bool adding_mapping)
|
static ControllerMapping_t *SDL_PrivateGetControllerMappingForGUID(SDL_JoystickGUID guid, SDL_bool adding_mapping)
|
||||||
{
|
{
|
||||||
ControllerMapping_t *mapping;
|
ControllerMapping_t *mapping;
|
||||||
Uint16 vendor, product, crc;
|
|
||||||
|
|
||||||
SDL_GetJoystickGUIDInfo(guid, &vendor, &product, NULL, &crc);
|
mapping = SDL_PrivateMatchControllerMappingForGUID(guid, SDL_TRUE);
|
||||||
if (crc) {
|
|
||||||
/* First check for exact CRC matching */
|
|
||||||
mapping = SDL_PrivateMatchControllerMappingForGUID(guid, SDL_TRUE, SDL_TRUE);
|
|
||||||
if (mapping) {
|
|
||||||
return mapping;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Now check for a mapping without CRC */
|
|
||||||
mapping = SDL_PrivateMatchControllerMappingForGUID(guid, SDL_FALSE, SDL_TRUE);
|
|
||||||
if (mapping) {
|
if (mapping) {
|
||||||
return mapping;
|
return mapping;
|
||||||
}
|
}
|
||||||
@@ -767,14 +760,7 @@ static ControllerMapping_t *SDL_PrivateGetControllerMappingForGUID(SDL_JoystickG
|
|||||||
|
|
||||||
if (SDL_JoystickGUIDUsesVersion(guid)) {
|
if (SDL_JoystickGUIDUsesVersion(guid)) {
|
||||||
/* Try again, ignoring the version */
|
/* Try again, ignoring the version */
|
||||||
if (crc) {
|
mapping = SDL_PrivateMatchControllerMappingForGUID(guid, SDL_FALSE);
|
||||||
mapping = SDL_PrivateMatchControllerMappingForGUID(guid, SDL_TRUE, SDL_FALSE);
|
|
||||||
if (mapping) {
|
|
||||||
return mapping;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mapping = SDL_PrivateMatchControllerMappingForGUID(guid, SDL_FALSE, SDL_FALSE);
|
|
||||||
if (mapping) {
|
if (mapping) {
|
||||||
return mapping;
|
return mapping;
|
||||||
}
|
}
|
||||||
@@ -1391,9 +1377,6 @@ static ControllerMapping_t *SDL_PrivateGetControllerMappingForNameAndGUID(const
|
|||||||
}
|
}
|
||||||
#endif /* __LINUX__ */
|
#endif /* __LINUX__ */
|
||||||
|
|
||||||
if (!mapping) {
|
|
||||||
mapping = s_pDefaultMapping;
|
|
||||||
}
|
|
||||||
return mapping;
|
return mapping;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1506,6 +1489,9 @@ static ControllerMapping_t *SDL_PrivateGetControllerMapping(int device_index)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!mapping) {
|
||||||
|
mapping = s_pDefaultMapping;
|
||||||
|
}
|
||||||
return mapping;
|
return mapping;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2059,7 +2045,7 @@ SDL_bool SDL_IsGameControllerNameAndGUID(const char *name, SDL_JoystickGUID guid
|
|||||||
|
|
||||||
SDL_LockJoysticks();
|
SDL_LockJoysticks();
|
||||||
{
|
{
|
||||||
if (SDL_PrivateGetControllerMappingForNameAndGUID(name, guid) != NULL) {
|
if (s_pDefaultMapping || SDL_PrivateGetControllerMappingForNameAndGUID(name, guid) != NULL) {
|
||||||
retval = SDL_TRUE;
|
retval = SDL_TRUE;
|
||||||
} else {
|
} else {
|
||||||
retval = SDL_FALSE;
|
retval = SDL_FALSE;
|
||||||
@@ -3259,10 +3245,11 @@ const char *SDL_GameControllerGetAppleSFSymbolsNameForButton(SDL_GameController
|
|||||||
}
|
}
|
||||||
SDL_UnlockJoysticks();
|
SDL_UnlockJoysticks();
|
||||||
|
|
||||||
|
if (retval && *retval) {
|
||||||
return retval;
|
return retval;
|
||||||
#else
|
}
|
||||||
return NULL;
|
|
||||||
#endif
|
#endif
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *SDL_GameControllerGetAppleSFSymbolsNameForAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis)
|
const char *SDL_GameControllerGetAppleSFSymbolsNameForAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis)
|
||||||
@@ -3279,10 +3266,11 @@ const char *SDL_GameControllerGetAppleSFSymbolsNameForAxis(SDL_GameController *g
|
|||||||
}
|
}
|
||||||
SDL_UnlockJoysticks();
|
SDL_UnlockJoysticks();
|
||||||
|
|
||||||
|
if (retval && *retval) {
|
||||||
return retval;
|
return retval;
|
||||||
#else
|
}
|
||||||
return NULL;
|
|
||||||
#endif
|
#endif
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -125,6 +125,7 @@ static const char *s_ControllerMappings[] = {
|
|||||||
"03000000260900008888000000000000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a4,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,",
|
"03000000260900008888000000000000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a4,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,",
|
||||||
"03000000a306000022f6000000000000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,",
|
"03000000a306000022f6000000000000,Cyborg V.3 Rumble Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,",
|
||||||
"03000000451300000830000000000000,Defender Game Racer X7,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,",
|
"03000000451300000830000000000000,Defender Game Racer X7,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,",
|
||||||
|
"03000000790000000600000000000000,Defender Joystick Cobra R4,crc:c77a,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2~,righty:a3~,start:b9,x:b3,y:b0,",
|
||||||
"03000000791d00000103000000000000,Dual Box WII,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,",
|
"03000000791d00000103000000000000,Dual Box WII,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,",
|
||||||
"03000000bd12000002e0000000000000,Dual USB Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,",
|
"03000000bd12000002e0000000000000,Dual USB Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,",
|
||||||
"030000006f0e00003001000000000000,EA SPORTS PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
"030000006f0e00003001000000000000,EA SPORTS PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
||||||
@@ -303,6 +304,7 @@ static const char *s_ControllerMappings[] = {
|
|||||||
"030000006f0e00002f01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
"030000006f0e00002f01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
||||||
"03000000341a00000208000000000000,SL-6555-SBK,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:-a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a3,righty:a2,start:b7,x:b2,y:b3,",
|
"03000000341a00000208000000000000,SL-6555-SBK,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:-a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a3,righty:a2,start:b7,x:b2,y:b3,",
|
||||||
"03000000341a00000908000000000000,SL-6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,",
|
"03000000341a00000908000000000000,SL-6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,",
|
||||||
|
"03000000790000000600000000000000,SPEEDLINK STRIKE Gamepad,crc:5811,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,",
|
||||||
"03000000790000001c18000000000000,STK-7024X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,",
|
"03000000790000001c18000000000000,STK-7024X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,",
|
||||||
"03000000ff1100003133000000000000,SVEN X-PAD,a:b2,b:b3,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a4,start:b5,x:b0,y:b1,",
|
"03000000ff1100003133000000000000,SVEN X-PAD,a:b2,b:b3,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a4,start:b5,x:b0,y:b1,",
|
||||||
"03000000457500002211000000000000,SZMY-POWER PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
"03000000457500002211000000000000,SZMY-POWER PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
||||||
@@ -317,6 +319,7 @@ static const char *s_ControllerMappings[] = {
|
|||||||
"03000000a30600002106000000000000,Saitek PS1000,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,",
|
"03000000a30600002106000000000000,Saitek PS1000,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,",
|
||||||
"03000000a306000020f6000000000000,Saitek PS2700,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,",
|
"03000000a306000020f6000000000000,Saitek PS2700,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,",
|
||||||
"03000000300f00001101000000000000,Saitek Rumble Pad,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,",
|
"03000000300f00001101000000000000,Saitek Rumble Pad,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,",
|
||||||
|
"03000000790000000600000000000000,Sanwa Supply JY-P76USV,crc:20f0,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b2,y:b3,",
|
||||||
"0300000000050000289b000000000000,Saturn_Adapter_2.0,a:b1,b:b2,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,",
|
"0300000000050000289b000000000000,Saturn_Adapter_2.0,a:b1,b:b2,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,",
|
||||||
"030000009b2800000500000000000000,Saturn_Adapter_2.0,a:b1,b:b2,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,",
|
"030000009b2800000500000000000000,Saturn_Adapter_2.0,a:b1,b:b2,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,",
|
||||||
"030000008f0e00000800000000000000,SpeedLink Strike FX,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,",
|
"030000008f0e00000800000000000000,SpeedLink Strike FX,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,",
|
||||||
@@ -769,6 +772,8 @@ static const char *s_ControllerMappings[] = {
|
|||||||
"03000000300f00001211000011010000,QanBa Arcade JoyStick,a:b2,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b9,x:b1,y:b3,",
|
"03000000300f00001211000011010000,QanBa Arcade JoyStick,a:b2,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b9,x:b1,y:b3,",
|
||||||
"03000000222c00000225000011010000,Qanba Dragon Arcade Joystick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
"03000000222c00000225000011010000,Qanba Dragon Arcade Joystick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
||||||
"03000000222c00000025000011010000,Qanba Dragon Arcade Joystick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
|
"03000000222c00000025000011010000,Qanba Dragon Arcade Joystick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
|
||||||
|
"03000000222c00001020000011010000,Qanba Drone 2 Arcade Joystick (PS5),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
|
||||||
|
"03000000222c00001220000011010000,Qanba Drone 2 Arcade Joystick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
|
||||||
"03000000222c00000020000011010000,Qanba Drone Arcade Joystick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,rightshoulder:b5,righttrigger:a4,start:b9,x:b0,y:b3,",
|
"03000000222c00000020000011010000,Qanba Drone Arcade Joystick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,rightshoulder:b5,righttrigger:a4,start:b9,x:b0,y:b3,",
|
||||||
"03000000222c00000223000011010000,Qanba Obsidian Arcade Joystick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
"03000000222c00000223000011010000,Qanba Obsidian Arcade Joystick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
||||||
"03000000222c00000023000011010000,Qanba Obsidian Arcade Joystick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
|
"03000000222c00000023000011010000,Qanba Obsidian Arcade Joystick (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
|
||||||
@@ -858,7 +863,6 @@ static const char *s_ControllerMappings[] = {
|
|||||||
"03000000120c0000100e000011010000,ZEROPLUS P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
|
"03000000120c0000100e000011010000,ZEROPLUS P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
|
||||||
"03000000120c0000101e000011010000,ZEROPLUS P4 Wired Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
|
"03000000120c0000101e000011010000,ZEROPLUS P4 Wired Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
|
||||||
"03000000666600006706000000010000,boom PSX to PC Converter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,",
|
"03000000666600006706000000010000,boom PSX to PC Converter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,",
|
||||||
"030000000d0f00000d00000000010000,hori,a:b0,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b3,leftx:b4,lefty:b5,rightshoulder:b7,start:b9,x:b1,y:b2,",
|
|
||||||
"03000000830500006020000010010000,iBuffalo SNES Controller,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
"03000000830500006020000010010000,iBuffalo SNES Controller,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,hint:SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
||||||
"03000000830500006020000010010000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
"03000000830500006020000010010000,iBuffalo SNES Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
|
||||||
"050000006964726f69643a636f6e0000,idroid:con,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
"050000006964726f69643a636f6e0000,idroid:con,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
|
||||||
|
|||||||
@@ -293,6 +293,7 @@ static Uint32 initial_flightstick_devices[] = {
|
|||||||
MAKE_VIDPID(0x046d, 0xc215), /* Logitech Extreme 3D */
|
MAKE_VIDPID(0x046d, 0xc215), /* Logitech Extreme 3D */
|
||||||
MAKE_VIDPID(0x231d, 0x0126), /* Gunfighter Mk.III ‘Space Combat Edition’ (right) */
|
MAKE_VIDPID(0x231d, 0x0126), /* Gunfighter Mk.III ‘Space Combat Edition’ (right) */
|
||||||
MAKE_VIDPID(0x231d, 0x0127), /* Gunfighter Mk.III ‘Space Combat Edition’ (left) */
|
MAKE_VIDPID(0x231d, 0x0127), /* Gunfighter Mk.III ‘Space Combat Edition’ (left) */
|
||||||
|
MAKE_VIDPID(0x362c, 0x0001), /* Yawman Arrow */
|
||||||
};
|
};
|
||||||
static SDL_vidpid_list flightstick_devices = {
|
static SDL_vidpid_list flightstick_devices = {
|
||||||
SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES, 0, 0, NULL,
|
SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES, 0, 0, NULL,
|
||||||
@@ -369,7 +370,10 @@ static Uint32 initial_wheel_devices[] = {
|
|||||||
MAKE_VIDPID(0x044f, 0xb65e), /* Thrustmaster T500RS */
|
MAKE_VIDPID(0x044f, 0xb65e), /* Thrustmaster T500RS */
|
||||||
MAKE_VIDPID(0x044f, 0xb664), /* Thrustmaster TX (initial mode) */
|
MAKE_VIDPID(0x044f, 0xb664), /* Thrustmaster TX (initial mode) */
|
||||||
MAKE_VIDPID(0x044f, 0xb669), /* Thrustmaster TX (active mode) */
|
MAKE_VIDPID(0x044f, 0xb669), /* Thrustmaster TX (active mode) */
|
||||||
|
MAKE_VIDPID(0x044f, 0xb691), /* Thrustmaster TS-XW (initial mode) */
|
||||||
|
MAKE_VIDPID(0x044f, 0xb692), /* Thrustmaster TS-XW (active mode) */
|
||||||
MAKE_VIDPID(0x0483, 0x0522), /* Simagic Wheelbase (including M10, Alpha Mini, Alpha, Alpha U) */
|
MAKE_VIDPID(0x0483, 0x0522), /* Simagic Wheelbase (including M10, Alpha Mini, Alpha, Alpha U) */
|
||||||
|
MAKE_VIDPID(0x0483, 0xa355), /* VRS DirectForce Pro Wheel Base */
|
||||||
MAKE_VIDPID(0x0eb7, 0x0001), /* Fanatec ClubSport Wheel Base V2 */
|
MAKE_VIDPID(0x0eb7, 0x0001), /* Fanatec ClubSport Wheel Base V2 */
|
||||||
MAKE_VIDPID(0x0eb7, 0x0004), /* Fanatec ClubSport Wheel Base V2.5 */
|
MAKE_VIDPID(0x0eb7, 0x0004), /* Fanatec ClubSport Wheel Base V2.5 */
|
||||||
MAKE_VIDPID(0x0eb7, 0x0005), /* Fanatec CSL Elite Wheel Base+ (PS4) */
|
MAKE_VIDPID(0x0eb7, 0x0005), /* Fanatec CSL Elite Wheel Base+ (PS4) */
|
||||||
@@ -381,10 +385,21 @@ static Uint32 initial_wheel_devices[] = {
|
|||||||
MAKE_VIDPID(0x0eb7, 0x038e), /* Fanatec ClubSport Wheel Base V1 */
|
MAKE_VIDPID(0x0eb7, 0x038e), /* Fanatec ClubSport Wheel Base V1 */
|
||||||
MAKE_VIDPID(0x0eb7, 0x0e03), /* Fanatec CSL Elite Wheel Base */
|
MAKE_VIDPID(0x0eb7, 0x0e03), /* Fanatec CSL Elite Wheel Base */
|
||||||
MAKE_VIDPID(0x11ff, 0x0511), /* DragonRise Inc. Wired Wheel (initial mode) (also known as PXN V900 (PS3), Superdrive SV-750, or a Genesis Seaborg 400) */
|
MAKE_VIDPID(0x11ff, 0x0511), /* DragonRise Inc. Wired Wheel (initial mode) (also known as PXN V900 (PS3), Superdrive SV-750, or a Genesis Seaborg 400) */
|
||||||
|
MAKE_VIDPID(0x1209, 0xffb0), /* Generic FFBoard OpenFFBoard universal forcefeedback wheel */
|
||||||
|
MAKE_VIDPID(0x16d0, 0x0d5a), /* Simucube 1 Wheelbase */
|
||||||
|
MAKE_VIDPID(0x16d0, 0x0d5f), /* Simucube 2 Ultimate Wheelbase */
|
||||||
|
MAKE_VIDPID(0x16d0, 0x0d60), /* Simucube 2 Pro Wheelbase */
|
||||||
|
MAKE_VIDPID(0x16d0, 0x0d61), /* Simucube 2 Sport Wheelbase */
|
||||||
MAKE_VIDPID(0x2433, 0xf300), /* Asetek SimSports Invicta Wheelbase */
|
MAKE_VIDPID(0x2433, 0xf300), /* Asetek SimSports Invicta Wheelbase */
|
||||||
MAKE_VIDPID(0x2433, 0xf301), /* Asetek SimSports Forte Wheelbase */
|
MAKE_VIDPID(0x2433, 0xf301), /* Asetek SimSports Forte Wheelbase */
|
||||||
MAKE_VIDPID(0x2433, 0xf303), /* Asetek SimSports La Prima Wheelbase */
|
MAKE_VIDPID(0x2433, 0xf303), /* Asetek SimSports La Prima Wheelbase */
|
||||||
MAKE_VIDPID(0x2433, 0xf306), /* Asetek SimSports Tony Kannan Wheelbase */
|
MAKE_VIDPID(0x2433, 0xf306), /* Asetek SimSports Tony Kannan Wheelbase */
|
||||||
|
MAKE_VIDPID(0x3416, 0x0301), /* Cammus C5 Wheelbase */
|
||||||
|
MAKE_VIDPID(0x346e, 0x0000), /* Moza R16/R21 Wheelbase */
|
||||||
|
MAKE_VIDPID(0x346e, 0x0002), /* Moza R9 Wheelbase */
|
||||||
|
MAKE_VIDPID(0x346e, 0x0004), /* Moza R5 Wheelbase */
|
||||||
|
MAKE_VIDPID(0x346e, 0x0005), /* Moza R3 Wheelbase */
|
||||||
|
MAKE_VIDPID(0x346e, 0x0006), /* Moza R12 Wheelbase */
|
||||||
};
|
};
|
||||||
static SDL_vidpid_list wheel_devices = {
|
static SDL_vidpid_list wheel_devices = {
|
||||||
SDL_HINT_JOYSTICK_WHEEL_DEVICES, 0, 0, NULL,
|
SDL_HINT_JOYSTICK_WHEEL_DEVICES, 0, 0, NULL,
|
||||||
@@ -1312,14 +1327,16 @@ const char *SDL_JoystickName(SDL_Joystick *joystick)
|
|||||||
const SDL_SteamVirtualGamepadInfo *info;
|
const SDL_SteamVirtualGamepadInfo *info;
|
||||||
|
|
||||||
SDL_LockJoysticks();
|
SDL_LockJoysticks();
|
||||||
|
{
|
||||||
|
CHECK_JOYSTICK_MAGIC(joystick, NULL);
|
||||||
|
|
||||||
info = SDL_GetJoystickInstanceVirtualGamepadInfo(joystick->instance_id);
|
info = SDL_GetJoystickInstanceVirtualGamepadInfo(joystick->instance_id);
|
||||||
if (info) {
|
if (info) {
|
||||||
retval = info->name;
|
retval = info->name;
|
||||||
} else {
|
} else {
|
||||||
CHECK_JOYSTICK_MAGIC(joystick, NULL);
|
|
||||||
|
|
||||||
retval = joystick->name;
|
retval = joystick->name;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
SDL_UnlockJoysticks();
|
SDL_UnlockJoysticks();
|
||||||
|
|
||||||
/* FIXME: Really we should reference count this name so it doesn't go away after unlock */
|
/* FIXME: Really we should reference count this name so it doesn't go away after unlock */
|
||||||
@@ -2203,7 +2220,7 @@ void SDL_JoystickUpdate(void)
|
|||||||
int SDL_JoystickEventState(int state)
|
int SDL_JoystickEventState(int state)
|
||||||
{
|
{
|
||||||
#ifdef SDL_EVENTS_DISABLED
|
#ifdef SDL_EVENTS_DISABLED
|
||||||
return SDL_DISABLE;
|
return SDL_IGNORE;
|
||||||
#else
|
#else
|
||||||
const Uint32 event_list[] = {
|
const Uint32 event_list[] = {
|
||||||
SDL_JOYAXISMOTION, SDL_JOYBALLMOTION, SDL_JOYHATMOTION,
|
SDL_JOYAXISMOTION, SDL_JOYBALLMOTION, SDL_JOYHATMOTION,
|
||||||
@@ -2731,6 +2748,11 @@ SDL_bool SDL_IsJoystickXboxSeriesX(Uint16 vendor_id, Uint16 product_id)
|
|||||||
return SDL_TRUE;
|
return SDL_TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (vendor_id == USB_VENDOR_ASUS) {
|
||||||
|
if (product_id == USB_PRODUCT_ROG_RAIKIRI) {
|
||||||
|
return SDL_TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3101,6 +3123,9 @@ Uint16 SDL_JoystickGetVendor(SDL_Joystick *joystick)
|
|||||||
const SDL_SteamVirtualGamepadInfo *info;
|
const SDL_SteamVirtualGamepadInfo *info;
|
||||||
|
|
||||||
SDL_LockJoysticks();
|
SDL_LockJoysticks();
|
||||||
|
{
|
||||||
|
CHECK_JOYSTICK_MAGIC(joystick, 0);
|
||||||
|
|
||||||
info = SDL_GetJoystickInstanceVirtualGamepadInfo(joystick->instance_id);
|
info = SDL_GetJoystickInstanceVirtualGamepadInfo(joystick->instance_id);
|
||||||
if (info) {
|
if (info) {
|
||||||
vendor = info->vendor_id;
|
vendor = info->vendor_id;
|
||||||
@@ -3109,6 +3134,7 @@ Uint16 SDL_JoystickGetVendor(SDL_Joystick *joystick)
|
|||||||
|
|
||||||
SDL_GetJoystickGUIDInfo(guid, &vendor, NULL, NULL, NULL);
|
SDL_GetJoystickGUIDInfo(guid, &vendor, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
SDL_UnlockJoysticks();
|
SDL_UnlockJoysticks();
|
||||||
|
|
||||||
return vendor;
|
return vendor;
|
||||||
@@ -3120,6 +3146,9 @@ Uint16 SDL_JoystickGetProduct(SDL_Joystick *joystick)
|
|||||||
const SDL_SteamVirtualGamepadInfo *info;
|
const SDL_SteamVirtualGamepadInfo *info;
|
||||||
|
|
||||||
SDL_LockJoysticks();
|
SDL_LockJoysticks();
|
||||||
|
{
|
||||||
|
CHECK_JOYSTICK_MAGIC(joystick, 0);
|
||||||
|
|
||||||
info = SDL_GetJoystickInstanceVirtualGamepadInfo(joystick->instance_id);
|
info = SDL_GetJoystickInstanceVirtualGamepadInfo(joystick->instance_id);
|
||||||
if (info) {
|
if (info) {
|
||||||
product = info->product_id;
|
product = info->product_id;
|
||||||
@@ -3128,6 +3157,7 @@ Uint16 SDL_JoystickGetProduct(SDL_Joystick *joystick)
|
|||||||
|
|
||||||
SDL_GetJoystickGUIDInfo(guid, NULL, &product, NULL, NULL);
|
SDL_GetJoystickGUIDInfo(guid, NULL, &product, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
SDL_UnlockJoysticks();
|
SDL_UnlockJoysticks();
|
||||||
|
|
||||||
return product;
|
return product;
|
||||||
|
|||||||
@@ -221,6 +221,7 @@ SDL_bool SDL_UpdateSteamVirtualGamepadInfo(void)
|
|||||||
if (slot >= 0) {
|
if (slot >= 0) {
|
||||||
AddVirtualGamepadInfo(slot, &info);
|
AddVirtualGamepadInfo(slot, &info);
|
||||||
}
|
}
|
||||||
|
SDL_free(info.name);
|
||||||
SDL_free(data);
|
SDL_free(data);
|
||||||
|
|
||||||
SDL_steam_virtual_gamepad_info_file_mtime = mtime;
|
SDL_steam_virtual_gamepad_info_file_mtime = mtime;
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ static const ControllerDescription_t arrControllers[] = {
|
|||||||
{ MAKE_CONTROLLER_ID( 0x0079, 0x1844 ), k_eControllerType_PS3Controller, NULL }, // From SDL
|
{ MAKE_CONTROLLER_ID( 0x0079, 0x1844 ), k_eControllerType_PS3Controller, NULL }, // From SDL
|
||||||
{ MAKE_CONTROLLER_ID( 0x044f, 0xb315 ), k_eControllerType_PS3Controller, NULL }, // Firestorm Dual Analog 3
|
{ MAKE_CONTROLLER_ID( 0x044f, 0xb315 ), k_eControllerType_PS3Controller, NULL }, // Firestorm Dual Analog 3
|
||||||
{ MAKE_CONTROLLER_ID( 0x044f, 0xd007 ), k_eControllerType_PS3Controller, NULL }, // Thrustmaster wireless 3-1
|
{ MAKE_CONTROLLER_ID( 0x044f, 0xd007 ), k_eControllerType_PS3Controller, NULL }, // Thrustmaster wireless 3-1
|
||||||
|
{ MAKE_CONTROLLER_ID( 0x046d, 0xcad1 ), k_eControllerType_PS3Controller, NULL }, // Logitech Chillstream
|
||||||
//{ MAKE_CONTROLLER_ID( 0x046d, 0xc24f ), k_eControllerType_PS3Controller, NULL }, // Logitech G29 (PS3)
|
//{ MAKE_CONTROLLER_ID( 0x046d, 0xc24f ), k_eControllerType_PS3Controller, NULL }, // Logitech G29 (PS3)
|
||||||
{ MAKE_CONTROLLER_ID( 0x054c, 0x0268 ), k_eControllerType_PS3Controller, NULL }, // Sony PS3 Controller
|
{ MAKE_CONTROLLER_ID( 0x054c, 0x0268 ), k_eControllerType_PS3Controller, NULL }, // Sony PS3 Controller
|
||||||
{ MAKE_CONTROLLER_ID( 0x056e, 0x200f ), k_eControllerType_PS3Controller, NULL }, // From SDL
|
{ MAKE_CONTROLLER_ID( 0x056e, 0x200f ), k_eControllerType_PS3Controller, NULL }, // From SDL
|
||||||
@@ -157,6 +158,7 @@ static const ControllerDescription_t arrControllers[] = {
|
|||||||
{ MAKE_CONTROLLER_ID( 0x0f0d, 0x0184 ), k_eControllerType_PS5Controller, NULL }, // Hori Fighting Stick α
|
{ MAKE_CONTROLLER_ID( 0x0f0d, 0x0184 ), k_eControllerType_PS5Controller, NULL }, // Hori Fighting Stick α
|
||||||
{ MAKE_CONTROLLER_ID( 0x1532, 0x100b ), k_eControllerType_PS5Controller, NULL }, // Razer Wolverine V2 Pro (Wired)
|
{ MAKE_CONTROLLER_ID( 0x1532, 0x100b ), k_eControllerType_PS5Controller, NULL }, // Razer Wolverine V2 Pro (Wired)
|
||||||
{ MAKE_CONTROLLER_ID( 0x1532, 0x100c ), k_eControllerType_PS5Controller, NULL }, // Razer Wolverine V2 Pro (Wireless)
|
{ MAKE_CONTROLLER_ID( 0x1532, 0x100c ), k_eControllerType_PS5Controller, NULL }, // Razer Wolverine V2 Pro (Wireless)
|
||||||
|
{ MAKE_CONTROLLER_ID( 0x1532, 0x1012 ), k_eControllerType_PS5Controller, NULL }, // Razer Kitsune
|
||||||
{ MAKE_CONTROLLER_ID( 0x3285, 0x0d18 ), k_eControllerType_PS5Controller, NULL }, // NACON Revolution 5 Pro (PS5 mode with dongle)
|
{ MAKE_CONTROLLER_ID( 0x3285, 0x0d18 ), k_eControllerType_PS5Controller, NULL }, // NACON Revolution 5 Pro (PS5 mode with dongle)
|
||||||
{ MAKE_CONTROLLER_ID( 0x3285, 0x0d19 ), k_eControllerType_PS5Controller, NULL }, // NACON Revolution 5 Pro (PS5 mode wired)
|
{ MAKE_CONTROLLER_ID( 0x3285, 0x0d19 ), k_eControllerType_PS5Controller, NULL }, // NACON Revolution 5 Pro (PS5 mode wired)
|
||||||
{ MAKE_CONTROLLER_ID( 0x358a, 0x0104 ), k_eControllerType_PS5Controller, NULL }, // Backbone One PlayStation Edition for iOS
|
{ MAKE_CONTROLLER_ID( 0x358a, 0x0104 ), k_eControllerType_PS5Controller, NULL }, // Backbone One PlayStation Edition for iOS
|
||||||
@@ -593,7 +595,7 @@ static const ControllerDescription_t arrControllers[] = {
|
|||||||
{ MAKE_CONTROLLER_ID( 0x28de, 0x1102 ), k_eControllerType_SteamController, NULL }, // Valve wired Steam Controller (D0G)
|
{ MAKE_CONTROLLER_ID( 0x28de, 0x1102 ), k_eControllerType_SteamController, NULL }, // Valve wired Steam Controller (D0G)
|
||||||
{ MAKE_CONTROLLER_ID( 0x28de, 0x1105 ), k_eControllerType_SteamController, NULL }, // Valve Bluetooth Steam Controller (D0G)
|
{ MAKE_CONTROLLER_ID( 0x28de, 0x1105 ), k_eControllerType_SteamController, NULL }, // Valve Bluetooth Steam Controller (D0G)
|
||||||
{ MAKE_CONTROLLER_ID( 0x28de, 0x1106 ), k_eControllerType_SteamController, NULL }, // Valve Bluetooth Steam Controller (D0G)
|
{ MAKE_CONTROLLER_ID( 0x28de, 0x1106 ), k_eControllerType_SteamController, NULL }, // Valve Bluetooth Steam Controller (D0G)
|
||||||
{ MAKE_CONTROLLER_ID( 0x28de, 0x11ff ), k_eControllerType_UnknownNonSteamController, "Steam Virtual Gamepad" }, // Steam virtual gamepad
|
{ MAKE_CONTROLLER_ID( 0x28de, 0x11ff ), k_eControllerType_UnknownNonSteamController, NULL }, // Steam Virtual Gamepad
|
||||||
{ MAKE_CONTROLLER_ID( 0x28de, 0x1142 ), k_eControllerType_SteamController, NULL }, // Valve wireless Steam Controller
|
{ MAKE_CONTROLLER_ID( 0x28de, 0x1142 ), k_eControllerType_SteamController, NULL }, // Valve wireless Steam Controller
|
||||||
{ MAKE_CONTROLLER_ID( 0x28de, 0x1201 ), k_eControllerType_SteamControllerV2, NULL }, // Valve wired Steam Controller (HEADCRAB)
|
{ MAKE_CONTROLLER_ID( 0x28de, 0x1201 ), k_eControllerType_SteamControllerV2, NULL }, // Valve wired Steam Controller (HEADCRAB)
|
||||||
{ MAKE_CONTROLLER_ID( 0x28de, 0x1202 ), k_eControllerType_SteamControllerV2, NULL }, // Valve Bluetooth Steam Controller (HEADCRAB)
|
{ MAKE_CONTROLLER_ID( 0x28de, 0x1202 ), k_eControllerType_SteamControllerV2, NULL }, // Valve Bluetooth Steam Controller (HEADCRAB)
|
||||||
|
|||||||
@@ -584,7 +584,13 @@ static SDL_bool HIDAPI_DriverPS3ThirdParty_IsSupportedDevice(SDL_HIDAPI_Device *
|
|||||||
Uint8 data[USB_PACKET_LENGTH];
|
Uint8 data[USB_PACKET_LENGTH];
|
||||||
int size;
|
int size;
|
||||||
|
|
||||||
if (HIDAPI_SupportsPlaystationDetection(vendor_id, product_id)) {
|
if (vendor_id == USB_VENDOR_LOGITECH &&
|
||||||
|
product_id == USB_PRODUCT_LOGITECH_CHILLSTREAM) {
|
||||||
|
return SDL_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((type == SDL_CONTROLLER_TYPE_PS3 && vendor_id != USB_VENDOR_SONY) ||
|
||||||
|
HIDAPI_SupportsPlaystationDetection(vendor_id, product_id)) {
|
||||||
if (device && device->dev) {
|
if (device && device->dev) {
|
||||||
size = ReadFeatureReport(device->dev, 0x03, data, sizeof(data));
|
size = ReadFeatureReport(device->dev, 0x03, data, sizeof(data));
|
||||||
if (size == 8 && data[2] == 0x26) {
|
if (size == 8 && data[2] == 0x26) {
|
||||||
@@ -768,7 +774,7 @@ static void HIDAPI_DriverPS3ThirdParty_HandleStatePacket18(SDL_Joystick *joystic
|
|||||||
0, /* SDL_GAMEPAD_BUTTON_LEFT_STICK */
|
0, /* SDL_GAMEPAD_BUTTON_LEFT_STICK */
|
||||||
0, /* SDL_GAMEPAD_BUTTON_RIGHT_STICK */
|
0, /* SDL_GAMEPAD_BUTTON_RIGHT_STICK */
|
||||||
14, /* SDL_GAMEPAD_BUTTON_LEFT_SHOULDER */
|
14, /* SDL_GAMEPAD_BUTTON_LEFT_SHOULDER */
|
||||||
16, /* SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER */
|
15, /* SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER */
|
||||||
8, /* SDL_GAMEPAD_BUTTON_DPAD_UP */
|
8, /* SDL_GAMEPAD_BUTTON_DPAD_UP */
|
||||||
9, /* SDL_GAMEPAD_BUTTON_DPAD_DOWN */
|
9, /* SDL_GAMEPAD_BUTTON_DPAD_DOWN */
|
||||||
7, /* SDL_GAMEPAD_BUTTON_DPAD_LEFT */
|
7, /* SDL_GAMEPAD_BUTTON_DPAD_LEFT */
|
||||||
@@ -813,6 +819,13 @@ static void HIDAPI_DriverPS3ThirdParty_HandleStatePacket19(SDL_Joystick *joystic
|
|||||||
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_GUIDE, (data[1] & 0x10) ? SDL_PRESSED : SDL_RELEASED);
|
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_GUIDE, (data[1] & 0x10) ? SDL_PRESSED : SDL_RELEASED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ctx->device->vendor_id == USB_VENDOR_SAITEK && ctx->device->product_id == USB_PRODUCT_SAITEK_CYBORG_V3) {
|
||||||
|
/* Cyborg V.3 Rumble Pad doesn't set the dpad bits as expected, so use the axes instead */
|
||||||
|
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_DPAD_DOWN, data[10] ? SDL_PRESSED : SDL_RELEASED);
|
||||||
|
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_DPAD_UP, data[9] ? SDL_PRESSED : SDL_RELEASED);
|
||||||
|
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_DPAD_RIGHT, data[7] ? SDL_PRESSED : SDL_RELEASED);
|
||||||
|
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_DPAD_LEFT, data[8] ? SDL_PRESSED : SDL_RELEASED);
|
||||||
|
} else {
|
||||||
if (ctx->last_state[2] != data[2]) {
|
if (ctx->last_state[2] != data[2]) {
|
||||||
SDL_bool dpad_up = SDL_FALSE;
|
SDL_bool dpad_up = SDL_FALSE;
|
||||||
SDL_bool dpad_down = SDL_FALSE;
|
SDL_bool dpad_down = SDL_FALSE;
|
||||||
@@ -856,6 +869,7 @@ static void HIDAPI_DriverPS3ThirdParty_HandleStatePacket19(SDL_Joystick *joystic
|
|||||||
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_DPAD_RIGHT, dpad_right);
|
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_DPAD_RIGHT, dpad_right);
|
||||||
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_DPAD_LEFT, dpad_left);
|
SDL_PrivateJoystickButton(joystick, SDL_CONTROLLER_BUTTON_DPAD_LEFT, dpad_left);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
axis = ((int)data[17] * 257) - 32768;
|
axis = ((int)data[17] * 257) - 32768;
|
||||||
SDL_PrivateJoystickAxis(joystick, SDL_CONTROLLER_AXIS_TRIGGERLEFT, axis);
|
SDL_PrivateJoystickAxis(joystick, SDL_CONTROLLER_AXIS_TRIGGERLEFT, axis);
|
||||||
|
|||||||
@@ -499,6 +499,12 @@ static SDL_bool HIDAPI_DriverPS5_InitDevice(SDL_HIDAPI_Device *device)
|
|||||||
ctx->sensors_supported = SDL_TRUE;
|
ctx->sensors_supported = SDL_TRUE;
|
||||||
ctx->touchpad_supported = SDL_TRUE;
|
ctx->touchpad_supported = SDL_TRUE;
|
||||||
ctx->use_alternate_report = SDL_TRUE;
|
ctx->use_alternate_report = SDL_TRUE;
|
||||||
|
} else if (device->vendor_id == USB_VENDOR_RAZER &&
|
||||||
|
device->product_id == USB_PRODUCT_RAZER_KITSUNE) {
|
||||||
|
/* The Razer Kitsune doesn't respond to the detection protocol, but has a touchpad */
|
||||||
|
joystick_type = SDL_JOYSTICK_TYPE_ARCADE_STICK;
|
||||||
|
ctx->touchpad_supported = SDL_TRUE;
|
||||||
|
ctx->use_alternate_report = SDL_TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ctx->effects_supported = (ctx->lightbar_supported || ctx->vibration_supported || ctx->playerled_supported);
|
ctx->effects_supported = (ctx->lightbar_supported || ctx->vibration_supported || ctx->playerled_supported);
|
||||||
|
|||||||
@@ -758,7 +758,18 @@ static Uint8 GetDefaultInputMode(SDL_DriverSwitch_Context *ctx)
|
|||||||
* battery level over Bluetooth anyway.
|
* battery level over Bluetooth anyway.
|
||||||
*/
|
*/
|
||||||
if (ctx->device->vendor_id == USB_VENDOR_NINTENDO) {
|
if (ctx->device->vendor_id == USB_VENDOR_NINTENDO) {
|
||||||
|
/* However, switching to full controller state breaks DirectInput, so let's not do that */
|
||||||
|
#if 0
|
||||||
input_mode = k_eSwitchInputReportIDs_FullControllerState;
|
input_mode = k_eSwitchInputReportIDs_FullControllerState;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* However, Joy-Con controllers switch their thumbsticks into D-pad mode in simple mode,
|
||||||
|
* so let's enable full controller state for them.
|
||||||
|
*/
|
||||||
|
if (ctx->device->product_id == USB_PRODUCT_NINTENDO_SWITCH_JOYCON_LEFT ||
|
||||||
|
ctx->device->product_id == USB_PRODUCT_NINTENDO_SWITCH_JOYCON_RIGHT) {
|
||||||
|
input_mode = k_eSwitchInputReportIDs_FullControllerState;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return input_mode;
|
return input_mode;
|
||||||
}
|
}
|
||||||
@@ -1292,6 +1303,27 @@ static void UpdateDeviceIdentity(SDL_HIDAPI_Device *device)
|
|||||||
break;
|
break;
|
||||||
case k_eSwitchDeviceInfoControllerType_Unknown:
|
case k_eSwitchDeviceInfoControllerType_Unknown:
|
||||||
/* We couldn't read the device info for this controller, might not be fully compliant */
|
/* We couldn't read the device info for this controller, might not be fully compliant */
|
||||||
|
if (device->vendor_id == USB_VENDOR_NINTENDO) {
|
||||||
|
switch (device->product_id) {
|
||||||
|
case USB_PRODUCT_NINTENDO_SWITCH_JOYCON_LEFT:
|
||||||
|
ctx->m_eControllerType = k_eSwitchDeviceInfoControllerType_JoyConLeft;
|
||||||
|
HIDAPI_SetDeviceName(device, "Nintendo Switch Joy-Con (L)");
|
||||||
|
device->type = SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT;
|
||||||
|
break;
|
||||||
|
case USB_PRODUCT_NINTENDO_SWITCH_JOYCON_RIGHT:
|
||||||
|
ctx->m_eControllerType = k_eSwitchDeviceInfoControllerType_JoyConRight;
|
||||||
|
HIDAPI_SetDeviceName(device, "Nintendo Switch Joy-Con (R)");
|
||||||
|
device->type = SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT;
|
||||||
|
break;
|
||||||
|
case USB_PRODUCT_NINTENDO_SWITCH_PRO:
|
||||||
|
ctx->m_eControllerType = k_eSwitchDeviceInfoControllerType_ProController;
|
||||||
|
HIDAPI_SetDeviceName(device, "Nintendo Switch Pro Controller");
|
||||||
|
device->type = SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
device->type = SDL_CONTROLLER_TYPE_UNKNOWN;
|
device->type = SDL_CONTROLLER_TYPE_UNKNOWN;
|
||||||
@@ -2211,6 +2243,10 @@ static SDL_bool HIDAPI_DriverSwitch_UpdateDevice(SDL_HIDAPI_Device *device)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ctx->m_rgucReadBuffer[0] == k_eSwitchInputReportIDs_SubcommandReply) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (ctx->m_bInputOnly) {
|
if (ctx->m_bInputOnly) {
|
||||||
HandleInputOnlyControllerState(joystick, ctx, (SwitchInputOnlyControllerStatePacket_t *)&ctx->m_rgucReadBuffer[0]);
|
HandleInputOnlyControllerState(joystick, ctx, (SwitchInputOnlyControllerStatePacket_t *)&ctx->m_rgucReadBuffer[0]);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -157,17 +157,17 @@ SDL_bool HIDAPI_SupportsPlaystationDetection(Uint16 vendor, Uint16 product)
|
|||||||
case USB_VENDOR_HORI:
|
case USB_VENDOR_HORI:
|
||||||
return SDL_TRUE;
|
return SDL_TRUE;
|
||||||
case USB_VENDOR_LOGITECH:
|
case USB_VENDOR_LOGITECH:
|
||||||
/* Most Logitech devices are fine with this, but there are a few exceptions */
|
/* Most Logitech devices are not PlayStation controllers, and some of them
|
||||||
if (product == USB_PRODUCT_LOGITECH_F310) {
|
* lock up or reset when we send them the Sony third-party query feature
|
||||||
/* The Logitech F310 gamepad will lock up */
|
* report, so don't include that vendor here. Instead add devices as
|
||||||
|
* appropriate to controller_list.h
|
||||||
|
*/
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
}
|
|
||||||
if (product == 0xc33f) {
|
|
||||||
/* The Logitech G815 keyboard will reset the LEDs */
|
|
||||||
return SDL_FALSE;
|
|
||||||
}
|
|
||||||
return SDL_TRUE;
|
|
||||||
case USB_VENDOR_MADCATZ:
|
case USB_VENDOR_MADCATZ:
|
||||||
|
if (product == USB_PRODUCT_MADCATZ_SAITEK_SIDE_PANEL_CONTROL_DECK) {
|
||||||
|
/* This is not a Playstation compatible device */
|
||||||
|
return SDL_FALSE;
|
||||||
|
}
|
||||||
return SDL_TRUE;
|
return SDL_TRUE;
|
||||||
case USB_VENDOR_MAYFLASH:
|
case USB_VENDOR_MAYFLASH:
|
||||||
return SDL_TRUE;
|
return SDL_TRUE;
|
||||||
@@ -183,10 +183,10 @@ SDL_bool HIDAPI_SupportsPlaystationDetection(Uint16 vendor, Uint16 product)
|
|||||||
case USB_VENDOR_QANBA:
|
case USB_VENDOR_QANBA:
|
||||||
return SDL_TRUE;
|
return SDL_TRUE;
|
||||||
case USB_VENDOR_RAZER:
|
case USB_VENDOR_RAZER:
|
||||||
/* Most Razer devices are not game controllers, and some of them lock up
|
/* Most Razer devices are not PlayStation controllers, and some of them
|
||||||
* or reset when we send them the Sony third-party query feature report,
|
* lock up or reset when we send them the Sony third-party query feature
|
||||||
* so don't include that vendor here. Instead add devices as appropriate
|
* report, so don't include that vendor here. Instead add devices as
|
||||||
* to controller_type.c
|
* appropriate to controller_list.h
|
||||||
*
|
*
|
||||||
* Reference: https://github.com/libsdl-org/SDL/issues/6733
|
* Reference: https://github.com/libsdl-org/SDL/issues/6733
|
||||||
* https://github.com/libsdl-org/SDL/issues/6799
|
* https://github.com/libsdl-org/SDL/issues/6799
|
||||||
@@ -280,6 +280,7 @@ static SDL_GameControllerType SDL_GetJoystickGameControllerProtocol(const char *
|
|||||||
0x044f, /* Thrustmaster */
|
0x044f, /* Thrustmaster */
|
||||||
0x045e, /* Microsoft */
|
0x045e, /* Microsoft */
|
||||||
0x0738, /* Mad Catz */
|
0x0738, /* Mad Catz */
|
||||||
|
0x0b05, /* ASUS */
|
||||||
0x0e6f, /* PDP */
|
0x0e6f, /* PDP */
|
||||||
0x0f0d, /* Hori */
|
0x0f0d, /* Hori */
|
||||||
0x10f5, /* Turtle Beach */
|
0x10f5, /* Turtle Beach */
|
||||||
|
|||||||
@@ -47,7 +47,14 @@
|
|||||||
#define SDL_JOYSTICK_HIDAPI_SHIELD
|
#define SDL_JOYSTICK_HIDAPI_SHIELD
|
||||||
|
|
||||||
/* Whether HIDAPI is enabled by default */
|
/* Whether HIDAPI is enabled by default */
|
||||||
|
#if defined(__ANDROID__) || \
|
||||||
|
defined(__IPHONEOS__) || \
|
||||||
|
defined(__TVOS__)
|
||||||
|
/* On Android, HIDAPI prompts for permissions and acquires exclusive access to the device, and on Apple mobile platforms it doesn't do anything except for handling Bluetooth Steam Controllers, so we'll leave it off by default. */
|
||||||
|
#define SDL_HIDAPI_DEFAULT SDL_FALSE
|
||||||
|
#else
|
||||||
#define SDL_HIDAPI_DEFAULT SDL_TRUE
|
#define SDL_HIDAPI_DEFAULT SDL_TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/* The maximum size of a USB packet for HID devices */
|
/* The maximum size of a USB packet for HID devices */
|
||||||
#define USB_PACKET_LENGTH 64
|
#define USB_PACKET_LENGTH 64
|
||||||
|
|||||||
@@ -247,6 +247,7 @@ static void CheckControllerSiriRemote(GCController *controller, int *is_siri_rem
|
|||||||
*is_siri_remote = 0;
|
*is_siri_remote = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_PHYSICAL_INPUT_PROFILE
|
||||||
static BOOL ElementAlreadyHandled(SDL_JoystickDeviceItem *device, NSString *element, NSDictionary<NSString *, GCControllerElement *> *elements)
|
static BOOL ElementAlreadyHandled(SDL_JoystickDeviceItem *device, NSString *element, NSDictionary<NSString *, GCControllerElement *> *elements)
|
||||||
{
|
{
|
||||||
if ([element isEqualToString:@"Left Thumbstick Left"] ||
|
if ([element isEqualToString:@"Left Thumbstick Left"] ||
|
||||||
@@ -345,6 +346,7 @@ static BOOL ElementAlreadyHandled(SDL_JoystickDeviceItem *device, NSString *elem
|
|||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
#endif /* ENABLE_PHYSICAL_INPUT_PROFILE */
|
||||||
|
|
||||||
static BOOL IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCController *controller)
|
static BOOL IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCController *controller)
|
||||||
{
|
{
|
||||||
@@ -378,6 +380,7 @@ static BOOL IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle
|
|||||||
NSLog(@"Product name: %@\n", controller.vendorName);
|
NSLog(@"Product name: %@\n", controller.vendorName);
|
||||||
NSLog(@"Product category: %@\n", controller.productCategory);
|
NSLog(@"Product category: %@\n", controller.productCategory);
|
||||||
NSLog(@"Elements available:\n");
|
NSLog(@"Elements available:\n");
|
||||||
|
#ifdef ENABLE_PHYSICAL_INPUT_PROFILE
|
||||||
if (@available(macOS 10.16, iOS 14.0, tvOS 14.0, *)) {
|
if (@available(macOS 10.16, iOS 14.0, tvOS 14.0, *)) {
|
||||||
NSDictionary<NSString *, GCControllerElement *> *elements = controller.physicalInputProfile.elements;
|
NSDictionary<NSString *, GCControllerElement *> *elements = controller.physicalInputProfile.elements;
|
||||||
for (id key in controller.physicalInputProfile.buttons) {
|
for (id key in controller.physicalInputProfile.buttons) {
|
||||||
@@ -390,6 +393,7 @@ static BOOL IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle
|
|||||||
NSLog(@"\tHat: %@\n", key);
|
NSLog(@"\tHat: %@\n", key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
device->is_xbox = IsControllerXbox(controller);
|
device->is_xbox = IsControllerXbox(controller);
|
||||||
@@ -506,7 +510,7 @@ static BOOL IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle
|
|||||||
NSDictionary<NSString *, GCControllerElement *> *elements = controller.physicalInputProfile.elements;
|
NSDictionary<NSString *, GCControllerElement *> *elements = controller.physicalInputProfile.elements;
|
||||||
|
|
||||||
/* Provide both axes and analog buttons as SDL axes */
|
/* Provide both axes and analog buttons as SDL axes */
|
||||||
device->axes = [[[elements allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]
|
NSArray *axes = [[[elements allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]
|
||||||
filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {
|
filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {
|
||||||
GCControllerElement *element;
|
GCControllerElement *element;
|
||||||
|
|
||||||
@@ -523,8 +527,7 @@ static BOOL IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle
|
|||||||
}
|
}
|
||||||
return NO;
|
return NO;
|
||||||
}]];
|
}]];
|
||||||
device->naxes = (int)device->axes.count;
|
NSArray *buttons = [[[elements allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]
|
||||||
device->buttons = [[[elements allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]
|
|
||||||
filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {
|
filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {
|
||||||
GCControllerElement *element;
|
GCControllerElement *element;
|
||||||
|
|
||||||
@@ -538,7 +541,12 @@ static BOOL IOS_AddMFIJoystickDevice(SDL_JoystickDeviceItem *device, GCControlle
|
|||||||
}
|
}
|
||||||
return NO;
|
return NO;
|
||||||
}]];
|
}]];
|
||||||
device->nbuttons = (int)device->buttons.count;
|
/* Explicitly retain the arrays because SDL_JoystickDeviceItem is a
|
||||||
|
* struct, and ARC doesn't work with structs. */
|
||||||
|
device->naxes = (int)axes.count;
|
||||||
|
device->axes = (__bridge NSArray *)CFBridgingRetain(axes);
|
||||||
|
device->nbuttons = (int)buttons.count;
|
||||||
|
device->buttons = (__bridge NSArray *)CFBridgingRetain(buttons);
|
||||||
subtype = 4;
|
subtype = 4;
|
||||||
|
|
||||||
#ifdef DEBUG_CONTROLLER_PROFILE
|
#ifdef DEBUG_CONTROLLER_PROFILE
|
||||||
@@ -775,13 +783,20 @@ static SDL_JoystickDeviceItem *IOS_RemoveJoystickDevice(SDL_JoystickDeviceItem *
|
|||||||
|
|
||||||
#ifdef SDL_JOYSTICK_MFI
|
#ifdef SDL_JOYSTICK_MFI
|
||||||
@autoreleasepool {
|
@autoreleasepool {
|
||||||
|
/* These were explicitly retained in the struct, so they should be explicitly released before freeing the struct. */
|
||||||
if (device->controller) {
|
if (device->controller) {
|
||||||
/* The controller was explicitly retained in the struct, so it
|
|
||||||
* should be explicitly released before freeing the struct. */
|
|
||||||
GCController *controller = CFBridgingRelease((__bridge CFTypeRef)(device->controller));
|
GCController *controller = CFBridgingRelease((__bridge CFTypeRef)(device->controller));
|
||||||
controller.controllerPausedHandler = nil;
|
controller.controllerPausedHandler = nil;
|
||||||
device->controller = nil;
|
device->controller = nil;
|
||||||
}
|
}
|
||||||
|
if (device->axes) {
|
||||||
|
CFRelease((__bridge CFTypeRef)device->axes);
|
||||||
|
device->axes = nil;
|
||||||
|
}
|
||||||
|
if (device->buttons) {
|
||||||
|
CFRelease((__bridge CFTypeRef)device->buttons);
|
||||||
|
device->buttons = nil;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif /* SDL_JOYSTICK_MFI */
|
#endif /* SDL_JOYSTICK_MFI */
|
||||||
|
|
||||||
@@ -1109,7 +1124,7 @@ static void IOS_MFIJoystickUpdate(SDL_Joystick *joystick)
|
|||||||
Uint8 hatstate = SDL_HAT_CENTERED;
|
Uint8 hatstate = SDL_HAT_CENTERED;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
#ifdef DEBUG_CONTROLLER_STATE
|
#if defined(DEBUG_CONTROLLER_STATE) && defined(ENABLE_PHYSICAL_INPUT_PROFILE)
|
||||||
if (@available(macOS 10.16, iOS 14.0, tvOS 14.0, *)) {
|
if (@available(macOS 10.16, iOS 14.0, tvOS 14.0, *)) {
|
||||||
if (controller.physicalInputProfile) {
|
if (controller.physicalInputProfile) {
|
||||||
for (id key in controller.physicalInputProfile.buttons) {
|
for (id key in controller.physicalInputProfile.buttons) {
|
||||||
@@ -1136,6 +1151,7 @@ static void IOS_MFIJoystickUpdate(SDL_Joystick *joystick)
|
|||||||
}
|
}
|
||||||
#endif /* DEBUG_CONTROLLER_STATE */
|
#endif /* DEBUG_CONTROLLER_STATE */
|
||||||
|
|
||||||
|
#ifdef ENABLE_PHYSICAL_INPUT_PROFILE
|
||||||
if (@available(macOS 10.16, iOS 14.0, tvOS 14.0, *)) {
|
if (@available(macOS 10.16, iOS 14.0, tvOS 14.0, *)) {
|
||||||
NSDictionary<NSString *, GCControllerElement *> *elements = controller.physicalInputProfile.elements;
|
NSDictionary<NSString *, GCControllerElement *> *elements = controller.physicalInputProfile.elements;
|
||||||
NSDictionary<NSString *, GCControllerButtonInput *> *buttons = controller.physicalInputProfile.buttons;
|
NSDictionary<NSString *, GCControllerButtonInput *> *buttons = controller.physicalInputProfile.buttons;
|
||||||
@@ -1162,7 +1178,9 @@ static void IOS_MFIJoystickUpdate(SDL_Joystick *joystick)
|
|||||||
}
|
}
|
||||||
SDL_PrivateJoystickButton(joystick, button++, value);
|
SDL_PrivateJoystickButton(joystick, button++, value);
|
||||||
}
|
}
|
||||||
} else if (controller.extendedGamepad) {
|
} else
|
||||||
|
#endif
|
||||||
|
if (controller.extendedGamepad) {
|
||||||
SDL_bool isstack;
|
SDL_bool isstack;
|
||||||
GCExtendedGamepad *gamepad = controller.extendedGamepad;
|
GCExtendedGamepad *gamepad = controller.extendedGamepad;
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,8 @@
|
|||||||
#include "SDL_stdinc.h"
|
#include "SDL_stdinc.h"
|
||||||
#include "../SDL_sysjoystick.h"
|
#include "../SDL_sysjoystick.h"
|
||||||
|
|
||||||
#include <CoreFoundation/CoreFoundation.h>
|
#import <CoreFoundation/CoreFoundation.h>
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
@class GCController;
|
@class GCController;
|
||||||
|
|
||||||
@@ -59,8 +60,8 @@ typedef struct joystick_hwdata
|
|||||||
SDL_bool is_backbone_one;
|
SDL_bool is_backbone_one;
|
||||||
int is_siri_remote;
|
int is_siri_remote;
|
||||||
|
|
||||||
NSArray *axes;
|
NSArray __unsafe_unretained *axes;
|
||||||
NSArray *buttons;
|
NSArray __unsafe_unretained *buttons;
|
||||||
|
|
||||||
SDL_bool has_dualshock_touchpad;
|
SDL_bool has_dualshock_touchpad;
|
||||||
SDL_bool has_xbox_paddles;
|
SDL_bool has_xbox_paddles;
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ static int GuessIsSensor(int fd)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int IsJoystick(const char *path, int fd, char **name_return, Uint16 *vendor_return, Uint16 *product_return, SDL_JoystickGUID *guid)
|
static int IsJoystick(const char *path, int *fd, char **name_return, Uint16 *vendor_return, Uint16 *product_return, SDL_JoystickGUID *guid)
|
||||||
{
|
{
|
||||||
struct input_id inpid;
|
struct input_id inpid;
|
||||||
char *name;
|
char *name;
|
||||||
@@ -282,21 +282,32 @@ static int IsJoystick(const char *path, int fd, char **name_return, Uint16 *vend
|
|||||||
|
|
||||||
SDL_zero(inpid);
|
SDL_zero(inpid);
|
||||||
#ifdef SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
SDL_UDEV_GetProductInfo(path, &inpid.vendor, &inpid.product, &inpid.version, &class);
|
/* Opening input devices can generate synchronous device I/O, so avoid it if we can */
|
||||||
|
if (SDL_UDEV_GetProductInfo(path, &inpid.vendor, &inpid.product, &inpid.version, &class) &&
|
||||||
|
!(class & SDL_UDEV_DEVICE_JOYSTICK)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
if (ioctl(fd, JSIOCGNAME(sizeof(product_string)), product_string) <= 0) {
|
|
||||||
/* When udev is enabled we only get joystick devices here, so there's no need to test them */
|
if (fd && *fd < 0) {
|
||||||
if (enumeration_method != ENUMERATION_LIBUDEV &&
|
*fd = open(path, O_RDONLY | O_CLOEXEC, 0);
|
||||||
!(class & SDL_UDEV_DEVICE_JOYSTICK) && ( class || !GuessIsJoystick(fd))) {
|
}
|
||||||
|
if (!fd || *fd < 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ioctl(*fd, JSIOCGNAME(sizeof(product_string)), product_string) <= 0) {
|
||||||
|
/* When udev enumeration or classification, we only got joysticks here, so no need to test */
|
||||||
|
if (enumeration_method != ENUMERATION_LIBUDEV && !class && !GuessIsJoystick(*fd)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Could have vendor and product already from udev, but should agree with evdev */
|
/* Could have vendor and product already from udev, but should agree with evdev */
|
||||||
if (ioctl(fd, EVIOCGID, &inpid) < 0) {
|
if (ioctl(*fd, EVIOCGID, &inpid) < 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ioctl(fd, EVIOCGNAME(sizeof(product_string)), product_string) < 0) {
|
if (ioctl(*fd, EVIOCGNAME(sizeof(product_string)), product_string) < 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -315,7 +326,7 @@ static int IsJoystick(const char *path, int fd, char **name_return, Uint16 *vend
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
FixupDeviceInfoForMapping(fd, &inpid);
|
FixupDeviceInfoForMapping(*fd, &inpid);
|
||||||
|
|
||||||
#ifdef DEBUG_JOYSTICK
|
#ifdef DEBUG_JOYSTICK
|
||||||
SDL_Log("Joystick: %s, bustype = %d, vendor = 0x%.4x, product = 0x%.4x, version = %d\n", name, inpid.bustype, inpid.vendor, inpid.product, inpid.version);
|
SDL_Log("Joystick: %s, bustype = %d, vendor = 0x%.4x, product = 0x%.4x, version = %d\n", name, inpid.bustype, inpid.vendor, inpid.product, inpid.version);
|
||||||
@@ -333,11 +344,32 @@ static int IsJoystick(const char *path, int fd, char **name_return, Uint16 *vend
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int IsSensor(const char *path, int fd)
|
static int IsSensor(const char *path, int *fd)
|
||||||
{
|
{
|
||||||
struct input_id inpid;
|
struct input_id inpid;
|
||||||
|
int class = 0;
|
||||||
|
|
||||||
if (ioctl(fd, EVIOCGID, &inpid) < 0) {
|
SDL_zero(inpid);
|
||||||
|
#ifdef SDL_USE_LIBUDEV
|
||||||
|
/* Opening input devices can generate synchronous device I/O, so avoid it if we can */
|
||||||
|
if (SDL_UDEV_GetProductInfo(path, &inpid.vendor, &inpid.product, &inpid.version, &class) &&
|
||||||
|
!(class & SDL_UDEV_DEVICE_ACCELEROMETER)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (fd && *fd < 0) {
|
||||||
|
*fd = open(path, O_RDONLY | O_CLOEXEC, 0);
|
||||||
|
}
|
||||||
|
if (!fd || *fd < 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!class && !GuessIsSensor(*fd)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ioctl(*fd, EVIOCGID, &inpid) < 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -347,7 +379,7 @@ static int IsSensor(const char *path, int fd)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return GuessIsSensor(fd);
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SDL_USE_LIBUDEV
|
#ifdef SDL_USE_LIBUDEV
|
||||||
@@ -434,16 +466,11 @@ static void MaybeAddDevice(const char *path)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fd = open(path, O_RDONLY | O_CLOEXEC, 0);
|
|
||||||
if (fd < 0) {
|
|
||||||
goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef DEBUG_INPUT_EVENTS
|
#ifdef DEBUG_INPUT_EVENTS
|
||||||
SDL_Log("Checking %s\n", path);
|
SDL_Log("Checking %s\n", path);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (IsJoystick(path, fd, &name, &vendor, &product, &guid)) {
|
if (IsJoystick(path, &fd, &name, &vendor, &product, &guid)) {
|
||||||
#ifdef DEBUG_INPUT_EVENTS
|
#ifdef DEBUG_INPUT_EVENTS
|
||||||
SDL_Log("found joystick: %s\n", path);
|
SDL_Log("found joystick: %s\n", path);
|
||||||
#endif
|
#endif
|
||||||
@@ -484,7 +511,7 @@ static void MaybeAddDevice(const char *path)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsSensor(path, fd)) {
|
if (IsSensor(path, &fd)) {
|
||||||
#ifdef DEBUG_INPUT_EVENTS
|
#ifdef DEBUG_INPUT_EVENTS
|
||||||
SDL_Log("found sensor: %s\n", path);
|
SDL_Log("found sensor: %s\n", path);
|
||||||
#endif
|
#endif
|
||||||
@@ -880,11 +907,24 @@ static void LINUX_ScanSteamVirtualGamepads(void)
|
|||||||
int num_virtual_gamepads = 0;
|
int num_virtual_gamepads = 0;
|
||||||
int virtual_gamepad_slot;
|
int virtual_gamepad_slot;
|
||||||
VirtualGamepadEntry *virtual_gamepads = NULL;
|
VirtualGamepadEntry *virtual_gamepads = NULL;
|
||||||
|
#ifdef SDL_USE_LIBUDEV
|
||||||
|
int class;
|
||||||
|
#endif
|
||||||
|
|
||||||
count = scandir("/dev/input", &entries, filter_entries, NULL);
|
count = scandir("/dev/input", &entries, filter_entries, NULL);
|
||||||
for (i = 0; i < count; ++i) {
|
for (i = 0; i < count; ++i) {
|
||||||
(void)SDL_snprintf(path, SDL_arraysize(path), "/dev/input/%s", entries[i]->d_name);
|
(void)SDL_snprintf(path, SDL_arraysize(path), "/dev/input/%s", entries[i]->d_name);
|
||||||
|
|
||||||
|
#ifdef SDL_USE_LIBUDEV
|
||||||
|
/* Opening input devices can generate synchronous device I/O, so avoid it if we can */
|
||||||
|
class = 0;
|
||||||
|
SDL_zero(inpid);
|
||||||
|
if (SDL_UDEV_GetProductInfo(path, &inpid.vendor, &inpid.product, &inpid.version, &class) &&
|
||||||
|
(inpid.vendor != USB_VENDOR_VALVE || inpid.product != USB_PRODUCT_STEAM_VIRTUAL_GAMEPAD)) {
|
||||||
|
free(entries[i]); /* This should NOT be SDL_free() */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
fd = open(path, O_RDONLY | O_CLOEXEC, 0);
|
fd = open(path, O_RDONLY | O_CLOEXEC, 0);
|
||||||
if (fd >= 0) {
|
if (fd >= 0) {
|
||||||
if (ioctl(fd, EVIOCGID, &inpid) == 0 &&
|
if (ioctl(fd, EVIOCGID, &inpid) == 0 &&
|
||||||
@@ -986,6 +1026,9 @@ static void LINUX_JoystickDetect(void)
|
|||||||
static int LINUX_JoystickInit(void)
|
static int LINUX_JoystickInit(void)
|
||||||
{
|
{
|
||||||
const char *devices = SDL_GetHint(SDL_HINT_JOYSTICK_DEVICE);
|
const char *devices = SDL_GetHint(SDL_HINT_JOYSTICK_DEVICE);
|
||||||
|
#ifdef SDL_USE_LIBUDEV
|
||||||
|
int udev_status = SDL_UDEV_Init();
|
||||||
|
#endif
|
||||||
|
|
||||||
SDL_classic_joysticks = SDL_GetHintBoolean(SDL_HINT_LINUX_JOYSTICK_CLASSIC, SDL_FALSE);
|
SDL_classic_joysticks = SDL_GetHintBoolean(SDL_HINT_LINUX_JOYSTICK_CLASSIC, SDL_FALSE);
|
||||||
|
|
||||||
@@ -1036,10 +1079,7 @@ static int LINUX_JoystickInit(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (enumeration_method == ENUMERATION_LIBUDEV) {
|
if (enumeration_method == ENUMERATION_LIBUDEV) {
|
||||||
if (SDL_UDEV_Init() < 0) {
|
if (udev_status == 0) {
|
||||||
return SDL_SetError("Could not initialize UDEV");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set up the udev callback */
|
/* Set up the udev callback */
|
||||||
if (SDL_UDEV_AddCallback(joystick_udev_callback) < 0) {
|
if (SDL_UDEV_AddCallback(joystick_udev_callback) < 0) {
|
||||||
SDL_UDEV_Quit();
|
SDL_UDEV_Quit();
|
||||||
@@ -1048,9 +1088,15 @@ static int LINUX_JoystickInit(void)
|
|||||||
|
|
||||||
/* Force a scan to build the initial device list */
|
/* Force a scan to build the initial device list */
|
||||||
SDL_UDEV_Scan();
|
SDL_UDEV_Scan();
|
||||||
} else
|
} else {
|
||||||
|
SDL_LogDebug(SDL_LOG_CATEGORY_INPUT,
|
||||||
|
"udev init failed, disabling udev integration");
|
||||||
|
enumeration_method = ENUMERATION_FALLBACK;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
{
|
|
||||||
|
if (enumeration_method != ENUMERATION_LIBUDEV) {
|
||||||
#if defined(HAVE_INOTIFY)
|
#if defined(HAVE_INOTIFY)
|
||||||
inotify_fd = SDL_inotify_init1();
|
inotify_fd = SDL_inotify_init1();
|
||||||
|
|
||||||
|
|||||||
@@ -96,6 +96,9 @@ static int PSP_JoystickInit(void)
|
|||||||
analog_map[127 - i] = -1 * analog_map[i + 128];
|
analog_map[127 - i] = -1 * analog_map[i + 128];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Fire off a joystick add event */
|
||||||
|
SDL_PrivateJoystickAdded(0);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,7 +213,9 @@ static void PSP_JoystickUpdate(SDL_Joystick *joystick)
|
|||||||
static enum PspCtrlButtons old_buttons = 0;
|
static enum PspCtrlButtons old_buttons = 0;
|
||||||
static unsigned char old_x = 0, old_y = 0;
|
static unsigned char old_x = 0, old_y = 0;
|
||||||
|
|
||||||
sceCtrlReadBufferPositive(&pad, 1);
|
if (sceCtrlPeekBufferPositive(&pad, 1) <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
buttons = pad.Buttons;
|
buttons = pad.Buttons;
|
||||||
x = pad.Lx;
|
x = pad.Lx;
|
||||||
y = pad.Ly;
|
y = pad.Ly;
|
||||||
|
|||||||
@@ -35,6 +35,15 @@ def find_element(prefix, bindings):
|
|||||||
|
|
||||||
return -1
|
return -1
|
||||||
|
|
||||||
|
def get_crc_from_entry(entry):
|
||||||
|
crc = ""
|
||||||
|
line = "".join(entry)
|
||||||
|
bindings = line.split(",")
|
||||||
|
pos = find_element("crc:", bindings)
|
||||||
|
if pos >= 0:
|
||||||
|
crc = bindings[pos][4:]
|
||||||
|
return crc
|
||||||
|
|
||||||
def save_controller(line):
|
def save_controller(line):
|
||||||
global controllers
|
global controllers
|
||||||
match = split_pattern.match(line)
|
match = split_pattern.match(line)
|
||||||
@@ -85,7 +94,7 @@ def save_controller(line):
|
|||||||
entry.append(match.group(5))
|
entry.append(match.group(5))
|
||||||
controllers.append(entry)
|
controllers.append(entry)
|
||||||
|
|
||||||
entry_id = entry[1] + entry[3]
|
entry_id = entry[1] + get_crc_from_entry(entry)
|
||||||
if ',sdk' in line or ',hint:' in line:
|
if ',sdk' in line or ',hint:' in line:
|
||||||
conditionals.append(entry_id)
|
conditionals.append(entry_id)
|
||||||
|
|
||||||
@@ -94,7 +103,7 @@ def write_controllers():
|
|||||||
global controller_guids
|
global controller_guids
|
||||||
# Check for duplicates
|
# Check for duplicates
|
||||||
for entry in controllers:
|
for entry in controllers:
|
||||||
entry_id = entry[1] + entry[3]
|
entry_id = entry[1] + get_crc_from_entry(entry)
|
||||||
if (entry_id in controller_guids and entry_id not in conditionals):
|
if (entry_id in controller_guids and entry_id not in conditionals):
|
||||||
current_name = entry[2]
|
current_name = entry[2]
|
||||||
existing_name = controller_guids[entry_id][2]
|
existing_name = controller_guids[entry_id][2]
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
#define USB_VENDOR_AMAZON 0x1949
|
#define USB_VENDOR_AMAZON 0x1949
|
||||||
#define USB_VENDOR_APPLE 0x05ac
|
#define USB_VENDOR_APPLE 0x05ac
|
||||||
#define USB_VENDOR_ASTRO 0x9886
|
#define USB_VENDOR_ASTRO 0x9886
|
||||||
|
#define USB_VENDOR_ASUS 0x0b05
|
||||||
#define USB_VENDOR_BACKBONE 0x358a
|
#define USB_VENDOR_BACKBONE 0x358a
|
||||||
#define USB_VENDOR_GAMESIR 0x3537
|
#define USB_VENDOR_GAMESIR 0x3537
|
||||||
#define USB_VENDOR_DRAGONRISE 0x0079
|
#define USB_VENDOR_DRAGONRISE 0x0079
|
||||||
@@ -47,6 +48,7 @@
|
|||||||
#define USB_VENDOR_POWERA_ALT 0x20d6
|
#define USB_VENDOR_POWERA_ALT 0x20d6
|
||||||
#define USB_VENDOR_QANBA 0x2c22
|
#define USB_VENDOR_QANBA 0x2c22
|
||||||
#define USB_VENDOR_RAZER 0x1532
|
#define USB_VENDOR_RAZER 0x1532
|
||||||
|
#define USB_VENDOR_SAITEK 0x06a3
|
||||||
#define USB_VENDOR_SHANWAN 0x2563
|
#define USB_VENDOR_SHANWAN 0x2563
|
||||||
#define USB_VENDOR_SHANWAN_ALT 0x20bc
|
#define USB_VENDOR_SHANWAN_ALT 0x20bc
|
||||||
#define USB_VENDOR_SONY 0x054c
|
#define USB_VENDOR_SONY 0x054c
|
||||||
@@ -71,6 +73,7 @@
|
|||||||
#define USB_PRODUCT_HORI_FIGHTING_STICK_ALPHA_PS5 0x0184
|
#define USB_PRODUCT_HORI_FIGHTING_STICK_ALPHA_PS5 0x0184
|
||||||
#define USB_PRODUCT_LOGITECH_F310 0xc216
|
#define USB_PRODUCT_LOGITECH_F310 0xc216
|
||||||
#define USB_PRODUCT_LOGITECH_CHILLSTREAM 0xcad1
|
#define USB_PRODUCT_LOGITECH_CHILLSTREAM 0xcad1
|
||||||
|
#define USB_PRODUCT_MADCATZ_SAITEK_SIDE_PANEL_CONTROL_DECK 0x2218
|
||||||
#define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS4_WIRELESS 0x0d16
|
#define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS4_WIRELESS 0x0d16
|
||||||
#define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS4_WIRED 0x0d17
|
#define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS4_WIRED 0x0d17
|
||||||
#define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS5_WIRELESS 0x0d18
|
#define USB_PRODUCT_NACON_REVOLUTION_5_PRO_PS5_WIRELESS 0x0d18
|
||||||
@@ -89,6 +92,7 @@
|
|||||||
#define USB_PRODUCT_NVIDIA_SHIELD_CONTROLLER_V103 0x7210
|
#define USB_PRODUCT_NVIDIA_SHIELD_CONTROLLER_V103 0x7210
|
||||||
#define USB_PRODUCT_NVIDIA_SHIELD_CONTROLLER_V104 0x7214
|
#define USB_PRODUCT_NVIDIA_SHIELD_CONTROLLER_V104 0x7214
|
||||||
#define USB_PRODUCT_RAZER_ATROX 0x0a00
|
#define USB_PRODUCT_RAZER_ATROX 0x0a00
|
||||||
|
#define USB_PRODUCT_RAZER_KITSUNE 0x1012
|
||||||
#define USB_PRODUCT_RAZER_PANTHERA 0x0401
|
#define USB_PRODUCT_RAZER_PANTHERA 0x0401
|
||||||
#define USB_PRODUCT_RAZER_PANTHERA_EVO 0x1008
|
#define USB_PRODUCT_RAZER_PANTHERA_EVO 0x1008
|
||||||
#define USB_PRODUCT_RAZER_RAIJU 0x1000
|
#define USB_PRODUCT_RAZER_RAIJU 0x1000
|
||||||
@@ -102,6 +106,8 @@
|
|||||||
#define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_PS5_WIRELESS 0x100c
|
#define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_PS5_WIRELESS 0x100c
|
||||||
#define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_XBOX_WIRED 0x1010
|
#define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_XBOX_WIRED 0x1010
|
||||||
#define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_XBOX_WIRELESS 0x1011
|
#define USB_PRODUCT_RAZER_WOLVERINE_V2_PRO_XBOX_WIRELESS 0x1011
|
||||||
|
#define USB_PRODUCT_ROG_RAIKIRI 0x1a38
|
||||||
|
#define USB_PRODUCT_SAITEK_CYBORG_V3 0xf622
|
||||||
#define USB_PRODUCT_SHANWAN_DS3 0x0523
|
#define USB_PRODUCT_SHANWAN_DS3 0x0523
|
||||||
#define USB_PRODUCT_SONY_DS3 0x0268
|
#define USB_PRODUCT_SONY_DS3 0x0268
|
||||||
#define USB_PRODUCT_SONY_DS4 0x05c4
|
#define USB_PRODUCT_SONY_DS4 0x05c4
|
||||||
|
|||||||
@@ -855,6 +855,7 @@ int SDL_DINPUT_JoystickOpen(SDL_Joystick *joystick, JoyStick_DeviceData *joystic
|
|||||||
} else if (FAILED(result)) {
|
} else if (FAILED(result)) {
|
||||||
return SetDIerror("IDirectInputDevice8::SetProperty", result);
|
return SetDIerror("IDirectInputDevice8::SetProperty", result);
|
||||||
}
|
}
|
||||||
|
joystick->hwdata->first_update = SDL_TRUE;
|
||||||
|
|
||||||
/* Poll and wait for initial device state to be populated */
|
/* Poll and wait for initial device state to be populated */
|
||||||
result = IDirectInputDevice8_Poll(joystick->hwdata->InputDevice);
|
result = IDirectInputDevice8_Poll(joystick->hwdata->InputDevice);
|
||||||
@@ -1130,7 +1131,14 @@ void SDL_DINPUT_JoystickUpdate(SDL_Joystick *joystick)
|
|||||||
IDirectInputDevice8_Poll(joystick->hwdata->InputDevice);
|
IDirectInputDevice8_Poll(joystick->hwdata->InputDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (joystick->hwdata->buffered) {
|
if (joystick->hwdata->first_update) {
|
||||||
|
/* Poll to get the initial state of the joystick */
|
||||||
|
UpdateDINPUTJoystickState_Polled(joystick);
|
||||||
|
joystick->hwdata->first_update = SDL_FALSE;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (joystick->hwdata->buffered ) {
|
||||||
UpdateDINPUTJoystickState_Buffered(joystick);
|
UpdateDINPUTJoystickState_Buffered(joystick);
|
||||||
} else {
|
} else {
|
||||||
UpdateDINPUTJoystickState_Polled(joystick);
|
UpdateDINPUTJoystickState_Polled(joystick);
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ struct joystick_hwdata
|
|||||||
LPDIRECTINPUTDEVICE8 InputDevice;
|
LPDIRECTINPUTDEVICE8 InputDevice;
|
||||||
DIDEVCAPS Capabilities;
|
DIDEVCAPS Capabilities;
|
||||||
SDL_bool buffered;
|
SDL_bool buffered;
|
||||||
|
SDL_bool first_update;
|
||||||
input_t Inputs[MAX_INPUTS];
|
input_t Inputs[MAX_INPUTS];
|
||||||
int NumInputs;
|
int NumInputs;
|
||||||
int NumSliders;
|
int NumSliders;
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ static const char *GetXInputName(const Uint8 userid, BYTE SubType)
|
|||||||
|
|
||||||
static SDL_bool GetXInputDeviceInfo(Uint8 userid, Uint16 *pVID, Uint16 *pPID, Uint16 *pVersion)
|
static SDL_bool GetXInputDeviceInfo(Uint8 userid, Uint16 *pVID, Uint16 *pPID, Uint16 *pVersion)
|
||||||
{
|
{
|
||||||
XINPUT_CAPABILITIES_EX capabilities;
|
SDL_XINPUT_CAPABILITIES_EX capabilities;
|
||||||
|
|
||||||
if (!XINPUTGETCAPABILITIESEX || XINPUTGETCAPABILITIESEX(1, userid, 0, &capabilities) != ERROR_SUCCESS) {
|
if (!XINPUTGETCAPABILITIESEX || XINPUTGETCAPABILITIESEX(1, userid, 0, &capabilities) != ERROR_SUCCESS) {
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
@@ -143,7 +143,7 @@ static SDL_bool GetXInputDeviceInfo(Uint8 userid, Uint16 *pVID, Uint16 *pPID, Ui
|
|||||||
|
|
||||||
int SDL_XINPUT_GetSteamVirtualGamepadSlot(Uint8 userid)
|
int SDL_XINPUT_GetSteamVirtualGamepadSlot(Uint8 userid)
|
||||||
{
|
{
|
||||||
XINPUT_CAPABILITIES_EX capabilities;
|
SDL_XINPUT_CAPABILITIES_EX capabilities;
|
||||||
|
|
||||||
if (XINPUTGETCAPABILITIESEX &&
|
if (XINPUTGETCAPABILITIESEX &&
|
||||||
XINPUTGETCAPABILITIESEX(1, userid, 0, &capabilities) == ERROR_SUCCESS &&
|
XINPUTGETCAPABILITIESEX(1, userid, 0, &capabilities) == ERROR_SUCCESS &&
|
||||||
@@ -458,6 +458,7 @@ void SDL_XINPUT_JoystickClose(SDL_Joystick *joystick)
|
|||||||
void SDL_XINPUT_JoystickQuit(void)
|
void SDL_XINPUT_JoystickQuit(void)
|
||||||
{
|
{
|
||||||
if (s_bXInputEnabled) {
|
if (s_bXInputEnabled) {
|
||||||
|
s_bXInputEnabled = SDL_FALSE;
|
||||||
WIN_UnloadXInputDLL();
|
WIN_UnloadXInputDLL();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ void SDL_SYS_GetPreferredLocales(char *buf, size_t buflen)
|
|||||||
{
|
{
|
||||||
/* The 3DS only supports these 12 languages, only one can be active at a time */
|
/* The 3DS only supports these 12 languages, only one can be active at a time */
|
||||||
static const char AVAILABLE_LOCALES[][6] = { "ja_JP", "en_US", "fr_FR", "de_DE",
|
static const char AVAILABLE_LOCALES[][6] = { "ja_JP", "en_US", "fr_FR", "de_DE",
|
||||||
"it_IT", "es_ES", "zn_CN", "ko_KR",
|
"it_IT", "es_ES", "zh_CN", "ko_KR",
|
||||||
"nl_NL", "pt_PT", "ru_RU", "zh_TW" };
|
"nl_NL", "pt_PT", "ru_RU", "zh_TW" };
|
||||||
u8 current_locale = GetLocaleIndex();
|
u8 current_locale = GetLocaleIndex();
|
||||||
if (current_locale != BAD_LOCALE) {
|
if (current_locale != BAD_LOCALE) {
|
||||||
@@ -45,14 +45,13 @@ SDL_FORCE_INLINE u8
|
|||||||
GetLocaleIndex(void)
|
GetLocaleIndex(void)
|
||||||
{
|
{
|
||||||
u8 current_locale;
|
u8 current_locale;
|
||||||
|
Result result;
|
||||||
if (R_FAILED(cfguInit())) {
|
if (R_FAILED(cfguInit())) {
|
||||||
return BAD_LOCALE;
|
return BAD_LOCALE;
|
||||||
}
|
}
|
||||||
if (R_FAILED(CFGU_GetSystemLanguage(¤t_locale))) {
|
result = CFGU_GetSystemLanguage(¤t_locale);
|
||||||
return BAD_LOCALE;
|
|
||||||
}
|
|
||||||
cfguExit();
|
cfguExit();
|
||||||
return current_locale;
|
return R_SUCCEEDED(result) ? current_locale : BAD_LOCALE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* vi: set sts=4 ts=4 sw=4 expandtab: */
|
/* vi: set sts=4 ts=4 sw=4 expandtab: */
|
||||||
@@ -9,8 +9,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 2,30,0,0
|
FILEVERSION 2,30,5,0
|
||||||
PRODUCTVERSION 2,30,0,0
|
PRODUCTVERSION 2,30,5,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
FILEFLAGS 0x0L
|
FILEFLAGS 0x0L
|
||||||
FILEOS 0x40004L
|
FILEOS 0x40004L
|
||||||
@@ -23,12 +23,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "\0"
|
VALUE "CompanyName", "\0"
|
||||||
VALUE "FileDescription", "SDL\0"
|
VALUE "FileDescription", "SDL\0"
|
||||||
VALUE "FileVersion", "2, 30, 0, 0\0"
|
VALUE "FileVersion", "2, 30, 5, 0\0"
|
||||||
VALUE "InternalName", "SDL\0"
|
VALUE "InternalName", "SDL\0"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2024 Sam Lantinga\0"
|
VALUE "LegalCopyright", "Copyright (C) 2024 Sam Lantinga\0"
|
||||||
VALUE "OriginalFilename", "SDL2.dll\0"
|
VALUE "OriginalFilename", "SDL2.dll\0"
|
||||||
VALUE "ProductName", "Simple DirectMedia Layer\0"
|
VALUE "ProductName", "Simple DirectMedia Layer\0"
|
||||||
VALUE "ProductVersion", "2, 30, 0, 0\0"
|
VALUE "ProductVersion", "2, 30, 5, 0\0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../SDL_internal.h"
|
#include "../SDL_internal.h"
|
||||||
|
|
||||||
#if (defined(SDL_VIDEO_RENDER_D3D) || defined(SDL_VIDEO_RENDER_D3D11) || defined(SDL_VIDEO_RENDER_D3D12)) && !defined(SDL_RENDER_DISABLED)
|
#if (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12)
|
||||||
#include "SDL_stdinc.h"
|
#include "SDL_stdinc.h"
|
||||||
|
|
||||||
#include "SDL_d3dmath.h"
|
#include "SDL_d3dmath.h"
|
||||||
@@ -130,6 +130,6 @@ Float4X4 MatrixRotationZ(float r)
|
|||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12) && !SDL_RENDER_DISABLED */
|
#endif /* (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12) */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../SDL_internal.h"
|
#include "../SDL_internal.h"
|
||||||
|
|
||||||
#if (defined(SDL_VIDEO_RENDER_D3D) || defined(SDL_VIDEO_RENDER_D3D11) || defined(SDL_VIDEO_RENDER_D3D12)) && !defined(SDL_RENDER_DISABLED)
|
#if (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12)
|
||||||
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
/* Set up for C function definitions, even when using C++ */
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@@ -78,6 +78,6 @@ Float4X4 MatrixRotationZ(float r);
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12) && !SDL_RENDER_DISABLED */
|
#endif /* (SDL_VIDEO_RENDER_D3D || SDL_VIDEO_RENDER_D3D11 || SDL_VIDEO_RENDER_D3D12) */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
+28
-14
@@ -91,37 +91,37 @@ this should probably be removed at some point in the future. --ryan. */
|
|||||||
|
|
||||||
#ifndef SDL_RENDER_DISABLED
|
#ifndef SDL_RENDER_DISABLED
|
||||||
static const SDL_RenderDriver *render_drivers[] = {
|
static const SDL_RenderDriver *render_drivers[] = {
|
||||||
#ifdef SDL_VIDEO_RENDER_D3D
|
#if SDL_VIDEO_RENDER_D3D
|
||||||
&D3D_RenderDriver,
|
&D3D_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#ifdef SDL_VIDEO_RENDER_D3D11
|
#if SDL_VIDEO_RENDER_D3D11
|
||||||
&D3D11_RenderDriver,
|
&D3D11_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#ifdef SDL_VIDEO_RENDER_D3D12
|
#if SDL_VIDEO_RENDER_D3D12
|
||||||
&D3D12_RenderDriver,
|
&D3D12_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#ifdef SDL_VIDEO_RENDER_METAL
|
#if SDL_VIDEO_RENDER_METAL
|
||||||
&METAL_RenderDriver,
|
&METAL_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#ifdef SDL_VIDEO_RENDER_OGL
|
#if SDL_VIDEO_RENDER_OGL
|
||||||
&GL_RenderDriver,
|
&GL_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#ifdef SDL_VIDEO_RENDER_OGL_ES2
|
#if SDL_VIDEO_RENDER_OGL_ES2
|
||||||
&GLES2_RenderDriver,
|
&GLES2_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#ifdef SDL_VIDEO_RENDER_OGL_ES
|
#if SDL_VIDEO_RENDER_OGL_ES
|
||||||
&GLES_RenderDriver,
|
&GLES_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#ifdef SDL_VIDEO_RENDER_DIRECTFB
|
#if SDL_VIDEO_RENDER_DIRECTFB
|
||||||
&DirectFB_RenderDriver,
|
&DirectFB_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#ifdef SDL_VIDEO_RENDER_PS2
|
#if SDL_VIDEO_RENDER_PS2
|
||||||
&PS2_RenderDriver,
|
&PS2_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#ifdef SDL_VIDEO_RENDER_PSP
|
#if SDL_VIDEO_RENDER_PSP
|
||||||
&PSP_RenderDriver,
|
&PSP_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#ifdef SDL_VIDEO_RENDER_VITA_GXM
|
#if SDL_VIDEO_RENDER_VITA_GXM
|
||||||
&VITA_GXM_RenderDriver,
|
&VITA_GXM_RenderDriver,
|
||||||
#endif
|
#endif
|
||||||
#if SDL_VIDEO_RENDER_SW
|
#if SDL_VIDEO_RENDER_SW
|
||||||
@@ -799,6 +799,20 @@ static int SDLCALL SDL_RendererEventWatch(void *userdata, SDL_Event *event)
|
|||||||
event->button.y = (int)(event->button.y / (scale.y * renderer->dpi_scale.y));
|
event->button.y = (int)(event->button.y / (scale.y * renderer->dpi_scale.y));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (event->type == SDL_MOUSEWHEEL) {
|
||||||
|
SDL_Window *window = SDL_GetWindowFromID(event->wheel.windowID);
|
||||||
|
if (window == renderer->window) {
|
||||||
|
int logical_w, logical_h;
|
||||||
|
SDL_DRect viewport;
|
||||||
|
SDL_FPoint scale;
|
||||||
|
GetWindowViewportValues(renderer, &logical_w, &logical_h, &viewport, &scale);
|
||||||
|
if (logical_w) {
|
||||||
|
event->wheel.mouseX -= (int)(viewport.x * renderer->dpi_scale.x);
|
||||||
|
event->wheel.mouseY -= (int)(viewport.y * renderer->dpi_scale.y);
|
||||||
|
event->wheel.mouseX = (int)(event->wheel.mouseX / (scale.x * renderer->dpi_scale.x));
|
||||||
|
event->wheel.mouseY = (int)(event->wheel.mouseY / (scale.y * renderer->dpi_scale.y));
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (event->type == SDL_FINGERDOWN ||
|
} else if (event->type == SDL_FINGERDOWN ||
|
||||||
event->type == SDL_FINGERUP ||
|
event->type == SDL_FINGERUP ||
|
||||||
event->type == SDL_FINGERMOTION) {
|
event->type == SDL_FINGERMOTION) {
|
||||||
@@ -1108,7 +1122,7 @@ error:
|
|||||||
|
|
||||||
SDL_Renderer *SDL_CreateSoftwareRenderer(SDL_Surface *surface)
|
SDL_Renderer *SDL_CreateSoftwareRenderer(SDL_Surface *surface)
|
||||||
{
|
{
|
||||||
#if !defined(SDL_RENDER_DISABLED) && SDL_VIDEO_RENDER_SW
|
#if SDL_VIDEO_RENDER_SW
|
||||||
SDL_Renderer *renderer;
|
SDL_Renderer *renderer;
|
||||||
|
|
||||||
renderer = SW_CreateRendererForSurface(surface);
|
renderer = SW_CreateRendererForSurface(surface);
|
||||||
@@ -1451,7 +1465,7 @@ SDL_Texture *SDL_CreateTextureFromSurface(SDL_Renderer *renderer, SDL_Surface *s
|
|||||||
SDL_UpdateTexture(texture, NULL, surface->pixels, surface->pitch);
|
SDL_UpdateTexture(texture, NULL, surface->pixels, surface->pitch);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SDL_VIDEO_RENDER_DIRECTFB
|
#if SDL_VIDEO_RENDER_DIRECTFB
|
||||||
/* DirectFB allows palette format for textures.
|
/* DirectFB allows palette format for textures.
|
||||||
* Copy SDL_Surface palette to the texture */
|
* Copy SDL_Surface palette to the texture */
|
||||||
if (SDL_ISPIXELFORMAT_INDEXED(format)) {
|
if (SDL_ISPIXELFORMAT_INDEXED(format)) {
|
||||||
@@ -2284,7 +2298,7 @@ static int UpdateLogicalSize(SDL_Renderer *renderer, SDL_bool flush_viewport_cmd
|
|||||||
|
|
||||||
hint = SDL_GetHint(SDL_HINT_RENDER_LOGICAL_SIZE_MODE);
|
hint = SDL_GetHint(SDL_HINT_RENDER_LOGICAL_SIZE_MODE);
|
||||||
if (hint && (*hint == '1' || SDL_strcasecmp(hint, "overscan") == 0)) {
|
if (hint && (*hint == '1' || SDL_strcasecmp(hint, "overscan") == 0)) {
|
||||||
#ifdef SDL_VIDEO_RENDER_D3D
|
#if SDL_VIDEO_RENDER_D3D
|
||||||
SDL_bool overscan_supported = SDL_TRUE;
|
SDL_bool overscan_supported = SDL_TRUE;
|
||||||
/* Unfortunately, Direct3D 9 doesn't support negative viewport numbers
|
/* Unfortunately, Direct3D 9 doesn't support negative viewport numbers
|
||||||
which the overscan implementation relies on.
|
which the overscan implementation relies on.
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
#include "SDL_render.h"
|
#include "SDL_render.h"
|
||||||
#include "SDL_system.h"
|
#include "SDL_system.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D
|
||||||
|
|
||||||
#include "../../core/windows/SDL_windows.h"
|
#include "../../core/windows/SDL_windows.h"
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
#include "../SDL_d3dmath.h"
|
#include "../SDL_d3dmath.h"
|
||||||
#include "../../video/windows/SDL_windowsvideo.h"
|
#include "../../video/windows/SDL_windowsvideo.h"
|
||||||
|
|
||||||
#ifdef SDL_VIDEO_RENDER_D3D
|
#if SDL_VIDEO_RENDER_D3D
|
||||||
#define D3D_DEBUG_INFO
|
#define D3D_DEBUG_INFO
|
||||||
#include <d3d9.h>
|
#include <d3d9.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -1170,6 +1170,7 @@ static int D3D_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cmd, v
|
|||||||
if (SDL_memcmp(viewport, &cmd->data.viewport.rect, sizeof(cmd->data.viewport.rect)) != 0) {
|
if (SDL_memcmp(viewport, &cmd->data.viewport.rect, sizeof(cmd->data.viewport.rect)) != 0) {
|
||||||
SDL_copyp(viewport, &cmd->data.viewport.rect);
|
SDL_copyp(viewport, &cmd->data.viewport.rect);
|
||||||
data->drawstate.viewport_dirty = SDL_TRUE;
|
data->drawstate.viewport_dirty = SDL_TRUE;
|
||||||
|
data->drawstate.cliprect_dirty = SDL_TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1731,7 +1732,7 @@ SDL_RenderDriver D3D_RenderDriver = {
|
|||||||
0,
|
0,
|
||||||
0 }
|
0 }
|
||||||
};
|
};
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_D3D */
|
||||||
|
|
||||||
#if defined(__WIN32__) || defined(__WINGDK__)
|
#if defined(__WIN32__) || defined(__WINGDK__)
|
||||||
/* This function needs to always exist on Windows, for the Dynamic API. */
|
/* This function needs to always exist on Windows, for the Dynamic API. */
|
||||||
@@ -1739,7 +1740,7 @@ IDirect3DDevice9 *SDL_RenderGetD3D9Device(SDL_Renderer *renderer)
|
|||||||
{
|
{
|
||||||
IDirect3DDevice9 *device = NULL;
|
IDirect3DDevice9 *device = NULL;
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D
|
||||||
D3D_RenderData *data = (D3D_RenderData *)renderer->driverdata;
|
D3D_RenderData *data = (D3D_RenderData *)renderer->driverdata;
|
||||||
|
|
||||||
/* Make sure that this is a D3D renderer */
|
/* Make sure that this is a D3D renderer */
|
||||||
@@ -1752,7 +1753,7 @@ IDirect3DDevice9 *SDL_RenderGetD3D9Device(SDL_Renderer *renderer)
|
|||||||
if (device) {
|
if (device) {
|
||||||
IDirect3DDevice9_AddRef(device);
|
IDirect3DDevice9_AddRef(device);
|
||||||
}
|
}
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_D3D */
|
||||||
|
|
||||||
return device;
|
return device;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
#include "SDL_render.h"
|
#include "SDL_render.h"
|
||||||
#include "SDL_system.h"
|
#include "SDL_system.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D
|
||||||
|
|
||||||
#include "../../core/windows/SDL_windows.h"
|
#include "../../core/windows/SDL_windows.h"
|
||||||
|
|
||||||
@@ -268,6 +268,6 @@ HRESULT D3D9_CreatePixelShader(IDirect3DDevice9 *d3dDevice, D3D9_Shader shader,
|
|||||||
return IDirect3DDevice9_CreatePixelShader(d3dDevice, D3D9_shaders[shader], pixelShader);
|
return IDirect3DDevice9_CreatePixelShader(d3dDevice, D3D9_shaders[shader], pixelShader);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_D3D */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
#include "SDL_render.h"
|
#include "SDL_render.h"
|
||||||
#include "SDL_system.h"
|
#include "SDL_system.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D11) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D11
|
||||||
|
|
||||||
#define COBJMACROS
|
#define COBJMACROS
|
||||||
#include "../../core/windows/SDL_windows.h"
|
#include "../../core/windows/SDL_windows.h"
|
||||||
@@ -2047,6 +2047,7 @@ static int D3D11_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cmd,
|
|||||||
if (SDL_memcmp(viewport, &cmd->data.viewport.rect, sizeof(cmd->data.viewport.rect)) != 0) {
|
if (SDL_memcmp(viewport, &cmd->data.viewport.rect, sizeof(cmd->data.viewport.rect)) != 0) {
|
||||||
SDL_copyp(viewport, &cmd->data.viewport.rect);
|
SDL_copyp(viewport, &cmd->data.viewport.rect);
|
||||||
rendererData->viewportDirty = SDL_TRUE;
|
rendererData->viewportDirty = SDL_TRUE;
|
||||||
|
rendererData->cliprectDirty = SDL_TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2415,7 +2416,7 @@ SDL_RenderDriver D3D11_RenderDriver = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D11 && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_D3D11 */
|
||||||
|
|
||||||
#if defined(__WIN32__) || defined(__WINGDK__)
|
#if defined(__WIN32__) || defined(__WINGDK__)
|
||||||
/* This function needs to always exist on Windows, for the Dynamic API. */
|
/* This function needs to always exist on Windows, for the Dynamic API. */
|
||||||
@@ -2423,7 +2424,7 @@ ID3D11Device *SDL_RenderGetD3D11Device(SDL_Renderer *renderer)
|
|||||||
{
|
{
|
||||||
ID3D11Device *device = NULL;
|
ID3D11Device *device = NULL;
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D11) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D11
|
||||||
D3D11_RenderData *data = (D3D11_RenderData *)renderer->driverdata;
|
D3D11_RenderData *data = (D3D11_RenderData *)renderer->driverdata;
|
||||||
|
|
||||||
/* Make sure that this is a D3D renderer */
|
/* Make sure that this is a D3D renderer */
|
||||||
@@ -2436,7 +2437,7 @@ ID3D11Device *SDL_RenderGetD3D11Device(SDL_Renderer *renderer)
|
|||||||
if (device) {
|
if (device) {
|
||||||
ID3D11Device_AddRef(device);
|
ID3D11Device_AddRef(device);
|
||||||
}
|
}
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D11 && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_D3D11 */
|
||||||
|
|
||||||
return device;
|
return device;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D11) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D11
|
||||||
|
|
||||||
#include "SDL_syswm.h"
|
#include "SDL_syswm.h"
|
||||||
#include "../../video/winrt/SDL_winrtvideo_cpp.h"
|
#include "../../video/winrt/SDL_winrtvideo_cpp.h"
|
||||||
@@ -109,6 +109,6 @@ D3D11_GetCurrentRotation()
|
|||||||
return DXGI_MODE_ROTATION_IDENTITY;
|
return DXGI_MODE_ROTATION_IDENTITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D11 && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_D3D11 */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D11) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D11
|
||||||
|
|
||||||
#include "SDL_render.h"
|
#include "SDL_render.h"
|
||||||
|
|
||||||
@@ -35,6 +35,6 @@ DXGI_MODE_ROTATION D3D11_GetCurrentRotation();
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D11 && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_D3D11 */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D11) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D11
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
#include "SDL_stdinc.h"
|
||||||
|
|
||||||
@@ -1949,6 +1949,6 @@ int D3D11_CreatePixelShader(ID3D11Device1 *d3dDevice, D3D11_Shader shader, ID3D1
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D11 && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_D3D11 */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
#include "SDL_render.h"
|
#include "SDL_render.h"
|
||||||
#include "SDL_system.h"
|
#include "SDL_system.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D12) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D12
|
||||||
|
|
||||||
#define SDL_D3D12_NUM_BUFFERS 2
|
#define SDL_D3D12_NUM_BUFFERS 2
|
||||||
#define SDL_D3D12_NUM_VERTEX_BUFFERS 256
|
#define SDL_D3D12_NUM_VERTEX_BUFFERS 256
|
||||||
@@ -48,6 +48,7 @@
|
|||||||
#include <dxgi1_6.h>
|
#include <dxgi1_6.h>
|
||||||
#include <dxgidebug.h>
|
#include <dxgidebug.h>
|
||||||
#include <d3d12sdklayers.h>
|
#include <d3d12sdklayers.h>
|
||||||
|
#include <sdkddkver.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "SDL_shaders_d3d12.h"
|
#include "SDL_shaders_d3d12.h"
|
||||||
@@ -58,6 +59,11 @@
|
|||||||
#define SDL_COMPOSE_ERROR(str) SDL_STRINGIFY_ARG(__FUNCTION__) ", " str
|
#define SDL_COMPOSE_ERROR(str) SDL_STRINGIFY_ARG(__FUNCTION__) ", " str
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* DXGI_PRESENT flags are removed on Xbox */
|
||||||
|
#if defined(__XBOXONE__) || defined(__XBOXSERIES__)
|
||||||
|
#define DXGI_PRESENT_ALLOW_TEARING 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#define SAFE_RELEASE(X) \
|
#define SAFE_RELEASE(X) \
|
||||||
if (X) { \
|
if (X) { \
|
||||||
@@ -78,6 +84,54 @@
|
|||||||
#define D3D_GUID(X) &(X)
|
#define D3D_GUID(X) &(X)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Older MS Windows SDK headers declare some d3d12 functions with the wrong function prototype.
|
||||||
|
* - ID3D12Heap::GetDesc
|
||||||
|
* - ID3D12Resource::GetDesc
|
||||||
|
* - ID3D12DescriptorHeap::GetDesc
|
||||||
|
* (and 9 more)+
|
||||||
|
* This is fixed in SDKs since WDK_NTDDI_VERSION >= NTDDI_WIN10_FE (0x0A00000A)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !(defined(__MINGW32__) || defined(__XBOXONE__) || defined(__XBOXSERIES__)) \
|
||||||
|
&& (WDK_NTDDI_VERSION < 0x0A00000A)
|
||||||
|
|
||||||
|
#define D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(THIS, ...) do { \
|
||||||
|
void (STDMETHODCALLTYPE * func)(ID3D12DescriptorHeap * This, D3D12_CPU_DESCRIPTOR_HANDLE * Handle) = \
|
||||||
|
(void*)(THIS)->lpVtbl->GetCPUDescriptorHandleForHeapStart; \
|
||||||
|
func((THIS), ##__VA_ARGS__); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define D3D_CALL_RET_ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(THIS, ...) do { \
|
||||||
|
void (STDMETHODCALLTYPE * func)(ID3D12DescriptorHeap * This, D3D12_GPU_DESCRIPTOR_HANDLE * Handle) = \
|
||||||
|
(void*)(THIS)->lpVtbl->GetGPUDescriptorHandleForHeapStart; \
|
||||||
|
func((THIS), ##__VA_ARGS__); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define D3D_CALL_RET_ID3D12Resource_GetDesc(THIS, ...) do { \
|
||||||
|
void (STDMETHODCALLTYPE * func)(ID3D12Resource * This, D3D12_RESOURCE_DESC * Desc) = \
|
||||||
|
(void*)(THIS)->lpVtbl->GetDesc; \
|
||||||
|
func((THIS), ##__VA_ARGS__); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MinGW has correct function prototypes in the vtables, but defines wrong functions
|
||||||
|
* Xbox just needs these macros defined as used below (because CINTERFACE doesn't exist)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(THIS, ...) \
|
||||||
|
D3D_CALL_RET(THIS, GetCPUDescriptorHandleForHeapStart, ##__VA_ARGS__);
|
||||||
|
|
||||||
|
#define D3D_CALL_RET_ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(THIS, ...) \
|
||||||
|
D3D_CALL_RET(THIS, GetGPUDescriptorHandleForHeapStart, ##__VA_ARGS__);
|
||||||
|
|
||||||
|
#define D3D_CALL_RET_ID3D12Resource_GetDesc(THIS, ...) \
|
||||||
|
D3D_CALL_RET(THIS, GetDesc, ##__VA_ARGS__);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Set up for C function definitions, even when using C++ */
|
/* Set up for C function definitions, even when using C++ */
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@@ -393,10 +447,10 @@ static D3D12_GPU_DESCRIPTOR_HANDLE D3D12_CPUtoGPUHandle(ID3D12DescriptorHeap *he
|
|||||||
SIZE_T offset;
|
SIZE_T offset;
|
||||||
|
|
||||||
/* Calculate the correct offset into the heap */
|
/* Calculate the correct offset into the heap */
|
||||||
D3D_CALL_RET(heap, GetCPUDescriptorHandleForHeapStart, &CPUHeapStart);
|
D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(heap, &CPUHeapStart);
|
||||||
offset = CPUHandle.ptr - CPUHeapStart.ptr;
|
offset = CPUHandle.ptr - CPUHeapStart.ptr;
|
||||||
|
|
||||||
D3D_CALL_RET(heap, GetGPUDescriptorHandleForHeapStart, &GPUHandle);
|
D3D_CALL_RET_ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(heap, &GPUHandle);
|
||||||
GPUHandle.ptr += offset;
|
GPUHandle.ptr += offset;
|
||||||
|
|
||||||
return GPUHandle;
|
return GPUHandle;
|
||||||
@@ -427,7 +481,7 @@ static D3D12_CPU_DESCRIPTOR_HANDLE D3D12_GetCurrentRenderTargetView(SDL_Renderer
|
|||||||
}
|
}
|
||||||
|
|
||||||
SDL_zero(rtvDescriptor);
|
SDL_zero(rtvDescriptor);
|
||||||
D3D_CALL_RET(data->rtvDescriptorHeap, GetCPUDescriptorHandleForHeapStart, &rtvDescriptor);
|
D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(data->rtvDescriptorHeap, &rtvDescriptor);
|
||||||
rtvDescriptor.ptr += data->currentBackBufferIndex * data->rtvDescriptorSize;
|
rtvDescriptor.ptr += data->currentBackBufferIndex * data->rtvDescriptorSize;
|
||||||
return rtvDescriptor;
|
return rtvDescriptor;
|
||||||
}
|
}
|
||||||
@@ -1047,7 +1101,7 @@ static HRESULT D3D12_CreateDeviceResources(SDL_Renderer *renderer)
|
|||||||
samplerDesc.ComparisonFunc = D3D12_COMPARISON_FUNC_ALWAYS;
|
samplerDesc.ComparisonFunc = D3D12_COMPARISON_FUNC_ALWAYS;
|
||||||
samplerDesc.MinLOD = 0.0f;
|
samplerDesc.MinLOD = 0.0f;
|
||||||
samplerDesc.MaxLOD = D3D12_FLOAT32_MAX;
|
samplerDesc.MaxLOD = D3D12_FLOAT32_MAX;
|
||||||
D3D_CALL_RET(data->samplerDescriptorHeap, GetCPUDescriptorHandleForHeapStart, &data->nearestPixelSampler);
|
D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(data->samplerDescriptorHeap, &data->nearestPixelSampler);
|
||||||
D3D_CALL(data->d3dDevice, CreateSampler, &samplerDesc, data->nearestPixelSampler);
|
D3D_CALL(data->d3dDevice, CreateSampler, &samplerDesc, data->nearestPixelSampler);
|
||||||
|
|
||||||
samplerDesc.Filter = D3D12_FILTER_MIN_MAG_MIP_LINEAR;
|
samplerDesc.Filter = D3D12_FILTER_MIN_MAG_MIP_LINEAR;
|
||||||
@@ -1336,7 +1390,7 @@ static HRESULT D3D12_CreateWindowSizeDependentResources(SDL_Renderer *renderer)
|
|||||||
rtvDesc.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2D;
|
rtvDesc.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2D;
|
||||||
|
|
||||||
SDL_zero(rtvDescriptor);
|
SDL_zero(rtvDescriptor);
|
||||||
D3D_CALL_RET(data->rtvDescriptorHeap, GetCPUDescriptorHandleForHeapStart, &rtvDescriptor);
|
D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(data->rtvDescriptorHeap, &rtvDescriptor);
|
||||||
rtvDescriptor.ptr += i * data->rtvDescriptorSize;
|
rtvDescriptor.ptr += i * data->rtvDescriptorSize;
|
||||||
D3D_CALL(data->d3dDevice, CreateRenderTargetView, data->renderTargets[i], &rtvDesc, rtvDescriptor);
|
D3D_CALL(data->d3dDevice, CreateRenderTargetView, data->renderTargets[i], &rtvDesc, rtvDescriptor);
|
||||||
}
|
}
|
||||||
@@ -1550,7 +1604,7 @@ static int D3D12_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
|||||||
resourceViewDesc.Texture2D.MipLevels = textureDesc.MipLevels;
|
resourceViewDesc.Texture2D.MipLevels = textureDesc.MipLevels;
|
||||||
|
|
||||||
textureData->mainSRVIndex = D3D12_GetAvailableSRVIndex(renderer);
|
textureData->mainSRVIndex = D3D12_GetAvailableSRVIndex(renderer);
|
||||||
D3D_CALL_RET(rendererData->srvDescriptorHeap, GetCPUDescriptorHandleForHeapStart, &textureData->mainTextureResourceView);
|
D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(rendererData->srvDescriptorHeap, &textureData->mainTextureResourceView);
|
||||||
textureData->mainTextureResourceView.ptr += textureData->mainSRVIndex * rendererData->srvDescriptorSize;
|
textureData->mainTextureResourceView.ptr += textureData->mainSRVIndex * rendererData->srvDescriptorSize;
|
||||||
|
|
||||||
D3D_CALL(rendererData->d3dDevice, CreateShaderResourceView,
|
D3D_CALL(rendererData->d3dDevice, CreateShaderResourceView,
|
||||||
@@ -1559,7 +1613,7 @@ static int D3D12_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
|||||||
textureData->mainTextureResourceView);
|
textureData->mainTextureResourceView);
|
||||||
#if SDL_HAVE_YUV
|
#if SDL_HAVE_YUV
|
||||||
if (textureData->yuv) {
|
if (textureData->yuv) {
|
||||||
D3D_CALL_RET(rendererData->srvDescriptorHeap, GetCPUDescriptorHandleForHeapStart, &textureData->mainTextureResourceViewU);
|
D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(rendererData->srvDescriptorHeap, &textureData->mainTextureResourceViewU);
|
||||||
textureData->mainSRVIndexU = D3D12_GetAvailableSRVIndex(renderer);
|
textureData->mainSRVIndexU = D3D12_GetAvailableSRVIndex(renderer);
|
||||||
textureData->mainTextureResourceViewU.ptr += textureData->mainSRVIndexU * rendererData->srvDescriptorSize;
|
textureData->mainTextureResourceViewU.ptr += textureData->mainSRVIndexU * rendererData->srvDescriptorSize;
|
||||||
D3D_CALL(rendererData->d3dDevice, CreateShaderResourceView,
|
D3D_CALL(rendererData->d3dDevice, CreateShaderResourceView,
|
||||||
@@ -1567,7 +1621,7 @@ static int D3D12_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
|||||||
&resourceViewDesc,
|
&resourceViewDesc,
|
||||||
textureData->mainTextureResourceViewU);
|
textureData->mainTextureResourceViewU);
|
||||||
|
|
||||||
D3D_CALL_RET(rendererData->srvDescriptorHeap, GetCPUDescriptorHandleForHeapStart, &textureData->mainTextureResourceViewV);
|
D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(rendererData->srvDescriptorHeap, &textureData->mainTextureResourceViewV);
|
||||||
textureData->mainSRVIndexV = D3D12_GetAvailableSRVIndex(renderer);
|
textureData->mainSRVIndexV = D3D12_GetAvailableSRVIndex(renderer);
|
||||||
textureData->mainTextureResourceViewV.ptr += textureData->mainSRVIndexV * rendererData->srvDescriptorSize;
|
textureData->mainTextureResourceViewV.ptr += textureData->mainSRVIndexV * rendererData->srvDescriptorSize;
|
||||||
D3D_CALL(rendererData->d3dDevice, CreateShaderResourceView,
|
D3D_CALL(rendererData->d3dDevice, CreateShaderResourceView,
|
||||||
@@ -1581,7 +1635,7 @@ static int D3D12_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
|||||||
|
|
||||||
nvResourceViewDesc.Format = DXGI_FORMAT_R8G8_UNORM;
|
nvResourceViewDesc.Format = DXGI_FORMAT_R8G8_UNORM;
|
||||||
|
|
||||||
D3D_CALL_RET(rendererData->srvDescriptorHeap, GetCPUDescriptorHandleForHeapStart, &textureData->mainTextureResourceViewNV);
|
D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(rendererData->srvDescriptorHeap, &textureData->mainTextureResourceViewNV);
|
||||||
textureData->mainSRVIndexNV = D3D12_GetAvailableSRVIndex(renderer);
|
textureData->mainSRVIndexNV = D3D12_GetAvailableSRVIndex(renderer);
|
||||||
textureData->mainTextureResourceViewNV.ptr += textureData->mainSRVIndexNV * rendererData->srvDescriptorSize;
|
textureData->mainTextureResourceViewNV.ptr += textureData->mainSRVIndexNV * rendererData->srvDescriptorSize;
|
||||||
D3D_CALL(rendererData->d3dDevice, CreateShaderResourceView,
|
D3D_CALL(rendererData->d3dDevice, CreateShaderResourceView,
|
||||||
@@ -1598,7 +1652,7 @@ static int D3D12_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
|||||||
renderTargetViewDesc.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2D;
|
renderTargetViewDesc.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2D;
|
||||||
renderTargetViewDesc.Texture2D.MipSlice = 0;
|
renderTargetViewDesc.Texture2D.MipSlice = 0;
|
||||||
|
|
||||||
D3D_CALL_RET(rendererData->textureRTVDescriptorHeap, GetCPUDescriptorHandleForHeapStart, &textureData->mainTextureRenderTargetView);
|
D3D_CALL_RET_ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(rendererData->textureRTVDescriptorHeap, &textureData->mainTextureRenderTargetView);
|
||||||
textureData->mainTextureRenderTargetView.ptr += textureData->mainSRVIndex * rendererData->rtvDescriptorSize;
|
textureData->mainTextureRenderTargetView.ptr += textureData->mainSRVIndex * rendererData->rtvDescriptorSize;
|
||||||
|
|
||||||
D3D_CALL(rendererData->d3dDevice, CreateRenderTargetView,
|
D3D_CALL(rendererData->d3dDevice, CreateRenderTargetView,
|
||||||
@@ -1663,7 +1717,7 @@ static int D3D12_UpdateTextureInternal(D3D12_RenderData *rendererData, ID3D12Res
|
|||||||
|
|
||||||
/* Create an upload buffer, which will be used to write to the main texture. */
|
/* Create an upload buffer, which will be used to write to the main texture. */
|
||||||
SDL_zero(textureDesc);
|
SDL_zero(textureDesc);
|
||||||
D3D_CALL_RET(texture, GetDesc, &textureDesc);
|
D3D_CALL_RET_ID3D12Resource_GetDesc(texture, &textureDesc);
|
||||||
textureDesc.Width = w;
|
textureDesc.Width = w;
|
||||||
textureDesc.Height = h;
|
textureDesc.Height = h;
|
||||||
|
|
||||||
@@ -1919,7 +1973,7 @@ static int D3D12_LockTexture(SDL_Renderer *renderer, SDL_Texture *texture,
|
|||||||
|
|
||||||
/* Create an upload buffer, which will be used to write to the main texture. */
|
/* Create an upload buffer, which will be used to write to the main texture. */
|
||||||
SDL_zero(textureDesc);
|
SDL_zero(textureDesc);
|
||||||
D3D_CALL_RET(textureData->mainTexture, GetDesc, &textureDesc);
|
D3D_CALL_RET_ID3D12Resource_GetDesc(textureData->mainTexture, &textureDesc);
|
||||||
textureDesc.Width = rect->w;
|
textureDesc.Width = rect->w;
|
||||||
textureDesc.Height = rect->h;
|
textureDesc.Height = rect->h;
|
||||||
|
|
||||||
@@ -2028,7 +2082,7 @@ static void D3D12_UnlockTexture(SDL_Renderer *renderer, SDL_Texture *texture)
|
|||||||
D3D_CALL(textureData->stagingBuffer, Unmap, 0, NULL);
|
D3D_CALL(textureData->stagingBuffer, Unmap, 0, NULL);
|
||||||
|
|
||||||
SDL_zero(textureDesc);
|
SDL_zero(textureDesc);
|
||||||
D3D_CALL_RET(textureData->mainTexture, GetDesc, &textureDesc);
|
D3D_CALL_RET_ID3D12Resource_GetDesc(textureData->mainTexture, &textureDesc);
|
||||||
textureDesc.Width = textureData->lockedRect.w;
|
textureDesc.Width = textureData->lockedRect.w;
|
||||||
textureDesc.Height = textureData->lockedRect.h;
|
textureDesc.Height = textureData->lockedRect.h;
|
||||||
|
|
||||||
@@ -2608,6 +2662,7 @@ static int D3D12_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cmd,
|
|||||||
if (SDL_memcmp(viewport, &cmd->data.viewport.rect, sizeof(cmd->data.viewport.rect)) != 0) {
|
if (SDL_memcmp(viewport, &cmd->data.viewport.rect, sizeof(cmd->data.viewport.rect)) != 0) {
|
||||||
SDL_copyp(viewport, &cmd->data.viewport.rect);
|
SDL_copyp(viewport, &cmd->data.viewport.rect);
|
||||||
rendererData->viewportDirty = SDL_TRUE;
|
rendererData->viewportDirty = SDL_TRUE;
|
||||||
|
rendererData->cliprectDirty = SDL_TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2738,7 +2793,7 @@ static int D3D12_RenderReadPixels(SDL_Renderer *renderer, const SDL_Rect *rect,
|
|||||||
|
|
||||||
/* Create a staging texture to copy the screen's data to: */
|
/* Create a staging texture to copy the screen's data to: */
|
||||||
SDL_zero(textureDesc);
|
SDL_zero(textureDesc);
|
||||||
D3D_CALL_RET(backBuffer, GetDesc, &textureDesc);
|
D3D_CALL_RET_ID3D12Resource_GetDesc(backBuffer, &textureDesc);
|
||||||
textureDesc.Width = rect->w;
|
textureDesc.Width = rect->w;
|
||||||
textureDesc.Height = rect->h;
|
textureDesc.Height = rect->h;
|
||||||
|
|
||||||
@@ -3055,7 +3110,7 @@ SDL_RenderDriver D3D12_RenderDriver = {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D12 && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_D3D12 */
|
||||||
|
|
||||||
#if defined(__WIN32__) || defined(__GDK__)
|
#if defined(__WIN32__) || defined(__GDK__)
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@@ -3067,7 +3122,7 @@ extern "C"
|
|||||||
{
|
{
|
||||||
ID3D12Device *device = NULL;
|
ID3D12Device *device = NULL;
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D12) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_D3D12
|
||||||
D3D12_RenderData *data = (D3D12_RenderData *)renderer->driverdata;
|
D3D12_RenderData *data = (D3D12_RenderData *)renderer->driverdata;
|
||||||
|
|
||||||
/* Make sure that this is a D3D renderer */
|
/* Make sure that this is a D3D renderer */
|
||||||
@@ -3080,7 +3135,7 @@ extern "C"
|
|||||||
if (device) {
|
if (device) {
|
||||||
D3D_CALL(device, AddRef);
|
D3D_CALL(device, AddRef);
|
||||||
}
|
}
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D12 && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_D3D12 */
|
||||||
|
|
||||||
return device;
|
return device;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
#if SDL_VIDEO_RENDER_D3D12 && !SDL_RENDER_DISABLED && (defined(__XBOXONE__) || defined(__XBOXSERIES__))
|
#if SDL_VIDEO_RENDER_D3D12 && (defined(__XBOXONE__) || defined(__XBOXSERIES__))
|
||||||
#include "SDL_render_d3d12_xbox.h"
|
#include "SDL_render_d3d12_xbox.h"
|
||||||
#include "../../core/windows/SDL_windows.h"
|
#include "../../core/windows/SDL_windows.h"
|
||||||
#include <XGameRuntime.h>
|
#include <XGameRuntime.h>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_D3D12) && !defined(SDL_RENDER_DISABLED) && !defined(__XBOXONE__) && !defined(__XBOXSERIES__)
|
#if SDL_VIDEO_RENDER_D3D12 && !defined(__XBOXONE__) && !defined(__XBOXSERIES__)
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
#include "SDL_stdinc.h"
|
||||||
|
|
||||||
@@ -6934,6 +6934,6 @@ void D3D12_GetRootSignatureData(D3D12_RootSignature rootSig, D3D12_SHADER_BYTECO
|
|||||||
outBytecode->BytecodeLength = D3D12_rootsigs[rootSig].rs_shader_size;
|
outBytecode->BytecodeLength = D3D12_rootsigs[rootSig].rs_shader_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D12 && !SDL_RENDER_DISABLED && !defined(__XBOXONE__) && !defined(__XBOXSERIES__) */
|
#endif /* SDL_VIDEO_RENDER_D3D12 && !defined(__XBOXONE__) && !defined(__XBOXSERIES__) */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_VIDEO_RENDER_D3D12 && !SDL_RENDER_DISABLED && defined(__XBOXONE__)
|
#if SDL_VIDEO_RENDER_D3D12 && defined(__XBOXONE__)
|
||||||
|
|
||||||
#include <SDL_stdinc.h>
|
#include <SDL_stdinc.h>
|
||||||
|
|
||||||
@@ -139,6 +139,6 @@ D3D12_GetRootSignatureData(D3D12_RootSignature rootSig, D3D12_SHADER_BYTECODE *o
|
|||||||
outBytecode->BytecodeLength = D3D12_rootsigs[rootSig].rs_shader_size;
|
outBytecode->BytecodeLength = D3D12_rootsigs[rootSig].rs_shader_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D12 && !SDL_RENDER_DISABLED && defined(__XBOXONE__) */
|
#endif /* SDL_VIDEO_RENDER_D3D12 && defined(__XBOXONE__) */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if SDL_VIDEO_RENDER_D3D12 && !SDL_RENDER_DISABLED && defined(__XBOXSERIES__)
|
#if SDL_VIDEO_RENDER_D3D12 && defined(__XBOXSERIES__)
|
||||||
|
|
||||||
#include <SDL_stdinc.h>
|
#include <SDL_stdinc.h>
|
||||||
|
|
||||||
@@ -139,6 +139,6 @@ D3D12_GetRootSignatureData(D3D12_RootSignature rootSig, D3D12_SHADER_BYTECODE *o
|
|||||||
outBytecode->BytecodeLength = D3D12_rootsigs[rootSig].rs_shader_size;
|
outBytecode->BytecodeLength = D3D12_rootsigs[rootSig].rs_shader_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_D3D12 && !SDL_RENDER_DISABLED && defined(__XBOXSERIES__) */
|
#endif /* SDL_VIDEO_RENDER_D3D12 && defined(__XBOXSERIES__) */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_METAL) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_METAL
|
||||||
|
|
||||||
#include "SDL_hints.h"
|
#include "SDL_hints.h"
|
||||||
#include "SDL_syswm.h"
|
#include "SDL_syswm.h"
|
||||||
@@ -1896,6 +1896,6 @@ SDL_RenderDriver METAL_RenderDriver = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_METAL && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_METAL */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_OGL) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_OGL
|
||||||
#include "SDL_hints.h"
|
#include "SDL_hints.h"
|
||||||
#include "../../video/SDL_sysvideo.h" /* For SDL_GL_SwapWindowWithResult */
|
#include "../../video/SDL_sysvideo.h" /* For SDL_GL_SwapWindowWithResult */
|
||||||
#include "SDL_opengl.h"
|
#include "SDL_opengl.h"
|
||||||
@@ -1224,6 +1224,7 @@ static int GL_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cmd, vo
|
|||||||
if (SDL_memcmp(viewport, &cmd->data.viewport.rect, sizeof(cmd->data.viewport.rect)) != 0) {
|
if (SDL_memcmp(viewport, &cmd->data.viewport.rect, sizeof(cmd->data.viewport.rect)) != 0) {
|
||||||
SDL_copyp(viewport, &cmd->data.viewport.rect);
|
SDL_copyp(viewport, &cmd->data.viewport.rect);
|
||||||
data->drawstate.viewport_dirty = SDL_TRUE;
|
data->drawstate.viewport_dirty = SDL_TRUE;
|
||||||
|
data->drawstate.cliprect_dirty = SDL_TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1969,6 +1970,6 @@ SDL_RenderDriver GL_RenderDriver = {
|
|||||||
0 }
|
0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_OGL && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_OGL */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_OGL) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_OGL
|
||||||
|
|
||||||
#include "SDL_stdinc.h"
|
#include "SDL_stdinc.h"
|
||||||
#include "SDL_opengl.h"
|
#include "SDL_opengl.h"
|
||||||
@@ -577,6 +577,6 @@ void GL_DestroyShaderContext(GL_ShaderContext *ctx)
|
|||||||
SDL_free(ctx);
|
SDL_free(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_OGL && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_OGL */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_OGL_ES) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_OGL_ES
|
||||||
|
|
||||||
#include "SDL_hints.h"
|
#include "SDL_hints.h"
|
||||||
#include "../../video/SDL_sysvideo.h" /* For SDL_GL_SwapWindowWithResult */
|
#include "../../video/SDL_sysvideo.h" /* For SDL_GL_SwapWindowWithResult */
|
||||||
@@ -1215,6 +1215,6 @@ SDL_RenderDriver GLES_RenderDriver = {
|
|||||||
0 }
|
0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_OGL_ES && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_OGL_ES */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_OGL_ES2) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_OGL_ES2
|
||||||
|
|
||||||
#include "SDL_hints.h"
|
#include "SDL_hints.h"
|
||||||
#include "../../video/SDL_sysvideo.h" /* For SDL_GL_SwapWindowWithResult */
|
#include "../../video/SDL_sysvideo.h" /* For SDL_GL_SwapWindowWithResult */
|
||||||
@@ -1216,6 +1216,7 @@ static int GLES2_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cmd,
|
|||||||
if (SDL_memcmp(viewport, &cmd->data.viewport.rect, sizeof(cmd->data.viewport.rect)) != 0) {
|
if (SDL_memcmp(viewport, &cmd->data.viewport.rect, sizeof(cmd->data.viewport.rect)) != 0) {
|
||||||
SDL_copyp(viewport, &cmd->data.viewport.rect);
|
SDL_copyp(viewport, &cmd->data.viewport.rect);
|
||||||
data->drawstate.viewport_dirty = SDL_TRUE;
|
data->drawstate.viewport_dirty = SDL_TRUE;
|
||||||
|
data->drawstate.cliprect_dirty = SDL_TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2244,6 +2245,6 @@ SDL_RenderDriver GLES2_RenderDriver = {
|
|||||||
0 }
|
0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_OGL_ES2 && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_OGL_ES2 */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_OGL_ES2) && !defined(SDL_RENDER_DISABLED)
|
#if SDL_VIDEO_RENDER_OGL_ES2
|
||||||
|
|
||||||
#include "SDL_hints.h"
|
#include "SDL_hints.h"
|
||||||
#include "SDL_video.h"
|
#include "SDL_video.h"
|
||||||
@@ -444,6 +444,6 @@ const char *GLES2_GetShader(GLES2_ShaderType type)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_RENDER_OGL_ES2 && !SDL_RENDER_DISABLED */
|
#endif /* SDL_VIDEO_RENDER_OGL_ES2 */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
#ifndef SDL_shaders_gles2_h_
|
#ifndef SDL_shaders_gles2_h_
|
||||||
#define SDL_shaders_gles2_h_
|
#define SDL_shaders_gles2_h_
|
||||||
|
|
||||||
#if defined(SDL_VIDEO_RENDER_OGL_ES2)
|
#if SDL_VIDEO_RENDER_OGL_ES2
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "../../SDL_internal.h"
|
#include "../../SDL_internal.h"
|
||||||
|
|
||||||
#ifdef SDL_VIDEO_RENDER_PS2
|
#if SDL_VIDEO_RENDER_PS2
|
||||||
|
|
||||||
#include "../SDL_sysrender.h"
|
#include "../SDL_sysrender.h"
|
||||||
#include "SDL_hints.h"
|
#include "SDL_hints.h"
|
||||||
@@ -477,6 +477,7 @@ static int PS2_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cmd, v
|
|||||||
case SDL_RENDERCMD_SETVIEWPORT:
|
case SDL_RENDERCMD_SETVIEWPORT:
|
||||||
{
|
{
|
||||||
PS2_RenderSetViewPort(renderer, cmd);
|
PS2_RenderSetViewPort(renderer, cmd);
|
||||||
|
/* FIXME: We need to update the clip rect too, see https://github.com/libsdl-org/SDL/issues/9094 */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SDL_RENDERCMD_SETCLIPRECT:
|
case SDL_RENDERCMD_SETCLIPRECT:
|
||||||
|
|||||||
Loaded 100 of 144 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user