Makefile.os2
author Sam Lantinga
Sun, 05 Apr 2020 08:58:47 -0700
changeset 13689 c3055b205671
parent 13609 5abd513b853d
child 13797 55ec5ae4aa0b
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.
sezeroz@13262
     1
# Open Watcom makefile to build SDL2.dll for OS/2
sezeroz@12373
     2
# wmake -f Makefile.os2
sezeroz@12329
     3
sezeroz@12373
     4
LIBNAME = SDL2
slouken@13609
     5
VERSION = 2.0.13
sezeroz@12373
     6
DESCRIPTION = Simple DirectMedia Layer 2
sezeroz@12373
     7
sezeroz@12373
     8
LIBHOME = .
sezeroz@12373
     9
LIBPATH = $(LIBHOME)/lib
sezeroz@12373
    10
DLLFILE = $(LIBHOME)/$(LIBNAME).dll
sezeroz@12373
    11
LIBFILE = $(LIBHOME)/$(LIBNAME).lib
sezeroz@12373
    12
LNKFILE = $(LIBNAME).lnk
sezeroz@12329
    13
sezeroz@12329
    14
INCPATH = -I"$(%WATCOM)/h/os2" -I"$(%WATCOM)/h"
sezeroz@12373
    15
INCPATH+= -I"$(LIBHOME)/h"
sezeroz@12329
    16
INCPATH+= -Iinclude
sezeroz@12329
    17
sezeroz@12419
    18
LIBM = libm.lib
sezeroz@12419
    19
LIBS = mmpm2.lib libuls.lib libconv.lib $(LIBM)
sezeroz@12373
    20
sezeroz@12329
    21
CFLAGS = -bt=os2 -d0 -q -bm -5s -fp5 -fpi87 -sg -oteanbmier -ei
sezeroz@12329
    22
# max warnings:
sezeroz@12329
    23
CFLAGS+= -wx
sezeroz@12329
    24
# building dll:
sezeroz@12329
    25
CFLAGS+= -bd
sezeroz@12329
    26
# the include paths :
sezeroz@12329
    27
CFLAGS+= $(INCPATH)
sezeroz@12425
    28
# building SDL itself (for DECLSPEC):
sezeroz@12329
    29
CFLAGS+= -DBUILD_SDL
sezeroz@12329
    30
sezeroz@12419
    31
MSRCS= e_atan2.c e_exp.c e_fmod.c e_log10.c e_log.c e_pow.c e_rem_pio2.c e_sqrt.c &
sezeroz@12419
    32
       k_cos.c k_rem_pio2.c k_sin.c k_tan.c &
sezeroz@12419
    33
       s_atan.c s_copysign.c s_cos.c s_fabs.c s_floor.c s_scalbn.c s_sin.c s_tan.c
sezeroz@12419
    34
sezeroz@12329
    35
SRCS = SDL.c SDL_assert.c SDL_error.c SDL_log.c SDL_dataqueue.c SDL_hints.c
sezeroz@13262
    36
SRCS+= SDL_getenv.c SDL_iconv.c SDL_malloc.c SDL_qsort.c SDL_stdlib.c SDL_string.c SDL_strtokr.c
sezeroz@12329
    37
SRCS+= SDL_cpuinfo.c SDL_atomic.c SDL_spinlock.c SDL_thread.c SDL_timer.c
sezeroz@12329
    38
SRCS+= SDL_rwops.c SDL_power.c
sezeroz@12329
    39
SRCS+= SDL_audio.c SDL_audiocvt.c SDL_audiodev.c SDL_audiotypecvt.c SDL_mixer.c SDL_wave.c
sezeroz@12329
    40
SRCS+= SDL_events.c SDL_quit.c SDL_keyboard.c SDL_mouse.c SDL_windowevents.c &
sezeroz@12329
    41
       SDL_clipboardevents.c SDL_dropevents.c SDL_displayevents.c SDL_gesture.c &
sezeroz@12329
    42
       SDL_sensor.c SDL_touch.c
sezeroz@12329
    43
SRCS+= SDL_haptic.c SDL_gamecontroller.c SDL_joystick.c
sezeroz@12329
    44
