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