Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2020-02-03T22:11:42-08:00
====== Home ======
[[~/source/Trac3r-rust/doc/sfml_rust/index.html|Documentation Root]]
Main Systems:
[[~/source/Trac3r-rust/doc/sfml_rust/sprite/index.html|Spri]][[~/source/Trac3r-rust/doc/sfml_rust/sprite/index.html|te]]
[[CanvasContainerClasses]]
Docs
[[VkProcessor]] [[~/source/Trac3r-rust/doc/sfml_rust/vkprocessor/struct.VkProcessor.html|===========]]
[[CanvasState]] [[~/source/Trac3r-rust/doc/sfml_rust/canvas/canvas_state/index.html|===========]]
[[DynamicVertex]]
[[CompuState]] [[~/source/Trac3r-rust/doc/sfml_rust/compute/compu_state/struct.CompuState.html|===========]]
--------------------
====== Warming Up ======
Currently I'm getting my bearings again on this project.
=== canvas ===
I made a maybe(?) good change to the heirarchy of the canvas. Hiding the construction of handles from anything outside.
Currently, canvas is separated out to the state container itself and one API class for users to interact with, in addition to a set of 'managed' objects
Buffers and Handles are at one level, shared with text which is unrelated.
Why do I hold the shader handles (CompiledShaderHandle)
In Shader lie the shader compilers, pipelines, and supporting data.
**Current Question:**
Where do I put the CompiledShaderHandles?
I need to put them where I create them. The actual shader doesn't.
=== canvas frame ===
The current workflow:
enum of vertex types
sprite holds vertex::type1
poly holds vertex::type2
canvasframe holds <enumType>
canvasState.run takes canvasFrame<enumType>
canvasState.draw_commands_test(command_buffer, framebuffers, image_num, canvas_frame);
--------------------
===== Links =====
Dynamic Keys in HashMap
https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=b4630cf98afa88fc0fbffdb0112af1c1
VertexDefinition
https://github.com/tomaka/vulkano-examples/blob/81f5a4eb3c5f3fcc6a194d3c41e53b2bc66f7add/gltf/gltf_system.rs#L687-L795
pub enum Content {
Text(String),
Number(u32),
}
impl From for String {
fn wrap(self) {
Content::Text(self)
}
}
impl From for u32 {
fn wrap(self) {
Content::Number(self)
}
}
fn any_content<T>(value : T) where T : IntoContent {
let content : Content = value.wrap();
}
├── canvas
│ ├── canvas_frame.rs
│ ├── canvas_state.rs
│ ├── managed
│ │ ├── canvas_text.rs
│ │ ├── gpu_buffers.rs
│ │ ├── handles.rs
│ │ ├── mod.rs
│ │ └── shader
│ │ ├── dynamic_vertex.rs
│ │ ├── generic_shader.rs
│ │ ├── mod.rs
│ │ ├── shader_common.rs
│ │ └── text_shader.rs
│ └── mod.rs
├── compute
│ ├── compu_frame.rs
│ ├── compu_state.rs
│ ├── managed
│ │ ├── compu_buffer.rs
│ │ ├── compu_kernel.rs
│ │ ├── compu_sprite.rs
│ │ ├── handles.rs
│ │ └── mod.rs
│ └── mod.rs
├── main.rs
├── sprite.rs
├── util
│ ├── mod.rs
│ ├── timer.rs
│ ├── vertex_2d.rs
│ └── vertex_3d.rs
└── vkprocessor.rs