Make use of the new Flags iterator
This commit is contained in:
parent
401bfa3324
commit
de88873c35
|
|
@ -215,12 +215,8 @@ namespace Nz
|
||||||
inline VkAccessFlags ToVulkan(MemoryAccessFlags memoryAccessFlags)
|
inline VkAccessFlags ToVulkan(MemoryAccessFlags memoryAccessFlags)
|
||||||
{
|
{
|
||||||
VkShaderStageFlags accessBits = 0;
|
VkShaderStageFlags accessBits = 0;
|
||||||
for (int i = 0; i <= UnderlyingCast(MemoryAccess::Max); ++i)
|
for (MemoryAccess memoryAccess : memoryAccessFlags)
|
||||||
{
|
accessBits |= ToVulkan(memoryAccess);
|
||||||
MemoryAccess memoryAccess = static_cast<MemoryAccess>(i);
|
|
||||||
if (memoryAccessFlags.Test(memoryAccess))
|
|
||||||
accessBits |= ToVulkan(memoryAccess);
|
|
||||||
}
|
|
||||||
|
|
||||||
return accessBits;
|
return accessBits;
|
||||||
}
|
}
|
||||||
|
|
@ -253,12 +249,8 @@ namespace Nz
|
||||||
inline VkPipelineStageFlags ToVulkan(PipelineStageFlags pipelineStages)
|
inline VkPipelineStageFlags ToVulkan(PipelineStageFlags pipelineStages)
|
||||||
{
|
{
|
||||||
VkShaderStageFlags pipelineStageBits = 0;
|
VkShaderStageFlags pipelineStageBits = 0;
|
||||||
for (int i = 0; i <= UnderlyingCast(PipelineStage::Max); ++i)
|
for (PipelineStage pipelineStage : pipelineStages)
|
||||||
{
|
pipelineStageBits |= ToVulkan(pipelineStage);
|
||||||
PipelineStage pipelineStage = static_cast<PipelineStage>(i);
|
|
||||||
if (pipelineStages.Test(pipelineStage))
|
|
||||||
pipelineStageBits |= ToVulkan(pipelineStage);
|
|
||||||
}
|
|
||||||
|
|
||||||
return pipelineStageBits;
|
return pipelineStageBits;
|
||||||
}
|
}
|
||||||
|
|
@ -415,12 +407,8 @@ namespace Nz
|
||||||
inline VkShaderStageFlags ToVulkan(nzsl::ShaderStageTypeFlags stageType)
|
inline VkShaderStageFlags ToVulkan(nzsl::ShaderStageTypeFlags stageType)
|
||||||
{
|
{
|
||||||
VkShaderStageFlags shaderStageBits = 0;
|
VkShaderStageFlags shaderStageBits = 0;
|
||||||
for (int i = 0; i <= UnderlyingCast(nzsl::ShaderStageType::Max); ++i)
|
for (nzsl::ShaderStageType shaderStage : stageType)
|
||||||
{
|
shaderStageBits |= ToVulkan(shaderStage);
|
||||||
nzsl::ShaderStageType shaderStage = static_cast<nzsl::ShaderStageType>(i);
|
|
||||||
if (stageType.Test(shaderStage))
|
|
||||||
shaderStageBits |= ToVulkan(shaderStage);
|
|
||||||
}
|
|
||||||
|
|
||||||
return shaderStageBits;
|
return shaderStageBits;
|
||||||
}
|
}
|
||||||
|
|
@ -482,12 +470,8 @@ namespace Nz
|
||||||
inline VkImageUsageFlags ToVulkan(TextureUsageFlags textureLayout)
|
inline VkImageUsageFlags ToVulkan(TextureUsageFlags textureLayout)
|
||||||
{
|
{
|
||||||
VkImageUsageFlags imageUsageBits = 0;
|
VkImageUsageFlags imageUsageBits = 0;
|
||||||
for (int i = 0; i <= UnderlyingCast(TextureUsage::Max); ++i)
|
for (TextureUsage textureUsage : textureLayout)
|
||||||
{
|
imageUsageBits |= ToVulkan(textureUsage);
|
||||||
TextureUsage textureUsage = static_cast<TextureUsage>(i);
|
|
||||||
if (textureLayout.Test(textureUsage))
|
|
||||||
imageUsageBits |= ToVulkan(textureUsage);
|
|
||||||
}
|
|
||||||
|
|
||||||
return imageUsageBits;
|
return imageUsageBits;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,18 +29,14 @@ namespace Nz
|
||||||
{
|
{
|
||||||
case ShaderLanguage::GLSL:
|
case ShaderLanguage::GLSL:
|
||||||
{
|
{
|
||||||
for (std::size_t i = 0; i < nzsl::ShaderStageTypeCount; ++i)
|
for (nzsl::ShaderStageType shaderStage : shaderStages)
|
||||||
{
|
{
|
||||||
nzsl::ShaderStageType shaderStage = static_cast<nzsl::ShaderStageType>(i);
|
NazaraAssert(shaderStages == shaderStage, "when supplying GLSL, only one shader stage type can be specified");
|
||||||
if (shaderStages.Test(shaderStage))
|
|
||||||
{
|
|
||||||
NazaraAssert(shaderStages == shaderStage, "when supplying GLSL, only one shader stage type can be specified");
|
|
||||||
|
|
||||||
auto& entry = m_shaders.emplace_back();
|
auto& entry = m_shaders.emplace_back();
|
||||||
entry.shader = GlslShader{ std::string(reinterpret_cast<const char*>(source), std::size_t(sourceSize)) };
|
entry.shader = GlslShader{ std::string(reinterpret_cast<const char*>(source), std::size_t(sourceSize)) };
|
||||||
entry.stage = shaderStage;
|
entry.stage = shaderStage;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
@ -184,15 +180,11 @@ namespace Nz
|
||||||
|
|
||||||
nzsl::Ast::ModulePtr sanitized = nzsl::Ast::Sanitize(shaderModule, options);
|
nzsl::Ast::ModulePtr sanitized = nzsl::Ast::Sanitize(shaderModule, options);
|
||||||
|
|
||||||
for (std::size_t i = 0; i < nzsl::ShaderStageTypeCount; ++i)
|
for (nzsl::ShaderStageType shaderStage : shaderStages)
|
||||||
{
|
{
|
||||||
nzsl::ShaderStageType shaderStage = static_cast<nzsl::ShaderStageType>(i);
|
auto& entry = m_shaders.emplace_back();
|
||||||
if (shaderStages.Test(shaderStage))
|
entry.shader = ShaderStatement{ sanitized };
|
||||||
{
|
entry.stage = shaderStage;
|
||||||
auto& entry = m_shaders.emplace_back();
|
|
||||||
entry.shader = ShaderStatement{ sanitized };
|
|
||||||
entry.stage = shaderStage;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue