Canvas frame is at it's core, an accumulator of meta data to draw to the screen.
At the moment it is split up into these groups:
* Colored items like non-textured sprites are just a list of triangles, simple vertices.
@todo
* Textured are grouped by their texture handle. Currently implemented as a list of lists of vertices. I don't think the vertices need to be grouped by sprite as long as they are triangle lists with texture coords included in the definition
* Images are just the same as Textured
* Text is a simple Font->Glyph lookup. XY coords of the font and the ASCII code
[[https://vulkan-tutorial.com/Vertex_buffers/Vertex_input_description|Vulkan C++ binding equivilent]]
===== Details =====
So, the **pipeline** we create over in the **shader** needs to know about the vertex data it will be using. This lines up pretty well because the Shader is precisely the mechanism which would know about this data.
--------------------
===== Data =====
**Borrowed:**
**Owns:**
--------------------
====== Dynamic Vertex ======
{{{code: lang="rust" linenumbers="True"
#[derive(Default, Debug, Clone)]
@ -46,8 +66,7 @@ unsafe impl<I> VertexDefinition<I> for RuntimeVertexDef
}
}
/// I don't know what the fuck is going on here... It just repackages the buffs