SRCS+= SDL_render.c yuv_rgb.c SDL_yuv.c SDL_yuv_sw.c SDL_blendfillrect.c &
sezeroz@12329
    45
       SDL_blendline.c SDL_blendpoint.c SDL_drawline.c SDL_drawpoint.c &
sezeroz@12329
    46
       SDL_render_sw.c SDL_rotate.c
sezeroz@12329
    47
SRCS+= SDL_blit.c SDL_blit_0.c SDL_blit_1.c SDL_blit_A.c SDL_blit_auto.c &
sezeroz@12329
    48
       SDL_blit_copy.c SDL_blit_N.c SDL_blit_slow.c SDL_fillrect.c SDL_bmp.c &
sezeroz@12329
    49
       SDL_pixels.c SDL_rect.c SDL_RLEaccel.c SDL_shape.c SDL_stretch.c &
sezeroz@12329
    50
       SDL_surface.c SDL_video.c SDL_clipboard.c SDL_vulkan_utils.c SDL_egl.c
sezeroz@12329
    51
sezeroz@12329
    52
SRCS+= SDL_syscond.c SDL_sysmutex.c SDL_syssem.c SDL_systhread.c SDL_systls.c
sezeroz@12329
    53
SRCS+= SDL_systimer.c
sezeroz@12329
    54
SRCS+= SDL_sysloadso.c
sezeroz@12329
    55
SRCS+= SDL_sysfilesystem.c
sezeroz@12329
    56
SRCS+= SDL_syshaptic.c SDL_sysjoystick.c
sezeroz@12329
    57
SRCS+= SDL_dummyaudio.c SDL_diskaudio.c
sezeroz@12329
    58
SRCS+= SDL_nullvideo.c SDL_nullframebuffer.c SDL_nullevents.c
sezeroz@12329
    59
SRCS+= SDL_dummysensor.c
sezeroz@12329
    60
sezeroz@12329
    61
SRCS+= SDL_dynapi.c
sezeroz@12329
    62
sezeroz@12329
    63
OBJS = $(SRCS:.c=.obj)
sezeroz@12419
    64
MOBJS= $(MSRCS:.c=.obj)
sezeroz@12329
    65
sezeroz@12331
    66
.extensions:
sezeroz@12331
    67
.extensions: .lib .dll .obj .c .asm
sezeroz@12331
    68
sezeroz@12373
    69
.c: ./src;./src/dynapi;./src/audio;./src/cpuinfo;./src/events;./src/file;./src/haptic;./src/joystick;./src/power;./src/render;./src/render/software;./src/sensor;./src/stdlib;./src/thread;./src/timer;./src/video;./src/video/yuv2rgb;./src/atomic;./src/audio/disk;
sezeroz@12373
    70
.c: ./src/haptic/dummy;./src/joystick/dummy;./src/audio/dummy;./src/video/dummy;./src/sensor/dummy;
sezeroz@12373
    71
.c: ./src/loadso/dummy;./src/filesystem/dummy;./src/timer/dummy;./src/thread/generic;
sezeroz@12331
    72
sezeroz@12329
    73
all: $(DLLFILE) $(LIBFILE) .symbolic
sezeroz@12329
    74
sezeroz@12419
    75
$(DLLFILE): $(OBJS) $(LIBM) $(LNKFILE)
sezeroz@12373
    76
    @echo * Linking: $@
sezeroz@12329
    77
    wlink @$(LNKFILE)
sezeroz@12329
    78
sezeroz@12373
    79
$(LIBFILE): $(DLLFILE)
sezeroz@12373
    80
    @echo * Creating LIB file: $@
sezeroz@12329
    81
    wlib -q -b -n -c -pa -s -t -zld -ii -io $* $(DLLFILE)
sezeroz@12329
    82
sezeroz@12329
    83
.c.obj:
sezeroz@12329
    84
    wcc386 $(CFLAGS) -fo=$^@ $<
sezeroz@12329
    85
sezeroz@12329
    86
SDL_cpuinfo.obj: SDL_cpuinfo.c
sezeroz@12329
    87
    wcc386 $(CFLAGS) -wcd=200 -fo=$^@ $<
sezeroz@12329
    88
sezeroz@12329
    89
