Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2020-02-03T22:11:42-08:00


--------------------

=== Trac3r : A program to convert images to 2D toolpaths ===

 TODO:
	[X] Text rendering is mocked.
		[?] Pathfinder vulkan backend implementation
		    * Kinda big meh on this. It's very much oneshot based
		      and not incredibly compatible with vulkano...
	    [ ] Investigate lyon maybe
	[X] Currently using local copies of a few libraries:
		[x] shade_runner ( not gonna happen, my fork has diverged too far )
	[ ] Make a toolpath
	    [X] Read from GPU?
	    [ ] Figure out a way to vectorize the simple edge


--------------------

[[~/source/Trac3r-rust/doc/sfml_rust/index.html|Documentation Root]]
															 Docs
[[VkProcessor]]                                 [[~/source/Trac3r-rust/doc/sfml_rust/vkprocessor/struct.VkProcessor.html|===========]]
	[[VKProcessor:CanvasState|CanvasState]]                             [[~/source/Trac3r-rust/doc/sfml_rust/canvas/canvas_state/index.html|===========]]
	[[VKProcessor::CanvasFrame|CanvasFrame]]                             ===========
	[[VKProcessor:CompiledShader|CompiledShader]]                          ===========
	[[VKProcessor:CompuState|CompuState]]                              [[~/source/Trac3r-rust/doc/sfml_rust/compute/compu_state/struct.CompuState.html|===========]]
	
	[[VKProcessor:DynamicVertex|DynamicVertex]] (dead)                    ===========
	
[[Drawables]]	                            ===========


--------------------

==== Context switching ====

Okay. So now I have gotten myself into a bit of a pickle with the text rendering. What was supposed to be an "easy" hack to get it to work, ended turning into a complete vulkan backend written for the pathfinder gpu abstraction layer. This luckily is within my level of skill (I think) but it is no small task.

When I finally get this done, I should be able to allow [[VkProcessor]] to implement the Device trait, and then replicate the behaviour I am writing for the PoC!!

After this. I should have very robust and (hopefully) simple text rendering interface.


--------------------


===== 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



null)
