1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-06-06 13:17:46 +00:00

Fix some assertions in game renderer

This commit is contained in:
Joshua Goins 2025-06-02 20:25:59 -04:00
parent 456cde8727
commit e2a0b83fb0

View file

@ -318,10 +318,11 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, Camera &camera, Scene &
}
for (const auto &part : model.sourceObject->parts) {
RenderMaterial renderMaterial = model.sourceObject->materials[part.materialIndex];
RenderMaterial renderMaterial;
if (static_cast<size_t>(part.materialIndex + 1) > model.sourceObject->materials.size()) {
renderMaterial = model.sourceObject->materials[0]; // TODO: better fallback
} else {
renderMaterial = model.sourceObject->materials[part.materialIndex];
}
if (renderMaterial.shaderPackage.p_ptr == nullptr) {
@ -547,10 +548,11 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, Camera &camera, Scene &
for (auto &model : models) {
for (const auto &part : model.sourceObject->parts) {
RenderMaterial renderMaterial = model.sourceObject->materials[part.materialIndex];
RenderMaterial renderMaterial;
if (static_cast<size_t>(part.materialIndex + 1) > model.sourceObject->materials.size()) {
renderMaterial = model.sourceObject->materials[0]; // TODO: better fallback
} else {
renderMaterial = model.sourceObject->materials[part.materialIndex];
}
if (renderMaterial.shaderPackage.p_ptr == nullptr) {