Split out the singular descriptor set and shader resources into N sets, where N is MaxFramesInFlight.
Changes
Created api-agnostic buffer handles in graphics/shader_resource/.
These buffers are created with a size and shader binding parameter and can then be bound with data which is sent to the GPU via ShaderResourceBus.
A new class, ShaderStorage, receives the events sent from the buffer handle types and manages the underlying vulkan data.
All the hard-coded classes surrounding shader resources have been removed.
MaxFramesInFlight and other constants have been moved to a new header called GraphicsConstants
All shader resource instances (point lights, objects, environment data, shadow maps, meshes, textures and cubemaps) are now created in NcGraphicsImplvia the api-agnostic handles.
Todo
Use std::variant to eliminate extra data being passed in the api-agnostic buffer handle xUpdateEventData types.
Goal
Split out the singular descriptor set and shader resources into N sets, where N is
MaxFramesInFlight
.Changes
graphics/shader_resource/
.ShaderResourceBus
.ShaderStorage
, receives the events sent from the buffer handle types and manages the underlying vulkan data.MaxFramesInFlight
and other constants have been moved to a new header calledGraphicsConstants
NcGraphicsImpl
via the api-agnostic handles.Todo
std::variant
to eliminate extra data being passed in the api-agnostic buffer handlexUpdateEventData
types.resolves #564 resolves #563