Skip to content

Instantly share code, notes, and snippets.

@anarsoul
Created November 19, 2021 19:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anarsoul/487deadc4253e52301d36235ba766d7d to your computer and use it in GitHub Desktop.
Save anarsoul/487deadc4253e52301d36235ba766d7d to your computer and use it in GitHub Desktop.
with instanced arrays:
draw_instanced(vertices = 3, instances = 10) {
outputs_size = instances * vertices * stride
output = allocate_bo(output_size);
output_offset = 0;
for (int i = 0; i < instances; i++) {
foreach(a, attributes) {
if (divisor != 0)
update_attribute_descriptor(a + i / divisor, stride = 0);
else
update_attribute_descriptor(a + vertices * i);
update_attribute_descriptor(gl_VertexID + i * vertices);
update_attribute_descriptor(gl_InstanceID + i, stride = 0);
update_varyings(output + output_offset);
output_offset += vertices * stride;
vs_cmd_draw(vertices);
plbu_cmd_draw(vertices);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment