Resource Management
Wir brauchen:
- Image-Klasse
- Buffer-Klasse
- Sampler-Klasse
- Funktionen, die jeweils ein ImageHandle, BufferHandle, SamplerHandle zurückgeben.
- (MemoryManager, der das vkDeviceMemory allokiert, offsets berechnet, mapping bereitstellt)
Erste Schritte:
-
Framework auschecken! Funktioniert alles, kompiliert es. -
Lesen! Buffer! Images! Sampler! -
Rumspielen! Einfachen Buffer erstellen. Das entsprechende Memory dafür erstellen. Binden.
Für das erste Dreieck:
- Buffer-Klasse/-Handle und die Funktion im Core müssen ausimplementiert sein, damit man einen Vertex Buffer für die drei Vertices des Dreickes anlegen kann.
Pseudocode:
struct vertex_t {
int x,y;
};
//vkcv::Buffer<vertex_t> buf = vkcv::createBuffer<vertex_t>();
struct vkcv::Buffer<typname T> {
uint64_t index;
enum TYPE type;
size_t size;
};
vkcv::Buffer<vertex_t> buffer = vkcv::createBuffer<vertex_t>(vkcv::UNIFORM, 6000); // uint64_t
vkcv::Buffer<bool> b2 = vkcv::createBuffer<bool>(...);
vertex_t triangle [3];
fill_buffer(buffer, triangle, 3) //!
Edited by Ghost User