From f713f5c150e3d51a17c0d1cd037a883d33038e50 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Fri, 10 May 2024 16:37:10 -0400 Subject: [PATCH] Resolve more warnings --- armoury/src/singlegearview.cpp | 5 -- extern/libphysis | 2 +- mapeditor/src/maplistwidget.cpp | 2 +- mdlviewer/src/mainwindow.cpp | 2 +- parts/exd/exdpart.cpp | 4 +- parts/mdl/mdlexport.cpp | 4 +- parts/mdl/mdlimport.cpp | 9 ++-- parts/mdl/mdlpart.cpp | 9 ++-- parts/mtrl/mtrlpart.cpp | 6 +-- parts/shpk/shpkpart.cpp | 3 +- renderer/include/baserenderer.h | 2 +- renderer/include/gamerenderer.h | 6 +-- renderer/include/simplerenderer.h | 2 +- renderer/src/gamerenderer.cpp | 81 +++++++++++++++++-------------- renderer/src/rendermanager.cpp | 23 +++++---- renderer/src/simplerenderer.cpp | 4 +- sagasu/src/filetreemodel.cpp | 2 +- 17 files changed, 91 insertions(+), 75 deletions(-) diff --git a/armoury/src/singlegearview.cpp b/armoury/src/singlegearview.cpp index 220c89d..f12d08d 100644 --- a/armoury/src/singlegearview.cpp +++ b/armoury/src/singlegearview.cpp @@ -140,11 +140,6 @@ SingleGearView::SingleGearView(GameData *data, FileCache &cache, QWidget *parent importButton->setIcon(QIcon::fromTheme(QStringLiteral("document-import"))); connect(importButton, &QPushButton::clicked, this, [this](bool) { if (currentGear.has_value()) { - // TODO: deduplicate - const auto sanitizeMdlPath = [](const QString &mdlPath) -> QString { - return QString(mdlPath).section(QLatin1Char('/'), -1).remove(QStringLiteral(".mdl")); - }; - KConfig config(QStringLiteral("novusrc")); KConfigGroup game = config.group(QStringLiteral("Armoury")); QString sourceDirectory = game.readEntry(QStringLiteral("SourcesOutputDirectory")); diff --git a/extern/libphysis b/extern/libphysis index dd9b685..819501e 160000 --- a/extern/libphysis +++ b/extern/libphysis @@ -1 +1 @@ -Subproject commit dd9b685b32965501651a9d3e61219857940ab9bf +Subproject commit 819501e8a03efab1284c79f4eca7d9229fb4cfa7 diff --git a/mapeditor/src/maplistwidget.cpp b/mapeditor/src/maplistwidget.cpp index 8a04108..0530fa8 100644 --- a/mapeditor/src/maplistwidget.cpp +++ b/mapeditor/src/maplistwidget.cpp @@ -46,7 +46,7 @@ MapListWidget::MapListWidget(GameData *data, QWidget *parent) for (uint32_t i = 0; i < exd.row_count; i++) { const char *id = exd.row_data[i].column_data[6].string._0; - int territoryTypeKey = exd.row_data[i].column_data[15].u_int16._0; + const uint16_t territoryTypeKey = exd.row_data[i].column_data[15].u_int16._0; if (territoryTypeKey > 0 && territoryTypeKey < territoryExd.row_count) { const char *bg = territoryExd.row_data[territoryTypeKey].column_data[1].string._0; diff --git a/mdlviewer/src/mainwindow.cpp b/mdlviewer/src/mainwindow.cpp index 8c3480b..d492f57 100644 --- a/mdlviewer/src/mainwindow.cpp +++ b/mdlviewer/src/mainwindow.cpp @@ -103,7 +103,7 @@ void MainWindow::setupFileMenu(QMenu *menu) m_detailsLayout->addRow(i18n("LOD #:"), new QLabel(QString::number(mdl.num_lod))); uint32_t triangleCount = 0; - for (int i = 0; i < mdl.lods[0].num_parts; i++) { + for (uint32_t i = 0; i < mdl.lods[0].num_parts; i++) { triangleCount += mdl.lods[0].parts[i].num_indices / 3; } diff --git a/parts/exd/exdpart.cpp b/parts/exd/exdpart.cpp index 0d9968a..47b8a6a 100644 --- a/parts/exd/exdpart.cpp +++ b/parts/exd/exdpart.cpp @@ -131,7 +131,7 @@ void EXDPart::loadSheet(const QString &name, physis_Buffer buffer, const QString } // TODO: index could be different - if (z >= 0 && z < definitionList.size()) { + if (z < definitionList.size()) { columnType = definitionList[z].toObject()[QLatin1String("name")].toString(); } @@ -147,7 +147,7 @@ void EXDPart::loadSheet(const QString &name, physis_Buffer buffer, const QString auto [columnString, columnRow] = getColumnData(columnData); - if (z >= 0 && z < definitionList.size()) { + if (z < definitionList.size()) { auto definition = definitionList[z].toObject(); if (definition.contains(QLatin1String("converter")) && definition[QLatin1String("converter")].toObject()[QLatin1String("type")].toString() == QLatin1String("link")) { diff --git a/parts/mdl/mdlexport.cpp b/parts/mdl/mdlexport.cpp index 8835721..5ce1d3b 100644 --- a/parts/mdl/mdlexport.cpp +++ b/parts/mdl/mdlexport.cpp @@ -19,7 +19,7 @@ void exportModel(const QString &name, const physis_MDL &model, const physis_Skel // TODO: just write the code better! dummy!! size_t required_nodes = 1; required_nodes += model.num_affected_bones; - for (int i = 0; i < lod.num_parts; i++) { + for (uint32_t i = 0; i < lod.num_parts; i++) { required_nodes += lod.parts[i].num_submeshes; } @@ -247,7 +247,7 @@ void exportModel(const QString &name, const physis_MDL &model, const physis_Skel vertexBufferView.target = TINYGLTF_TARGET_ARRAY_BUFFER; std::vector newVertices; - for (int a = 0; a < lod.parts[i].num_vertices; a++) { + for (uint32_t a = 0; a < lod.parts[i].num_vertices; a++) { Vertex vertex = lod.parts[i].vertices[a]; // Account for additional root bone diff --git a/parts/mdl/mdlimport.cpp b/parts/mdl/mdlimport.cpp index 48ceae7..bb9086a 100644 --- a/parts/mdl/mdlimport.cpp +++ b/parts/mdl/mdlimport.cpp @@ -49,8 +49,8 @@ void importModel(physis_MDL &existingModel, const QString &filename) const QStringList lodPartNumber = parts[2].split(QLatin1Char('.')); const int lodNumber = 0; - const int partNumber = lodPartNumber[0].toInt(); - const int submeshNumber = lodPartNumber[1].toInt(); + const uint32_t partNumber = lodPartNumber[0].toInt(); + const uint32_t submeshNumber = lodPartNumber[1].toInt(); qInfo() << "- Part:" << partNumber; qInfo() << "- Submesh:" << submeshNumber; @@ -177,7 +177,7 @@ void importModel(physis_MDL &existingModel, const QString &filename) auto joints = model.skins[0].joints; int realBoneId = 0; - for (int j = 0; j < existingModel.num_affected_bones; j++) { + for (uint32_t j = 0; j < existingModel.num_affected_bones; j++) { if (strcmp(existingModel.affected_bone_names[j], model.nodes[joints[originalBoneId]].name.c_str()) == 0) { realBoneId = j; break; @@ -227,7 +227,8 @@ void importModel(physis_MDL &existingModel, const QString &filename) } } - newSubmeshes.push_back({.index_count = static_cast(submesh.indices.size()), .index_offset = static_cast(index_offset)}); + newSubmeshes.push_back( + {.submesh_index = 0, .index_count = static_cast(submesh.indices.size()), .index_offset = static_cast(index_offset)}); index_offset += submesh.indices.size(); vertex_offset += submesh.vertices.size(); diff --git a/parts/mdl/mdlpart.cpp b/parts/mdl/mdlpart.cpp index d73f851..65f17ff 100644 --- a/parts/mdl/mdlpart.cpp +++ b/parts/mdl/mdlpart.cpp @@ -141,6 +141,8 @@ bool MDLPart::event(QEvent *event) case QEvent::KeyRelease: vkWindow->event(event); break; + default: + break; } return QWidget::event(event); } @@ -229,14 +231,14 @@ RenderMaterial MDLPart::createMaterial(const physis_Material &material) std::vector buffer(newMaterial.shaderPackage.material_parameters_size / sizeof(float)); // copy the material data - for (int i = 0; i < newMaterial.shaderPackage.num_material_parameters; i++) { + for (uint32_t i = 0; i < newMaterial.shaderPackage.num_material_parameters; i++) { auto param = newMaterial.shaderPackage.material_parameters[i]; - for (int j = 0; j < newMaterial.mat.num_constants; j++) { + for (uint32_t j = 0; j < newMaterial.mat.num_constants; j++) { auto constant = newMaterial.mat.constants[j]; if (constant.id == param.id) { - for (int z = 0; z < constant.num_values; z++) { + for (uint32_t z = 0; z < constant.num_values; z++) { buffer[(param.byte_offset / sizeof(float)) + z] = constant.values[z]; } } @@ -383,6 +385,7 @@ void MDLPart::removeModel(const physis_MDL &mdl) void MDLPart::setWireframe(bool wireframe) { + Q_UNUSED(wireframe) // renderer->wireframe = wireframe; } diff --git a/parts/mtrl/mtrlpart.cpp b/parts/mtrl/mtrlpart.cpp index c14f3d4..7c33cea 100644 --- a/parts/mtrl/mtrlpart.cpp +++ b/parts/mtrl/mtrlpart.cpp @@ -91,7 +91,7 @@ void MtrlPart::rebuild() uint32_t value = 0; bool found = false; - for (int j = 0; j < m_material.num_shader_keys; j++) { + for (uint32_t j = 0; j < m_material.num_shader_keys; j++) { auto shaderKey = m_material.shader_keys[j]; if (shaderKey.category == materialKey.id) { @@ -124,7 +124,7 @@ void MtrlPart::rebuild() child->widget()->deleteLater(); } - for (int i = 0; i < m_material.num_samplers; i++) { + for (uint32_t i = 0; i < m_material.num_samplers; i++) { const auto sampler = m_material.samplers[i]; QString name; @@ -207,7 +207,7 @@ void MtrlPart::rebuild() child->widget()->deleteLater(); } - for (int i = 0; i < m_material.num_constants; i++) { + for (uint32_t i = 0; i < m_material.num_constants; i++) { const auto constant = m_material.constants[i]; QString name = i18n("Unknown %1", QString::number(constant.id)); diff --git a/parts/shpk/shpkpart.cpp b/parts/shpk/shpkpart.cpp index 61cd3dc..9839050 100644 --- a/parts/shpk/shpkpart.cpp +++ b/parts/shpk/shpkpart.cpp @@ -50,8 +50,9 @@ void SHPKPart::load(physis_Buffer buffer) shaderTextEdit->setText(QLatin1String(glsl.compile().c_str())); pageTabWidget->addTab(shaderTextEdit, name); - } catch (std::exception exception) { + } catch (const std::exception &exception) { // TODO: display the error + Q_UNUSED(exception) } }; diff --git a/renderer/include/baserenderer.h b/renderer/include/baserenderer.h index ce51d02..180b34e 100644 --- a/renderer/include/baserenderer.h +++ b/renderer/include/baserenderer.h @@ -29,7 +29,7 @@ public: virtual void resize() = 0; /// Render a frame into @p commandBuffer. @p currentFrame is the same value as SwapChain::currentFrame for convenience. - virtual void render(VkCommandBuffer commandBuffer, uint32_t currentFrame, Camera &camera, Scene &scene, const std::vector &models) = 0; + virtual void render(VkCommandBuffer commandBuffer, Camera &camera, Scene &scene, const std::vector &models) = 0; /// The final composite texture that is drawn into with render() virtual Texture &getCompositeTexture() = 0; diff --git a/renderer/include/gamerenderer.h b/renderer/include/gamerenderer.h index c4edfd3..540d7f7 100644 --- a/renderer/include/gamerenderer.h +++ b/renderer/include/gamerenderer.h @@ -31,7 +31,7 @@ public: void resize() override; - void render(VkCommandBuffer commandBuffer, uint32_t currentFrame, Camera &camera, Scene &scene, const std::vector &models) override; + void render(VkCommandBuffer commandBuffer, Camera &camera, Scene &scene, const std::vector &models) override; Texture &getCompositeTexture() override; @@ -57,8 +57,8 @@ private: physis_Shader vertexShader, pixelShader; }; - void beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, std::string_view passName); - void endPass(VkCommandBuffer commandBuffer, std::string_view passName); + void beginPass(VkCommandBuffer commandBuffer, std::string_view passName); + void endPass(VkCommandBuffer commandBuffer); CachedPipeline &bindPipeline(VkCommandBuffer commandBuffer, std::string_view passName, physis_Shader &vertexShader, diff --git a/renderer/include/simplerenderer.h b/renderer/include/simplerenderer.h index fa73c4e..e9e348d 100644 --- a/renderer/include/simplerenderer.h +++ b/renderer/include/simplerenderer.h @@ -30,7 +30,7 @@ public: void resize() override; - void render(VkCommandBuffer commandBuffer, uint32_t currentFrame, Camera &camera, Scene &scene, const std::vector &models) override; + void render(VkCommandBuffer commandBuffer, Camera &camera, Scene &scene, const std::vector &models) override; Texture &getCompositeTexture() override; diff --git a/renderer/src/gamerenderer.cpp b/renderer/src/gamerenderer.cpp index b45d482..d8c48b9 100644 --- a/renderer/src/gamerenderer.cpp +++ b/renderer/src/gamerenderer.cpp @@ -96,13 +96,13 @@ GameRenderer::GameRenderer(Device &device, GameData *data) instanceParameter.g_InstanceParameter.m_MulColor = glm::vec4(1.0f); instanceParameter.g_InstanceParameter.m_EnvParameter = glm::vec4(1.0f); - const float wetnessMin = 0.0f; + /*const float wetnessMin = 0.0f; const float wetnessMax = 1.0f; const float maybeWetness = 0.0f; - // instanceParameter.g_InstanceParameter.m_Wetness = {maybeWetness, 2.0f, wetnessMin, wetnessMax}; - // instanceParameter.g_InstanceParameter.m_CameraLight.m_DiffuseSpecular = glm::vec4(1.0f); - // instanceParameter.g_InstanceParameter.m_CameraLight.m_Rim = glm::vec4(1.0f); + instanceParameter.g_InstanceParameter.m_Wetness = {maybeWetness, 2.0f, wetnessMin, wetnessMax}; + instanceParameter.g_InstanceParameter.m_CameraLight.m_DiffuseSpecular = glm::vec4(1.0f); + instanceParameter.g_InstanceParameter.m_CameraLight.m_Rim = glm::vec4(1.0f);*/ m_device.copyToBuffer(g_InstanceParameter, &instanceParameter, sizeof(InstanceParameter)); } @@ -222,7 +222,7 @@ GameRenderer::GameRenderer(Device &device, GameData *data) ShaderTypeParameter shaderTypeParameter{}; - m_device.copyToBuffer(g_ShaderTypeParameter, &g_ShaderTypeParameter, sizeof(ShaderTypeParameter)); + m_device.copyToBuffer(g_ShaderTypeParameter, &shaderTypeParameter, sizeof(ShaderTypeParameter)); } VkSamplerCreateInfo samplerInfo = {}; @@ -249,8 +249,10 @@ GameRenderer::GameRenderer(Device &device, GameData *data) createImageResources(); } -void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Camera &camera, Scene &scene, const std::vector &models) +void GameRenderer::render(VkCommandBuffer commandBuffer, Camera &camera, Scene &scene, const std::vector &models) { + Q_UNUSED(scene) + // TODO: this shouldn't be here CameraParameter cameraParameter{}; @@ -272,10 +274,10 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca m_device.copyToBuffer(g_CameraParameter, &cameraParameter, sizeof(CameraParameter)); int i = 0; - for (const auto pass : passes) { + for (const auto &pass : passes) { // hardcoded to the known pass for now if (pass == "PASS_G_OPAQUE" || pass == "PASS_Z_OPAQUE") { - beginPass(imageIndex, commandBuffer, pass); + beginPass(commandBuffer, pass); for (auto &model : models) { VkDebugUtilsLabelEXT labelExt{}; @@ -308,7 +310,7 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca for (const auto &part : model.parts) { RenderMaterial renderMaterial = model.materials[part.materialIndex]; - if (part.materialIndex + 1 > model.materials.size()) { + if (static_cast(part.materialIndex + 1) > model.materials.size()) { renderMaterial = model.materials[0]; // TODO: better fallback } @@ -354,7 +356,7 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca auto id = renderMaterial.shaderPackage.material_keys[j].id; bool found = false; - for (int z = 0; z < renderMaterial.mat.num_shader_keys; z++) { + for (uint32_t z = 0; z < renderMaterial.mat.num_shader_keys; z++) { if (renderMaterial.mat.shader_keys[z].category == id) { materialKeys.push_back(renderMaterial.mat.shader_keys[z].value); found = true; @@ -363,7 +365,6 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca // Fall back to default if needed if (!found) { - auto value = renderMaterial.shaderPackage.material_keys[j].default_value; materialKeys.push_back(renderMaterial.shaderPackage.material_keys[j].default_value); } } @@ -409,14 +410,14 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca m_device.endDebugMarker(commandBuffer); } - endPass(commandBuffer, pass); + endPass(commandBuffer); m_device.transitionTexture(commandBuffer, m_depthBuffer, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); } else if (pass == "PASS_LIGHTING_OPAQUE") { m_device.transitionTexture(commandBuffer, m_normalGBuffer, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); // first we need to generate the view positions with createviewpositions - beginPass(imageIndex, commandBuffer, "PASS_LIGHTING_OPAQUE_VIEWPOSITION"); + beginPass(commandBuffer, "PASS_LIGHTING_OPAQUE_VIEWPOSITION"); { std::vector systemKeys = {}; if (!m_dawntrailMode) { @@ -461,11 +462,11 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca vkCmdDraw(commandBuffer, 6, 1, 0, 0); } } - endPass(commandBuffer, pass); + endPass(commandBuffer); m_device.transitionTexture(commandBuffer, m_viewPositionBuffer, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); - beginPass(imageIndex, commandBuffer, pass); + beginPass(commandBuffer, pass); // then run the directionallighting shader { std::vector systemKeys = {}; @@ -516,7 +517,7 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca vkCmdDraw(commandBuffer, 6, 1, 0, 0); } } - endPass(commandBuffer, pass); + endPass(commandBuffer); m_device.transitionTexture(commandBuffer, m_lightBuffer, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); m_device.transitionTexture(commandBuffer, @@ -524,13 +525,13 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); } else if (pass == "PASS_COMPOSITE_SEMITRANSPARENCY") { - beginPass(imageIndex, commandBuffer, pass); + beginPass(commandBuffer, pass); for (auto &model : models) { for (const auto &part : model.parts) { RenderMaterial renderMaterial = model.materials[part.materialIndex]; - if (part.materialIndex + 1 > model.materials.size()) { + if (static_cast(part.materialIndex + 1) > model.materials.size()) { renderMaterial = model.materials[0]; // TODO: better fallback } @@ -575,7 +576,7 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca auto id = renderMaterial.shaderPackage.material_keys[j].id; bool found = false; - for (int z = 0; z < renderMaterial.mat.num_shader_keys; z++) { + for (uint32_t z = 0; z < renderMaterial.mat.num_shader_keys; z++) { if (renderMaterial.mat.shader_keys[z].category == id) { materialKeys.push_back(renderMaterial.mat.shader_keys[z].value); found = true; @@ -584,7 +585,6 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca // Fall back to default if needed if (!found) { - auto value = renderMaterial.shaderPackage.material_keys[j].default_value; materialKeys.push_back(renderMaterial.shaderPackage.material_keys[j].default_value); } } @@ -628,7 +628,7 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, uint32_t imageIndex, Ca } } - endPass(commandBuffer, pass); + endPass(commandBuffer); m_device.transitionTexture(commandBuffer, m_compositeBuffer, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); } @@ -647,14 +647,15 @@ void GameRenderer::resize() createImageResources(); } -void GameRenderer::beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, const std::string_view passName) +void GameRenderer::beginPass(VkCommandBuffer commandBuffer, const std::string_view passName) { VkDebugUtilsLabelEXT labelExt{}; labelExt.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT; labelExt.pLabelName = passName.data(); m_device.beginDebugMarker(commandBuffer, labelExt); - VkRenderingInfo renderingInfo{VK_STRUCTURE_TYPE_RENDERING_INFO}; + VkRenderingInfo renderingInfo{}; + renderingInfo.sType = VK_STRUCTURE_TYPE_RENDERING_INFO; renderingInfo.renderArea.extent = m_device.swapChain->extent; std::vector colorAttachments; @@ -665,7 +666,8 @@ void GameRenderer::beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, // normals, it seems like { - VkRenderingAttachmentInfo attachmentInfo{VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO}; + VkRenderingAttachmentInfo attachmentInfo{}; + attachmentInfo.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; attachmentInfo.imageView = m_normalGBuffer.imageView; attachmentInfo.imageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; // VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; @@ -683,7 +685,8 @@ void GameRenderer::beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, // depth { - VkRenderingAttachmentInfo attachmentInfo{VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO}; + VkRenderingAttachmentInfo attachmentInfo{}; + attachmentInfo.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; attachmentInfo.imageView = m_depthBuffer.imageView; attachmentInfo.imageLayout = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL; attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; @@ -697,7 +700,8 @@ void GameRenderer::beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, // diffuse { - VkRenderingAttachmentInfo attachmentInfo{VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO}; + VkRenderingAttachmentInfo attachmentInfo{}; + attachmentInfo.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; attachmentInfo.imageView = m_lightBuffer.imageView; attachmentInfo.imageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; @@ -711,7 +715,8 @@ void GameRenderer::beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, // specular? { - VkRenderingAttachmentInfo attachmentInfo{VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO}; + VkRenderingAttachmentInfo attachmentInfo{}; + attachmentInfo.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; attachmentInfo.imageView = m_lightSpecularBuffer.imageView; attachmentInfo.imageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; @@ -725,7 +730,8 @@ void GameRenderer::beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, // TODO: Hack we should not be using a special pass for this, we should just design our API better { - VkRenderingAttachmentInfo attachmentInfo{VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO}; + VkRenderingAttachmentInfo attachmentInfo{}; + attachmentInfo.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; attachmentInfo.imageView = m_viewPositionBuffer.imageView; attachmentInfo.imageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; @@ -741,7 +747,8 @@ void GameRenderer::beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, // normals, it seems like { - VkRenderingAttachmentInfo attachmentInfo{VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO}; + VkRenderingAttachmentInfo attachmentInfo{}; + attachmentInfo.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; attachmentInfo.imageView = m_ZBuffer.imageView; attachmentInfo.imageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; // VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; @@ -759,7 +766,8 @@ void GameRenderer::beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, // composite { - VkRenderingAttachmentInfo attachmentInfo{VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO}; + VkRenderingAttachmentInfo attachmentInfo{}; + attachmentInfo.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; attachmentInfo.imageView = m_compositeBuffer.imageView; attachmentInfo.imageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; // VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; @@ -777,7 +785,8 @@ void GameRenderer::beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, // depth buffer for depth testing { - VkRenderingAttachmentInfo attachmentInfo{VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO}; + VkRenderingAttachmentInfo attachmentInfo{}; + attachmentInfo.sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO; attachmentInfo.imageView = m_depthBuffer.imageView; attachmentInfo.imageLayout = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL; attachmentInfo.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD; @@ -798,7 +807,7 @@ void GameRenderer::beginPass(uint32_t imageIndex, VkCommandBuffer commandBuffer, vkCmdBeginRendering(commandBuffer, &renderingInfo); } -void GameRenderer::endPass(VkCommandBuffer commandBuffer, std::string_view passName) +void GameRenderer::endPass(VkCommandBuffer commandBuffer) { vkCmdEndRendering(commandBuffer); @@ -1109,6 +1118,7 @@ GameRenderer::CachedPipeline &GameRenderer::bindPipeline(VkCommandBuffer command m_cachedPipelines[hash] = CachedPipeline{.pipeline = pipeline, .pipelineLayout = pipelineLayout, .setLayouts = setLayouts, + .cachedDescriptors = {}, .requestedSets = requestedSets, .vertexShader = vertexShader, .pixelShader = pixelShader}; @@ -1307,6 +1317,8 @@ GameRenderer::createDescriptorFor(const DrawObject *object, const CachedPipeline info->range = 655360; } } break; + default: + break; } } j++; @@ -1383,8 +1395,7 @@ void GameRenderer::bindDescriptorSets(VkCommandBuffer commandBuffer, const RenderMaterial *material, std::string_view pass) { - int i = 0; - for (auto setLayout : pipeline.setLayouts) { + for (size_t i = 0; i < pipeline.setLayouts.size(); i++) { if (!pipeline.cachedDescriptors.count(i)) { if (auto descriptor = createDescriptorFor(object, pipeline, i, material, pass); descriptor != VK_NULL_HANDLE) { pipeline.cachedDescriptors[i] = descriptor; @@ -1395,7 +1406,5 @@ void GameRenderer::bindDescriptorSets(VkCommandBuffer commandBuffer, // TODO: we can pass all descriptors in one function call vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline.pipelineLayout, i, 1, &pipeline.cachedDescriptors[i], 0, nullptr); - - i++; } } diff --git a/renderer/src/rendermanager.cpp b/renderer/src/rendermanager.cpp index 2c5e7dd..5658f65 100644 --- a/renderer/src/rendermanager.cpp +++ b/renderer/src/rendermanager.cpp @@ -89,7 +89,8 @@ RenderManager::RenderManager(GameData *data) debugCreateInfo.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT; debugCreateInfo.pfnUserCallback = DebugCallback; - VkApplicationInfo applicationInfo = {VK_STRUCTURE_TYPE_APPLICATION_INFO}; + VkApplicationInfo applicationInfo = {}; + applicationInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO; applicationInfo.apiVersion = VK_API_VERSION_1_3; const char *layers[] = {"VK_LAYER_KHRONOS_validation"}; @@ -209,23 +210,27 @@ RenderManager::RenderManager(GameData *data) enabledFeatures.shaderCullDistance = VK_TRUE; enabledFeatures.fillModeNonSolid = VK_TRUE; - VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR localReadFeaturesKhr{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR}; + VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR localReadFeaturesKhr{}; + localReadFeaturesKhr.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR; localReadFeaturesKhr.dynamicRenderingLocalRead = VK_TRUE; - VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT unusedAttachmentsFeaturesExt{ - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT}; + VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT unusedAttachmentsFeaturesExt{}; + unusedAttachmentsFeaturesExt.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT; unusedAttachmentsFeaturesExt.dynamicRenderingUnusedAttachments = VK_TRUE; unusedAttachmentsFeaturesExt.pNext = &localReadFeaturesKhr; - VkPhysicalDeviceVulkan11Features enabled11Features{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES}; + VkPhysicalDeviceVulkan11Features enabled11Features{}; + enabled11Features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES; enabled11Features.shaderDrawParameters = VK_TRUE; enabled11Features.pNext = &unusedAttachmentsFeaturesExt; - VkPhysicalDeviceVulkan12Features enabled12Features{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES}; + VkPhysicalDeviceVulkan12Features enabled12Features{}; + enabled12Features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES; enabled12Features.vulkanMemoryModel = VK_TRUE; enabled12Features.pNext = &enabled11Features; - VkPhysicalDeviceVulkan13Features enabled13Features{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES}; + VkPhysicalDeviceVulkan13Features enabled13Features{}; + enabled13Features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES; enabled13Features.shaderDemoteToHelperInvocation = VK_TRUE; enabled13Features.dynamicRendering = VK_TRUE; enabled13Features.synchronization2 = VK_TRUE; @@ -348,7 +353,7 @@ bool RenderManager::initSwapchain(VkSurfaceKHR surface, int width, int height) initBlitPipeline(); // this creates a desc set for the renderer's offscreen texture. need to make sure we regen it m_framebuffers.resize(m_device->swapChain->swapchainImages.size()); - for (int i = 0; i < m_device->swapChain->swapchainImages.size(); i++) { + for (size_t i = 0; i < m_device->swapChain->swapchainImages.size(); i++) { VkFramebufferCreateInfo framebufferInfo = {}; framebufferInfo.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; framebufferInfo.renderPass = m_renderPass; @@ -407,7 +412,7 @@ void RenderManager::render(const std::vector &models) updateCamera(camera); - m_renderer->render(commandBuffer, m_device->swapChain->currentFrame, camera, scene, models); + m_renderer->render(commandBuffer, camera, scene, models); VkRenderPassBeginInfo renderPassInfo = {}; renderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; diff --git a/renderer/src/simplerenderer.cpp b/renderer/src/simplerenderer.cpp index 8d134cc..53c005d 100644 --- a/renderer/src/simplerenderer.cpp +++ b/renderer/src/simplerenderer.cpp @@ -48,8 +48,10 @@ void SimpleRenderer::resize() vkCreateFramebuffer(m_device.device, &framebufferInfo, nullptr, &m_framebuffer); } -void SimpleRenderer::render(VkCommandBuffer commandBuffer, uint32_t currentFrame, Camera &camera, Scene &scene, const std::vector &models) +void SimpleRenderer::render(VkCommandBuffer commandBuffer, Camera &camera, Scene &scene, const std::vector &models) { + Q_UNUSED(scene) + VkRenderPassBeginInfo renderPassInfo = {}; renderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; renderPassInfo.renderPass = m_renderPass; diff --git a/sagasu/src/filetreemodel.cpp b/sagasu/src/filetreemodel.cpp index 8d2be14..adf56ca 100644 --- a/sagasu/src/filetreemodel.cpp +++ b/sagasu/src/filetreemodel.cpp @@ -12,8 +12,8 @@ FileTreeModel::FileTreeModel(HashDatabase &database, bool showUnknown, const QString &gamePath, GameData *data, QObject *parent) : QAbstractItemModel(parent) , gameData(data) - , m_showUnknown(showUnknown) , m_database(database) + , m_showUnknown(showUnknown) { rootItem = new TreeInformation(); rootItem->type = TreeType::Root;