#kgfx - a graphics library designed to be medium-level (sort of an RHI)
21 messages · Page 1 of 1 (latest)
kgfx - a graphics library designed to be high-level yet moden
kgfx - a graphics library designed to be high-level yet modern
so
resources
plan is
user does this
create resources (textures/buffers)
get required sizes and alignments
create heap (with enough allocated for resources to fit and match alignment)
emplace resources in heap at proper aligned offsets
now how should referencing them work
maybe a separate handle
KGFXTexture texture = kgfxCreateTexture(...);
KGFXBuffer buffer = kgfxCreateBuffer(...);
KGFXu64 s = kgfxGetTextureSizeRequirement(..., texture);
KGFXu64 a = kgfxGetBufferAlignmentRequirement(..., buffer);
KGFXu64 r = s % a;
KGFXu64 size = s + ((r == 0) ? r : s - r) + kgfxGetBufferSizeRequirement(..., buffer);
KGFXHeap heap = kgfxCreateHeap(..., size, KGFX_HEAP_TYPE_DEVICE, ...);
kgfxEmplaceHeapTexture(..., heap, texture, 0);
kgfxEmplaceHeapBuffer(..., heap, buffer, s + ((r == 0) ? r : s - r));
now instead
KGFXTexture texture = kgfxCreateTexture(..., resourceType, format, width, height, depth);
KGFXBuffer buffer = kgfxCreateBuffer(..., resourceType, format, size);
an abstraction from Vulkan, d3d12, and metal
sort of like an RHI
it's meant to be high level compared to Vulkan but not OpenGL level
cursed code inside the buffer creation to initialize with a pointer to buffer data
kgfx - a graphics library designed to be medium-level (sort of an RHI)
buffer to image copying working