diff options
Diffstat (limited to 'shaders/api-test-ui.frag')
| -rw-r--r-- | shaders/api-test-ui.frag | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/shaders/api-test-ui.frag b/shaders/api-test-ui.frag index 06553df..8da6369 100644 --- a/shaders/api-test-ui.frag +++ b/shaders/api-test-ui.frag @@ -11,24 +11,40 @@ layout(location = 0) in struct { layout(set = 0, binding = 0) uniform sampler samplers[];
layout(set = 0, binding = 1) uniform texture2D textures[];
layout(set = 0, binding = 2, rgba32f) uniform image2D images[];
-// layout(set = 2, binding = 0) uniform parameters {
-// uint vertex_buffer;
-// vec2 scale;
-// vec2 translate;
-// uint texture_index;
-// } params;
-layout(buffer_reference) readonly buffer params {
+layout(buffer_reference) readonly buffer global_params {
+ uint padding;
+};
+
+layout(buffer_reference) readonly buffer pass_params {
+ uint padding;
+};
+
+struct vertex {
+ float pos_x;
+ float pos_y;
+ float uv_x;
+ float uv_y;
+ uint color;
+};
+
+layout(buffer_reference) readonly buffer vertices {
+ vertex vertices[];
+};
+
+layout(buffer_reference) readonly buffer draw_params {
+ vertices vertex_buffer;
vec2 scale;
vec2 translate;
uint texture_index;
- uint padding;
};
-layout(push_constant) uniform constants {
- layout(offset = 16) params ui_params;
-} consts;
+layout(push_constant) uniform registers {
+ global_params globals;
+ pass_params pass;
+ draw_params draw;
+} regs;
void main() {
- o_Color = In.color * texture(sampler2D(textures[nonuniformEXT(consts.ui_params.texture_index)], samplers[nonuniformEXT(0U)]), In.uv.xy);
+ o_Color = In.color * texture(sampler2D(textures[nonuniformEXT(regs.draw.texture_index)], samplers[nonuniformEXT(0U)]), In.uv.xy);
}
|
