Android.mk
author Sam Lantinga
Sun, 05 Apr 2020 08:58:47 -0700
changeset 13689 c3055b205671
parent 13458 c6fd2bd1320f
child 13747 5e676d4c9949
permissions -rwxr-xr-x
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.
slouken@4964
     1
LOCAL_PATH := $(call my-dir)
slouken@4964
     2
slouken@4964
     3
###########################
slouken@4964
     4
#
slouken@4964
     5
# SDL shared library
slouken@4964
     6
#
slouken@4964
     7
###########################
slouken@4964
     8
slouken@4964
     9
include $(CLEAR_VARS)
slouken@4964
    10
slouken@6270
    11
LOCAL_MODULE := SDL2
slouken@4964
    12
slouken@4964
    13
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
slouken@4964
    14
slouken@7311
    15
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
slouken@7311
    16
slouken@5090
    17
LOCAL_SRC_FILES := \
slouken@4964
    18
	$(subst $(LOCAL_PATH)/,, \
slouken@4964
    19
	$(wildcard $(LOCAL_PATH)/src/*.c) \
slouken@4964
    20
	$(wildcard $(LOCAL_PATH)/src/audio/*.c) \
slouken@5090
    21
	$(wildcard $(LOCAL_PATH)/src/audio/android/*.c) \
slouken@5090
    22
	$(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \
slouken@12534
    23
	$(wildcard $(LOCAL_PATH)/src/audio/openslES/*.c) \
slouken@10879
    24
	$(LOCAL_PATH)/src/atomic/SDL_atomic.c.arm \
slouken@5003
    25
	$(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \
ewing@7501
    26
	$(wildcard $(LOCAL_PATH)/src/core/android/*.c) \
slouken@4964
    27
	$(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \
icculus@8097
    28
	$(wildcard $(LOCAL_PATH)/src/dynapi/*.c) \
slouken@4964
    29
	$(wildcard $(LOCAL_PATH)/src/events/*.c) \
slouken@4964
    30
	$(wildcard $(LOCAL_PATH)/src/file/*.c) \
slouken@5090
    31
	$(wildcard $(LOCAL_PATH)/src/haptic/*.c) \
slouken@11238
    32
	$(wildcard $(LOCAL_PATH)/src/haptic/android/*.c) \
slouken@4964
    33
	$(wildcard $(LOCAL_PATH)/src/joystick/*.c) \
slouken@5090
    34
	$(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \
slouken@12088
    35
	$(wildcard $(LOCAL_PATH)/src/joystick/hidapi/*.c) \
slouken@5092
    36
	$(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \
slouken@5090
    37
	$(wildcard $(LOCAL_PATH)/src/power/*.c) \
slouken@6448
    38
	$(wildcard $(LOCAL_PATH)/src/power/android/*.c) \
slouken@9054
    39
	$(wildcard $(LOCAL_PATH)/src/filesystem/android/*.c) \
slouken@12130
    40
	$(wildcard $(LOCAL_PATH)/src/sensor/*.c) \
slouken@12130
    41
	$(wildcard $(LOCAL_PATH)/src/sensor/android/*.c) \
slouken@5161
    42
	$(wildcard $(LOCAL_PATH)/src/render/*.c) \
slouken@5204
    43
	$(wildcard $(LOCAL_PATH)/src/render/*/*.c) \
slouken@4964
    44
	$(wildcard $(LOCAL_PATH)/src/stdlib/*.c) \
slouken@4964
    45
	$(wildcard $(LOCAL_PATH)/src/thread/*.c) \
slouken@5090
    46
	$(wildcard $(LOCAL_PATH)/src/thread/pthread/*.c) \
slouken@4964
    47
	$(wildcard $(LOCAL_PATH)/src/timer/*.c) \
slouken@5090
    48
	$(wildcard $(LOCAL_PATH)/src/timer/unix/*.c) \
slouken@4964
    49
	$(wildcard $(LOCAL_PATH)/src/video/*.c) \
gabomdq@7793
    50
	$(wildcard $(LOCAL_PATH)/src/video/android/*.c) \
slouken@11702
    51
	$(wildcard $(LOCAL_PATH)/src/video/yuv2rgb/*.c) \
slouken@11534
    52
	$(wildcard $(LOCAL_PATH)/src/test/*.c))
slouken@4964
    53
slouken@12088
    54
LOCAL_SHARED_LIBRARIES := hidapi
slouken@12088
    55
slouken@6208
    56
LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES
slouken@12387
    57
LOCAL_CFLAGS += \
slouken@12387
    58
	-Wall -Wextra \
slouken@12387
    59
	-Wdocumentation \
slouken@12387
    60
	-Wdocumentation-unknown-command \
slouken@12387
    61
	-Wmissing-prototypes \
slouken@12387
    62
	-Wunreachable-code-break \
slouken@12387
    63
	-Wunneeded-internal-declaration \
slouken@12387
    64
	-Wmissing-variable-declarations \
slouken@12387
    65
	-Wfloat-conversion \
slouken@12387
    66
	-Wshorten-64-to-32 \
sylvain@13040
    67
	-Wunreachable-code-return \
sylvain@13040
    68
	-Wshift-sign-overflow \
sylvain@13040
    69
	-Wstrict-prototypes \
sylvain@13040
    70
	-Wkeyword-macro \
sylvain@13040
    71
slouken@12387
    72
slouken@12387
    73
# Warnings we haven't fixed (yet)
slouken@12387
    74
LOCAL_CFLAGS += -Wno-unused-parameter -Wno-sign-compare
slouken@12387
    75
 
slouken@12387
    76
slouken@12534
    77
LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -lOpenSLES -llog -landroid
slouken@4964
    78
icculus@12032
    79
ifeq ($(NDK_DEBUG),1)
icculus@12032
    80
    cmd-strip :=
icculus@12032
    81
endif
slouken@11777
    82
icculus@12439
    83
LOCAL_STATIC_LIBRARIES := cpufeatures
icculus@12439
    84
slouken@4964
    85
include $(BUILD_SHARED_LIBRARY)
slouken@7804
    86
slouken@7804
    87
###########################
slouken@7804
    88
#
slouken@7804
    89
# SDL static library
slouken@7804
    90
#
slouken@7804
    91
###########################
slouken@7804
    92
slouken@7804
    93
LOCAL_MODULE := SDL2_static
slouken@7804
    94
slouken@7804
    95
LOCAL_MODULE_FILENAME := libSDL2
slouken@7804
    96
slouken@7804
    97
LOCAL_LDLIBS := 
slouken@11429
    98
LOCAL_EXPORT_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog -landroid
slouken@7804
    99
slouken@7804
   100
include $(BUILD_STATIC_LIBRARY)
slouken@11262
   101
slouken@11262
   102
###########################
slouken@11262
   103
#
slouken@11262
   104
# SDL main static library
slouken@11262
   105
#
slouken@11262
   106
###########################
slouken@11262
   107
slouken@11262
   108
include $(CLEAR_VARS)
slouken@11262
   109
slouken@11262
   110
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
slouken@11262
   111
slouken@11262
   112
LOCAL_MODULE := SDL2_main
slouken@11262
   113
slouken@11262
   114
LOCAL_MODULE_FILENAME := libSDL2main
slouken@11262
   115
slouken@11262
   116
include $(BUILD_STATIC_LIBRARY)
slouken@11262
   117
slouken@12088
   118
###########################
slouken@12088
   119
#
slouken@12088
   120
# hidapi library
slouken@12088
   121
#
slouken@12088
   122
###########################
slouken@11262
   123
slouken@12088
   124
include $(CLEAR_VARS)
slouken@12088
   125
slouken@12088
   126
LOCAL_CPPFLAGS += -std=c++11
slouken@12088
   127
slouken@12365
   128
LOCAL_SRC_FILES := src/hidapi/android/hid.cpp
slouken@12088
   129
slouken@12088
   130
LOCAL_MODULE := libhidapi
slouken@12088
   131
LOCAL_LDLIBS := -llog
slouken@12088
   132
slouken@12088
   133
include $(BUILD_SHARED_LIBRARY)
icculus@12439
   134
icculus@12439
   135
$(call import-module,android/cpufeatures)
icculus@12439
   136