trueno/src/pipelines.jai
2025-04-26 10:51:41 +03:00

28 lines
854 B
Plaintext

Pipeline_Binding :: struct {
pipeline: sg_pipeline;
bind: sg_bindings;
}
gPipelines : struct {
arbtri: Pipeline_Binding;
}
create_pipelines :: () {
create_arbtri_pipeline();
}
gArbtriMem : [1000*3*9]float;
create_arbtri_pipeline :: () {
pipeline: sg_pipeline_desc;
shader_desc := triangle_shader_desc(sg_query_backend());
pipeline.shader = sg_make_shader(*shader_desc);
pipeline.layout.attrs[ATTR_triangle_position] = .{ format = .FLOAT3 };
pipeline.layout.attrs[ATTR_triangle_color0] = .{ format = .FLOAT4 };
pipeline.layout.attrs[ATTR_triangle_uv] = .{ format = .FLOAT2 };
gPipelines.arbtri.pipeline = sg_make_pipeline(*pipeline);
buffer := sg_buffer_desc.{ usage = .DYNAMIC, size = size_of(type_of(gArbtriMem)) };
gPipelines.arbtri.bind.vertex_buffers[0] = sg_make_buffer(*buffer);
}