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 canvasState.run takes canvasFrame 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(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