SDL_rwops.obj: SDL_rwops.c
sezeroz@12329
    90
    wcc386 $(CFLAGS) -wcd=136 -fo=$^@ $<
sezeroz@12329
    91
sezeroz@12995
    92
SDL_wave.obj: SDL_wave.c
sezeroz@12995
    93
    wcc386 $(CFLAGS) -wcd=124 -fo=$^@ $<
sezeroz@12995
    94
sezeroz@12329
    95
SDL_blendfillrect.obj: SDL_blendfillrect.c
sezeroz@12329
    96
    wcc386 $(CFLAGS) -wcd=200 -fo=$^@ $<
sezeroz@12329
    97
sezeroz@12329
    98
SDL_blendline.obj: SDL_blendline.c
sezeroz@12329
    99
    wcc386 $(CFLAGS) -wcd=200 -fo=$^@ $<
sezeroz@12329
   100
sezeroz@12329
   101
SDL_blendpoint.obj: SDL_blendpoint.c
sezeroz@12329
   102
    wcc386 $(CFLAGS) -wcd=200 -fo=$^@ $<
sezeroz@12329
   103
sezeroz@12329
   104
SDL_RLEaccel.obj: SDL_RLEaccel.c
sezeroz@12329
   105
    wcc386 $(CFLAGS) -wcd=201 -fo=$^@ $<
sezeroz@12329
   106
sezeroz@12419
   107
.c: ./src/libm;
sezeroz@12419
   108
$(LIBM): $(MOBJS)
sezeroz@12419
   109
    wlib -q -b -n -c -pa -s -t -zld -ii -io $@ $(MOBJS)
sezeroz@12419
   110
sezeroz@12329
   111
$(LNKFILE):
sezeroz@12373
   112
    @echo * Creating linker file: $@
sezeroz@12329
   113
    @%create $@
sezeroz@12329
   114
    @%append $@ SYSTEM os2v2_dll INITINSTANCE TERMINSTANCE
sezeroz@12329
   115
    @%append $@ NAME $(DLLFILE)
sezeroz@12329
   116
    @for %i in ($(OBJS)) do @%append $@ FILE %i
sezeroz@12373
   117
    @%append $@ LIBPATH $(%LIB);$(LIBPATH)
sezeroz@12373
   118
    @for %i in ($(LIBS)) do @%append $@ LIB %i
sezeroz@12329
   119
    @%append $@ OPTION QUIET
sezeroz@12373
   120
    @%append $@ OPTION IMPF=$(LIBHOME)/$^&.exp
sezeroz@12373
   121
    @%append $@ OPTION MAP=$(LIBHOME)/$^&.map
sezeroz@12373
   122
    @%append $@ OPTION DESCRIPTION '@$#libsdl org:$(VERSION)$#@$(DESCRIPTION)'
sezeroz@12329
   123
    @%append $@ OPTION QUIET
sezeroz@12329
   124
    @%append $@ OPTION ELIMINATE
sezeroz@12329
   125
    @%append $@ OPTION MANYAUTODATA
sezeroz@12329
   126
    @%append $@ OPTION OSNAME='OS/2 and eComStation'
sezeroz@12329
   127
    @%append $@ OPTION SHOWDEAD
sezeroz@12329
   128
sezeroz@12329
   129
clean: .SYMBOLIC
sezeroz@12329
   130
    @ echo * Clean: $(LIBNAME)
sezeroz@12329
   131
    @if exist *.obj rm *.obj
sezeroz@12329
   132
    @if exist *.err rm *.err
sezeroz@12329
   133
    @if exist $(LNKFILE) rm $(LNKFILE)
sezeroz@12419
   134
    @if exist $(LIBM) rm $(LIBM)
sezeroz@12329
   135
sezeroz@12329
   136
distclean: .SYMBOLIC clean
sezeroz@12373
   137
    @if exist $(LIBHOME)/*.exp rm $(LIBHOME)/*.exp
sezeroz@12373
   138
    @if exist $(LIBHOME)/*.map rm $(LIBHOME)/*.map
sezeroz@12373
   139
    @if exist $(LIBFILE) rm $(LIBFILE)
sezeroz@12329
   140
    @if exist $(DLLFILE) rm $(DLLFILE)