Avokadoen / ecez_vulkan

0 stars 0 forks source link

Support multiple shaders for models #30

Open Avokadoen opened 1 year ago

Avokadoen commented 1 year ago

API:

      var context = try RenderContext.init(allocator, window, &[_]PipelineInitialize{
            .{
                .update_rate = .{ .time_seconds = 0.01 },
                .vertex_path = "some/path/shader.vert",
                .fragment_path = "some/path/shader.frag",
                .mesh_instances =  &[_]RenderContext.MesInstancehInitializeContex{
                    .{
                        .cgltf_path = "models/ScifiHelmet/SciFiHelmet.gltf",
                        .instance_count = 1,
                    },
                    .{
                        .cgltf_path = "models/BoxTextured/BoxTextured.gltf",
                        .instance_count = 2,
                    },
                }, 
            },
            .{
                .update_rate = .{ .time_seconds = 0.05 },
                .vertex_path = "some_different/path/shader.vert",
                .fragment_path = "some_different/path/shader.frag",
                .mesh_instances =  &[_]RenderContext.MesInstancehInitializeContex{
                    .{
                        .cgltf_path = "models/ScifiHelmet/SciFiHelmet.gltf",
                        .instance_count = 3,
                    },
                    .{
                        .cgltf_path = "models/BoxTextured/BoxTextured.gltf",
                        .instance_count = 4,
                    },
                }, 
            },
    });

Of course mesh and instance handles would need to be updated as well.