Skip to content

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) //!

CC: @awasmut @larshoerttrich @tfrisch

Edited by Ghost User