molgfx-render 0.1.1

The render graph, passes and the engine that drives a frame.
Documentation
fn point_groups<D: Device>(
    context: &PointGroupContext<'_, D>,
    inputs: &PointGroupInputs<'_, D>,
) -> PointGroups<D> {
    let cull = context.device.create_bind_group(&BindGroupDesc {
        label: "group1: generic point culling",
        layout: context.cull_layout,
        entries: &[
            BindGroupEntry::Buffer { binding: 0, buffer: inputs.positions },
            BindGroupEntry::Buffer {
                binding: 1,
                buffer: inputs.output,
            },
            BindGroupEntry::Buffer {
                binding: 3,
                buffer: inputs.config,
            },
            BindGroupEntry::Buffer {
                binding: 4,
                buffer: context.tiles,
            },
            BindGroupEntry::Buffer {
                binding: 5,
                buffer: inputs.visual.instructions,
            },
            BindGroupEntry::Buffer {
                binding: 6,
                buffer: inputs.visual.parameters,
            },
            BindGroupEntry::Buffer {
                binding: 7,
                buffer: inputs.visual.properties,
            },
            BindGroupEntry::Buffer {
                binding: 8,
                buffer: inputs.visual.results,
            },
            BindGroupEntry::Buffer {
                binding: 9,
                buffer: inputs.visual.config,
            },
            BindGroupEntry::Buffer { binding: 10, buffer: inputs.frame_end },
        ],
    });
    let render = context.device.create_bind_group(&BindGroupDesc {
        label: "group2: generic point rendering",
        layout: context.render_layout,
        entries: &[
            BindGroupEntry::Buffer { binding: 0, buffer: inputs.positions },
            BindGroupEntry::Buffer {
                binding: 1,
                buffer: inputs.output,
            },
            BindGroupEntry::Buffer {
                binding: 2,
                buffer: inputs.config,
            },
            BindGroupEntry::Buffer {
                binding: 3,
                buffer: inputs.visual.properties,
            },
            BindGroupEntry::Buffer {
                binding: 4,
                buffer: inputs.visual.results,
            },
            BindGroupEntry::Buffer {
                binding: 5,
                buffer: inputs.visual.config,
            },
            BindGroupEntry::Buffer {
                binding: 6,
                buffer: inputs.visual.fragment_program,
            },
            BindGroupEntry::Buffer { binding: 7, buffer: inputs.frame_end },
        ],
    });
    PointGroups { cull, render }
}