You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.5 KiB
77 lines
1.5 KiB
Content-Type: text/x-zim-wiki
|
|
Wiki-Format: zim 0.4
|
|
Creation-Date: 2020-01-21T00:01:37-08:00
|
|
|
|
====== VKProcessor ======
|
|
|
|
[[~/source/Trac3r-rust/doc/sfml_rust/vkprocessor/struct.VkProcessor.html|Documentation]]
|
|
|
|
===== Details =====
|
|
Vk Processors is a do_all class for interaction with the render window, vulkan state, and backend. Unfortunately this explodes out to managing all of the textures, kernels, shaders, and fonts. VKProcessor gives out handles to these stored data which can then be used in other parts of the program.
|
|
|
|
**Lifetime of Handles:**
|
|
Handles are given out during creation or certain elements or query of elements. The actual elements are stored in a contiguous 1d array. The **Handle** is just an index into that array.
|
|
|
|
**Diagram for the class**
|
|
[[./vkprocessor.drawio]]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--------------------
|
|
|
|
===== Data =====
|
|
|
|
**Borrowed:**
|
|
instance
|
|
device
|
|
queue
|
|
|
|
**Owns:**
|
|
[[+CanvasState|CanvasState]]
|
|
[[+CompuState|CompuState]]
|
|
|
|
--------------------
|
|
|
|
===== CanvasState =====
|
|
<[[+CanvasState|CanvasState]]>:[[~/source/Trac3r-rust/doc/sfml_rust/canvas/canvas_state/index.html|docs]]
|
|
|
|
* Stores the texture, image, and font buffers.
|
|
* Has interface for Frame based draws
|
|
* Holds compiled shaders
|
|
|
|
===== CompuState =====
|
|
|
|
**Holds:**
|
|
* A very generic 2d compute buffer for computation
|
|
* The kernels which will compute them
|
|
|
|
2D list storage. So all kernels and buffers are indexed by integer handles
|
|
|
|
compute_commands is a fairly benign function which takes the 3 types of
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|