Opened 6 years ago

Closed 6 years ago

#55184 closed enhancement (fixed)

libsdl2_image: Request for variant or change to default build

Reported by: jdolan (Jay Dolan) Owned by: jmroot (Joshua Root)
Priority: Normal Milestone:
Component: ports Version: 2.4.2
Keywords: Cc:
Port: libsdl2_image

Description (last modified by ryandesign (Ryan Carsten Schmidt))

By default, on OS X, SDL2_image relies on Apple's ImageIO backend to load most image formats. Indeed, this is how SDL2_image is currently compiled via the Portfile. Unfortunately, ImageIO is not without significant problems that can break certain applications, e.g.:

https://stackoverflow.com/questions/46975125/sdl2-pre-multiplying-alpha-channel-when-loading-surface-on-os-x

The SDL2_image port already depends on libpng, jpeg, and tiff. Using these backends produces uniform behavior that is consistent with other platforms. In my opinion, it would make sense to switch off the ImageIO backend, and compile SDL2_image with libpng, libjpeg and libtiff support instead. Or, alternatively, this option could be made available as a variant.

Here is the configure line that produced the best working result on my machine. Note that I had to disable all of the dynamic library loading backends, as they fail for some reason:

    ./configure --prefix=/opt/local \
        --disable-imageio \
        --disable-png-shared \
        --disable-tif-shared \
        --disable-jpg-shared \
        --disable-webp-shared

Change History (3)

comment:1 Changed 6 years ago by Schamschula (Marius Schamschula)

Owner: set to jmroot
Status: newassigned

In the future, please add the maintainer to the CC field. In this case port info --maintainer libsdl2_image

comment:2 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: sdl sdl2 sdl2_image removed
Type: requestenhancement

comment:3 Changed 6 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: assignedclosed

In 577c55f4bd5a3e8707f60a41b4ef797fe37310f5/macports-ports:

libsdl2_image: update to 2.0.3

Also don't use ImageIO because it doesn't support non-premultiplied
alpha.

Closes: #55184

Note: See TracTickets for help on using tickets.