gpu: Add the GSK_GPU_IMAGE_SRGB flag
This commit just adds the flag, but I wanted to make it an individual commit to explain the purpose: The SRGB flag is meant to be used for images that have an SRGB format. In Vulkan terms, that means VK_FORMAT_*_SRGB. In GL, it means GL_SRGB or GL_SRGB_ALPHA. As these formats have been madatory since GL 3.0, we can (ab)use them uncoditionally. Images in these formats are renderable, too, so it's not just usable for uploading. What these images allow is treating the data as sRGB while shaders access them as linear, thereby getting sRGB<=>linear conversions for free. It is also possible to switch off the linearization of these images and treat them as sRGB, which allows all sorts of shenanigans, though one has to be careful if that turning off applies to the relevant GL/Vulkan code in question.
This commit is contained in:
@@ -30,6 +30,7 @@ typedef enum {
|
||||
GSK_GPU_IMAGE_MIPMAP = (1 << 5),
|
||||
GSK_GPU_IMAGE_FILTERABLE = (1 << 6),
|
||||
GSK_GPU_IMAGE_RENDERABLE = (1 << 7),
|
||||
GSK_GPU_IMAGE_SRGB = (1 << 8),
|
||||
} GskGpuImageFlags;
|
||||
|
||||
typedef enum {
|
||||
|
||||
Reference in New Issue
Block a user