|
|
1
4
SDL_image是平台特定图像加载代码的包装器,而不是在所有平台上使用相同的图像加载程序。
这样做的好处是减少了SDL_图像的大小,因为它不需要附带任何图像解码代码,而是可以动态链接到可能已经安装在系统上的内容。然而,在macOS和iOS上,核心图形不支持非预乘alpha,因此SDL_image必须将其反转。 请参阅: mac-opengl - Re: kCGImageAlphaFirst not implemented (Was: (no subject)) 从2007年5月起(从Wayback机器):
LibSDL bug #838 - OSX SDL darkens colours proportional to increase in alpha 在SDL_图像中引入了一种变通方法 changeset 240 . 你可以看到,变通方法仅仅是对α进行非预乘,这是一个非常有损的过程。
为了解决这个问题,您可以在使用LibPNG的macOS上构建自己版本的SDL_image。这应该可以通过配置实现,您不必对SDL_图像代码本身进行任何更改。为此,请使用
|