docs/README-cmake.md
author Sam Lantinga
Sun, 05 Apr 2020 08:58:47 -0700
changeset 13689 c3055b205671
parent 13088 d55db8d27108
permissions -rw-r--r--
Fixed bug 5015 - SDL_RenderReadPixels on DirectX 11.1 backend seems to be broken

Konrad

It appears that I cannot use SDL_RenderReadPixels on a bound framebuffer (SDL_Texture set as render target) as it simply results in gibberish data. However, drawing that framebuffer into the default target (window surface) does render it correctly. Other backends (OpenGL, software, Direct3D) do work fine.

It looks to me like D3D11_RenderReadPixels just gets the general backbuffer and not the current render target and its backbuffer.

Here is the patch which actually fetches the current render target and its underlying ID3D11Resource which is ID3D11Texture2D.
     1 CMake
     2 ================================================================================
     3 (www.cmake.org)
     4 
     5 SDL's build system was traditionally based on autotools. Over time, this
     6 approach has suffered from several issues across the different supported 
     7 platforms.
     8 To solve these problems, a new build system based on CMake is under development.
     9 It works in parallel to the legacy system, so users can experiment with it
    10 without complication.
    11 While still experimental, the build system should be usable on the following
    12 platforms:
    13 
    14 * FreeBSD
    15 * Linux
    16 * VS.NET 2010
    17 * MinGW and Msys
    18 * macOS, iOS, and tvOS, with support for XCode
    19 
    20 
    21 ================================================================================
    22 Usage
    23 ================================================================================
    24 
    25 Assuming the source for SDL is located at ~/sdl
    26 
    27     cd ~
    28     mkdir build
    29     cd build
    30     cmake ../sdl
    31 
    32 This will build the static and dynamic versions of SDL in the ~/build directory.
    33 
    34 
    35 ================================================================================
    36 Usage, iOS/tvOS
    37 ================================================================================
    38 
    39 CMake 3.14+ natively includes support for iOS and tvOS.  SDL binaries may be built
    40 using Xcode or Make, possibly among other build-systems.
    41 
    42 When using a recent version of CMake (3.14+), it should be possible to:
    43 
    44 - build SDL for iOS, both static and dynamic
    45 - build SDL test apps (as iOS/tvOS .app bundles)
    46 - generate a working SDL_config.h for iOS (using SDL_config.h.cmake as a basis)
    47 
    48 To use, set the following CMake variables when running CMake's configuration stage:
    49 
    50 - `CMAKE_SYSTEM_NAME=<OS>`   (either `iOS` or `tvOS`)
    51 - `CMAKE_OSX_SYSROOT=<SDK>`  (examples: `iphoneos`, `iphonesimulator`, `iphoneos12.4`, `/full/path/to/iPhoneOS.sdk`,
    52                               `appletvos`, `appletvsimulator`, `appletvos12.4`, `/full/path/to/AppleTVOS.sdk`, etc.)
    53 - `CMAKE_OSX_ARCHITECTURES=<semicolon-separated list of CPU architectures>` (example: "arm64;armv7s;x86_64")
    54 
    55 
    56 ### Examples (for iOS/tvOS):
    57 
    58 - for iOS-Simulator, using the latest, installed SDK:
    59 
    60     `cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_ARCHITECTURES=x86_64`
    61 
    62 - for iOS-Device, using the latest, installed SDK, 64-bit only
    63 
    64     `cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_ARCHITECTURES=arm64`
    65 
    66 - for iOS-Device, using the latest, installed SDK, mixed 32/64 bit
    67 
    68     `cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_ARCHITECTURES="arm64;armv7s"`
    69 
    70 - for iOS-Device, using a specific SDK revision (iOS 12.4, in this example):
    71 
    72     `cmake ~/sdl -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos12.4 -DCMAKE_OSX_ARCHITECTURES=arm64`
    73 
    74 - for iOS-Simulator, using the latest, installed SDK, and building SDL test apps (as .app bundles):
    75 
    76     `cmake ~/sdl -DSDL_TEST=1 -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_ARCHITECTURES=x86_64`
    77 
    78 - for tvOS-Simulator, using the latest, installed SDK:
    79 
    80     `cmake ~/sdl -DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_ARCHITECTURES=x86_64`
    81 
    82 - for tvOS-Device, using the latest, installed SDK:
    83 
    84     `cmake ~/sdl -DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvos -DCMAKE_OSX_ARCHITECTURES=arm64`