layout(rgba16f, set = 0, binding = 0) uniform image2D DrawImage; layout(set = 1, binding = 0) uniform texture2D SpriteAtlasArray[24]; layout(set = 1, binding = 1) uniform sampler SamplerNearest; layout (push_constant) uniform Constants { mat4 projection; vec2 resolution; vec2 aem_range; uint atlas_index; float threshold_em; float antialias_per_em; float distance_range; } PC; #define SpriteAtlas sampler2D(SpriteAtlasArray[PC.atlas_index], SamplerNearest) #ifdef VERT_SHADER # define FragData out struct FragDataOut # define FragDataFlat flat out struct FragDataFlatOut #endif #ifdef FRAG_SHADER # define FragData in struct FragDataIn # define FragDataFlat flat in struct FragDataFlatIn #endif