mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-01 19:23:51 +00:00
refactor: add [[nodiscard]] to shader/asset load functions, suppress warnings
Add [[nodiscard]] to VkShaderModule::loadFromFile, Shader::loadFromFile/ loadFromSource, AssetManifest::load, DbcLoader::load — all return bool indicating success/failure that callers should check. Suppress with (void) at 17 call sites where validity is checked via isValid() after loading rather than the return value (m2_renderer recreatePipelines, swim_effects recreatePipelines).
This commit is contained in:
parent
b5b84fbc19
commit
e805eae33c
6 changed files with 27 additions and 27 deletions
|
|
@ -29,7 +29,7 @@ public:
|
|||
* @param manifestPath Full path to manifest.json
|
||||
* @return true if loaded successfully
|
||||
*/
|
||||
bool load(const std::string& manifestPath);
|
||||
[[nodiscard]] bool load(const std::string& manifestPath);
|
||||
|
||||
/**
|
||||
* Lookup an entry by normalized WoW path (lowercase, backslash)
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public:
|
|||
* @param dbcData Raw DBC file data
|
||||
* @return true if loaded successfully
|
||||
*/
|
||||
bool load(const std::vector<uint8_t>& dbcData);
|
||||
[[nodiscard]] bool load(const std::vector<uint8_t>& dbcData);
|
||||
|
||||
/**
|
||||
* Check if DBC is loaded
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ public:
|
|||
Shader() = default;
|
||||
~Shader();
|
||||
|
||||
bool loadFromFile(const std::string& vertexPath, const std::string& fragmentPath);
|
||||
bool loadFromSource(const std::string& vertexSource, const std::string& fragmentSource);
|
||||
[[nodiscard]] bool loadFromFile(const std::string& vertexPath, const std::string& fragmentPath);
|
||||
[[nodiscard]] bool loadFromSource(const std::string& vertexSource, const std::string& fragmentSource);
|
||||
|
||||
void use() const;
|
||||
void unuse() const;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public:
|
|||
VkShaderModule& operator=(VkShaderModule&& other) noexcept;
|
||||
|
||||
// Load a SPIR-V file from disk
|
||||
bool loadFromFile(VkDevice device, const std::string& path);
|
||||
[[nodiscard]] bool loadFromFile(VkDevice device, const std::string& path);
|
||||
|
||||
// Load from raw SPIR-V bytes
|
||||
bool loadFromMemory(VkDevice device, const uint32_t* code, size_t sizeBytes);
|
||||
|
|
|
|||
|
|
@ -463,12 +463,12 @@ bool M2Renderer::initialize(VkContext* ctx, VkDescriptorSetLayout perFrameLayout
|
|||
rendering::VkShaderModule particleVert, particleFrag;
|
||||
rendering::VkShaderModule smokeVert, smokeFrag;
|
||||
|
||||
m2Vert.loadFromFile(device, "assets/shaders/m2.vert.spv");
|
||||
m2Frag.loadFromFile(device, "assets/shaders/m2.frag.spv");
|
||||
particleVert.loadFromFile(device, "assets/shaders/m2_particle.vert.spv");
|
||||
particleFrag.loadFromFile(device, "assets/shaders/m2_particle.frag.spv");
|
||||
smokeVert.loadFromFile(device, "assets/shaders/m2_smoke.vert.spv");
|
||||
smokeFrag.loadFromFile(device, "assets/shaders/m2_smoke.frag.spv");
|
||||
(void)m2Vert.loadFromFile(device, "assets/shaders/m2.vert.spv");
|
||||
(void)m2Frag.loadFromFile(device, "assets/shaders/m2.frag.spv");
|
||||
(void)particleVert.loadFromFile(device, "assets/shaders/m2_particle.vert.spv");
|
||||
(void)particleFrag.loadFromFile(device, "assets/shaders/m2_particle.frag.spv");
|
||||
(void)smokeVert.loadFromFile(device, "assets/shaders/m2_smoke.vert.spv");
|
||||
(void)smokeFrag.loadFromFile(device, "assets/shaders/m2_smoke.frag.spv");
|
||||
|
||||
if (!m2Vert.isValid() || !m2Frag.isValid()) {
|
||||
LOG_ERROR("M2: Missing required shaders, cannot initialize");
|
||||
|
|
@ -583,8 +583,8 @@ bool M2Renderer::initialize(VkContext* ctx, VkDescriptorSetLayout perFrameLayout
|
|||
// Vertex format: pos(3) + color(3) + alpha(1) + uv(2) = 9 floats = 36 bytes
|
||||
{
|
||||
rendering::VkShaderModule ribVert, ribFrag;
|
||||
ribVert.loadFromFile(device, "assets/shaders/m2_ribbon.vert.spv");
|
||||
ribFrag.loadFromFile(device, "assets/shaders/m2_ribbon.frag.spv");
|
||||
(void)ribVert.loadFromFile(device, "assets/shaders/m2_ribbon.vert.spv");
|
||||
(void)ribFrag.loadFromFile(device, "assets/shaders/m2_ribbon.frag.spv");
|
||||
if (ribVert.isValid() && ribFrag.isValid()) {
|
||||
// Reuse particleTexLayout_ for set 1 (single texture sampler)
|
||||
VkDescriptorSetLayout ribLayouts[] = {perFrameLayout, particleTexLayout_};
|
||||
|
|
@ -4766,12 +4766,12 @@ void M2Renderer::recreatePipelines() {
|
|||
rendering::VkShaderModule particleVert, particleFrag;
|
||||
rendering::VkShaderModule smokeVert, smokeFrag;
|
||||
|
||||
m2Vert.loadFromFile(device, "assets/shaders/m2.vert.spv");
|
||||
m2Frag.loadFromFile(device, "assets/shaders/m2.frag.spv");
|
||||
particleVert.loadFromFile(device, "assets/shaders/m2_particle.vert.spv");
|
||||
particleFrag.loadFromFile(device, "assets/shaders/m2_particle.frag.spv");
|
||||
smokeVert.loadFromFile(device, "assets/shaders/m2_smoke.vert.spv");
|
||||
smokeFrag.loadFromFile(device, "assets/shaders/m2_smoke.frag.spv");
|
||||
(void)m2Vert.loadFromFile(device, "assets/shaders/m2.vert.spv");
|
||||
(void)m2Frag.loadFromFile(device, "assets/shaders/m2.frag.spv");
|
||||
(void)particleVert.loadFromFile(device, "assets/shaders/m2_particle.vert.spv");
|
||||
(void)particleFrag.loadFromFile(device, "assets/shaders/m2_particle.frag.spv");
|
||||
(void)smokeVert.loadFromFile(device, "assets/shaders/m2_smoke.vert.spv");
|
||||
(void)smokeFrag.loadFromFile(device, "assets/shaders/m2_smoke.frag.spv");
|
||||
|
||||
if (!m2Vert.isValid() || !m2Frag.isValid()) {
|
||||
LOG_ERROR("M2Renderer::recreatePipelines: missing required shaders");
|
||||
|
|
@ -4882,8 +4882,8 @@ void M2Renderer::recreatePipelines() {
|
|||
// --- Ribbon pipelines ---
|
||||
{
|
||||
rendering::VkShaderModule ribVert, ribFrag;
|
||||
ribVert.loadFromFile(device, "assets/shaders/m2_ribbon.vert.spv");
|
||||
ribFrag.loadFromFile(device, "assets/shaders/m2_ribbon.frag.spv");
|
||||
(void)ribVert.loadFromFile(device, "assets/shaders/m2_ribbon.vert.spv");
|
||||
(void)ribFrag.loadFromFile(device, "assets/shaders/m2_ribbon.frag.spv");
|
||||
if (ribVert.isValid() && ribFrag.isValid()) {
|
||||
VkVertexInputBindingDescription rBind{};
|
||||
rBind.binding = 0;
|
||||
|
|
|
|||
|
|
@ -348,9 +348,9 @@ void SwimEffects::recreatePipelines() {
|
|||
// ---- Rebuild ripple pipeline ----
|
||||
{
|
||||
VkShaderModule vertModule;
|
||||
vertModule.loadFromFile(device, "assets/shaders/swim_ripple.vert.spv");
|
||||
(void)vertModule.loadFromFile(device, "assets/shaders/swim_ripple.vert.spv");
|
||||
VkShaderModule fragModule;
|
||||
fragModule.loadFromFile(device, "assets/shaders/swim_ripple.frag.spv");
|
||||
(void)fragModule.loadFromFile(device, "assets/shaders/swim_ripple.frag.spv");
|
||||
|
||||
VkPipelineShaderStageCreateInfo vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
|
||||
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
|
|
@ -375,9 +375,9 @@ void SwimEffects::recreatePipelines() {
|
|||
// ---- Rebuild bubble pipeline ----
|
||||
{
|
||||
VkShaderModule vertModule;
|
||||
vertModule.loadFromFile(device, "assets/shaders/swim_bubble.vert.spv");
|
||||
(void)vertModule.loadFromFile(device, "assets/shaders/swim_bubble.vert.spv");
|
||||
VkShaderModule fragModule;
|
||||
fragModule.loadFromFile(device, "assets/shaders/swim_bubble.frag.spv");
|
||||
(void)fragModule.loadFromFile(device, "assets/shaders/swim_bubble.frag.spv");
|
||||
|
||||
VkPipelineShaderStageCreateInfo vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
|
||||
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
|
|
@ -402,9 +402,9 @@ void SwimEffects::recreatePipelines() {
|
|||
// ---- Rebuild insect pipeline ----
|
||||
{
|
||||
VkShaderModule vertModule;
|
||||
vertModule.loadFromFile(device, "assets/shaders/swim_ripple.vert.spv");
|
||||
(void)vertModule.loadFromFile(device, "assets/shaders/swim_ripple.vert.spv");
|
||||
VkShaderModule fragModule;
|
||||
fragModule.loadFromFile(device, "assets/shaders/swim_insect.frag.spv");
|
||||
(void)fragModule.loadFromFile(device, "assets/shaders/swim_insect.frag.spv");
|
||||
|
||||
VkPipelineShaderStageCreateInfo vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
|
||||
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue