1
0
Fork 0
forked from wry/wry

vulkan: use specialization constants

This commit is contained in:
Julian Orth 2025-01-30 13:54:37 +01:00
parent 218f8d7ba2
commit cca0af3d0d
7 changed files with 58 additions and 39 deletions

View file

@ -1,5 +1,7 @@
#version 450
#include "frag_spec_const.glsl"
layout(push_constant, std430) uniform Data {
layout(offset = 32) vec4 color;
} data;

View file

@ -0,0 +1 @@
layout(constant_id = 0) const bool src_has_alpha = false;

View file

@ -1,5 +1,7 @@
#version 450
#include "frag_spec_const.glsl"
#ifdef ALPHA_MULTIPLIER
layout(push_constant, std430) uniform Data {
layout(offset = 64) float mul;
@ -11,10 +13,11 @@ layout(location = 0) out vec4 out_color;
void main() {
#ifdef ALPHA_MULTIPLIER
#ifdef ALPHA
out_color = textureLod(tex, tex_pos, 0) * data.mul;
#endif // !ALPHA
out_color = vec4(textureLod(tex, tex_pos, 0).rgb * data.mul, data.mul);
if (src_has_alpha) {
out_color = textureLod(tex, tex_pos, 0) * data.mul;
} else {
out_color = vec4(textureLod(tex, tex_pos, 0).rgb * data.mul, data.mul);
}
#else // !ALPHA_MULTIPLIER
out_color = textureLod(tex, tex_pos, 0);
#endif