mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 17:43:52 +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
|
* @param manifestPath Full path to manifest.json
|
||||||
* @return true if loaded successfully
|
* @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)
|
* Lookup an entry by normalized WoW path (lowercase, backslash)
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ public:
|
||||||
* @param dbcData Raw DBC file data
|
* @param dbcData Raw DBC file data
|
||||||
* @return true if loaded successfully
|
* @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
|
* Check if DBC is loaded
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ public:
|
||||||
Shader() = default;
|
Shader() = default;
|
||||||
~Shader();
|
~Shader();
|
||||||
|
|
||||||
bool loadFromFile(const std::string& vertexPath, const std::string& fragmentPath);
|
[[nodiscard]] bool loadFromFile(const std::string& vertexPath, const std::string& fragmentPath);
|
||||||
bool loadFromSource(const std::string& vertexSource, const std::string& fragmentSource);
|
[[nodiscard]] bool loadFromSource(const std::string& vertexSource, const std::string& fragmentSource);
|
||||||
|
|
||||||
void use() const;
|
void use() const;
|
||||||
void unuse() const;
|
void unuse() const;
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ public:
|
||||||
VkShaderModule& operator=(VkShaderModule&& other) noexcept;
|
VkShaderModule& operator=(VkShaderModule&& other) noexcept;
|
||||||
|
|
||||||
// Load a SPIR-V file from disk
|
// 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
|
// Load from raw SPIR-V bytes
|
||||||
bool loadFromMemory(VkDevice device, const uint32_t* code, size_t sizeBytes);
|
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 particleVert, particleFrag;
|
||||||
rendering::VkShaderModule smokeVert, smokeFrag;
|
rendering::VkShaderModule smokeVert, smokeFrag;
|
||||||
|
|
||||||
m2Vert.loadFromFile(device, "assets/shaders/m2.vert.spv");
|
(void)m2Vert.loadFromFile(device, "assets/shaders/m2.vert.spv");
|
||||||
m2Frag.loadFromFile(device, "assets/shaders/m2.frag.spv");
|
(void)m2Frag.loadFromFile(device, "assets/shaders/m2.frag.spv");
|
||||||
particleVert.loadFromFile(device, "assets/shaders/m2_particle.vert.spv");
|
(void)particleVert.loadFromFile(device, "assets/shaders/m2_particle.vert.spv");
|
||||||
particleFrag.loadFromFile(device, "assets/shaders/m2_particle.frag.spv");
|
(void)particleFrag.loadFromFile(device, "assets/shaders/m2_particle.frag.spv");
|
||||||
smokeVert.loadFromFile(device, "assets/shaders/m2_smoke.vert.spv");
|
(void)smokeVert.loadFromFile(device, "assets/shaders/m2_smoke.vert.spv");
|
||||||
smokeFrag.loadFromFile(device, "assets/shaders/m2_smoke.frag.spv");
|
(void)smokeFrag.loadFromFile(device, "assets/shaders/m2_smoke.frag.spv");
|
||||||
|
|
||||||
if (!m2Vert.isValid() || !m2Frag.isValid()) {
|
if (!m2Vert.isValid() || !m2Frag.isValid()) {
|
||||||
LOG_ERROR("M2: Missing required shaders, cannot initialize");
|
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
|
// Vertex format: pos(3) + color(3) + alpha(1) + uv(2) = 9 floats = 36 bytes
|
||||||
{
|
{
|
||||||
rendering::VkShaderModule ribVert, ribFrag;
|
rendering::VkShaderModule ribVert, ribFrag;
|
||||||
ribVert.loadFromFile(device, "assets/shaders/m2_ribbon.vert.spv");
|
(void)ribVert.loadFromFile(device, "assets/shaders/m2_ribbon.vert.spv");
|
||||||
ribFrag.loadFromFile(device, "assets/shaders/m2_ribbon.frag.spv");
|
(void)ribFrag.loadFromFile(device, "assets/shaders/m2_ribbon.frag.spv");
|
||||||
if (ribVert.isValid() && ribFrag.isValid()) {
|
if (ribVert.isValid() && ribFrag.isValid()) {
|
||||||
// Reuse particleTexLayout_ for set 1 (single texture sampler)
|
// Reuse particleTexLayout_ for set 1 (single texture sampler)
|
||||||
VkDescriptorSetLayout ribLayouts[] = {perFrameLayout, particleTexLayout_};
|
VkDescriptorSetLayout ribLayouts[] = {perFrameLayout, particleTexLayout_};
|
||||||
|
|
@ -4766,12 +4766,12 @@ void M2Renderer::recreatePipelines() {
|
||||||
rendering::VkShaderModule particleVert, particleFrag;
|
rendering::VkShaderModule particleVert, particleFrag;
|
||||||
rendering::VkShaderModule smokeVert, smokeFrag;
|
rendering::VkShaderModule smokeVert, smokeFrag;
|
||||||
|
|
||||||
m2Vert.loadFromFile(device, "assets/shaders/m2.vert.spv");
|
(void)m2Vert.loadFromFile(device, "assets/shaders/m2.vert.spv");
|
||||||
m2Frag.loadFromFile(device, "assets/shaders/m2.frag.spv");
|
(void)m2Frag.loadFromFile(device, "assets/shaders/m2.frag.spv");
|
||||||
particleVert.loadFromFile(device, "assets/shaders/m2_particle.vert.spv");
|
(void)particleVert.loadFromFile(device, "assets/shaders/m2_particle.vert.spv");
|
||||||
particleFrag.loadFromFile(device, "assets/shaders/m2_particle.frag.spv");
|
(void)particleFrag.loadFromFile(device, "assets/shaders/m2_particle.frag.spv");
|
||||||
smokeVert.loadFromFile(device, "assets/shaders/m2_smoke.vert.spv");
|
(void)smokeVert.loadFromFile(device, "assets/shaders/m2_smoke.vert.spv");
|
||||||
smokeFrag.loadFromFile(device, "assets/shaders/m2_smoke.frag.spv");
|
(void)smokeFrag.loadFromFile(device, "assets/shaders/m2_smoke.frag.spv");
|
||||||
|
|
||||||
if (!m2Vert.isValid() || !m2Frag.isValid()) {
|
if (!m2Vert.isValid() || !m2Frag.isValid()) {
|
||||||
LOG_ERROR("M2Renderer::recreatePipelines: missing required shaders");
|
LOG_ERROR("M2Renderer::recreatePipelines: missing required shaders");
|
||||||
|
|
@ -4882,8 +4882,8 @@ void M2Renderer::recreatePipelines() {
|
||||||
// --- Ribbon pipelines ---
|
// --- Ribbon pipelines ---
|
||||||
{
|
{
|
||||||
rendering::VkShaderModule ribVert, ribFrag;
|
rendering::VkShaderModule ribVert, ribFrag;
|
||||||
ribVert.loadFromFile(device, "assets/shaders/m2_ribbon.vert.spv");
|
(void)ribVert.loadFromFile(device, "assets/shaders/m2_ribbon.vert.spv");
|
||||||
ribFrag.loadFromFile(device, "assets/shaders/m2_ribbon.frag.spv");
|
(void)ribFrag.loadFromFile(device, "assets/shaders/m2_ribbon.frag.spv");
|
||||||
if (ribVert.isValid() && ribFrag.isValid()) {
|
if (ribVert.isValid() && ribFrag.isValid()) {
|
||||||
VkVertexInputBindingDescription rBind{};
|
VkVertexInputBindingDescription rBind{};
|
||||||
rBind.binding = 0;
|
rBind.binding = 0;
|
||||||
|
|
|
||||||
|
|
@ -348,9 +348,9 @@ void SwimEffects::recreatePipelines() {
|
||||||
// ---- Rebuild ripple pipeline ----
|
// ---- Rebuild ripple pipeline ----
|
||||||
{
|
{
|
||||||
VkShaderModule vertModule;
|
VkShaderModule vertModule;
|
||||||
vertModule.loadFromFile(device, "assets/shaders/swim_ripple.vert.spv");
|
(void)vertModule.loadFromFile(device, "assets/shaders/swim_ripple.vert.spv");
|
||||||
VkShaderModule fragModule;
|
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 vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
|
||||||
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
|
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||||
|
|
@ -375,9 +375,9 @@ void SwimEffects::recreatePipelines() {
|
||||||
// ---- Rebuild bubble pipeline ----
|
// ---- Rebuild bubble pipeline ----
|
||||||
{
|
{
|
||||||
VkShaderModule vertModule;
|
VkShaderModule vertModule;
|
||||||
vertModule.loadFromFile(device, "assets/shaders/swim_bubble.vert.spv");
|
(void)vertModule.loadFromFile(device, "assets/shaders/swim_bubble.vert.spv");
|
||||||
VkShaderModule fragModule;
|
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 vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
|
||||||
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
|
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||||
|
|
@ -402,9 +402,9 @@ void SwimEffects::recreatePipelines() {
|
||||||
// ---- Rebuild insect pipeline ----
|
// ---- Rebuild insect pipeline ----
|
||||||
{
|
{
|
||||||
VkShaderModule vertModule;
|
VkShaderModule vertModule;
|
||||||
vertModule.loadFromFile(device, "assets/shaders/swim_ripple.vert.spv");
|
(void)vertModule.loadFromFile(device, "assets/shaders/swim_ripple.vert.spv");
|
||||||
VkShaderModule fragModule;
|
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 vertStage = vertModule.stageInfo(VK_SHADER_STAGE_VERTEX_BIT);
|
||||||
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
|
VkPipelineShaderStageCreateInfo fragStage = fragModule.stageInfo(VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue