Improve the builder syntax so that fewer temp variables are required to build vulkan objects
This commit is contained in:
parent
386cb5bfb2
commit
ed134c9b19
19 changed files with 988 additions and 840 deletions
|
|
@ -34,15 +34,15 @@ VkPPShader::VkPPShader(VulkanFrameBuffer* fb, PPShader *shader) : fb(fb)
|
|||
prolog = UniformBlockDecl::Create("Uniforms", shader->Uniforms, -1);
|
||||
prolog += shader->Defines;
|
||||
|
||||
ShaderBuilder vertbuilder;
|
||||
vertbuilder.setVertexShader(LoadShaderCode(shader->VertexShader, "", shader->Version));
|
||||
VertexShader = vertbuilder.create(shader->VertexShader.GetChars(), fb->device);
|
||||
VertexShader->SetDebugName(shader->VertexShader.GetChars());
|
||||
VertexShader = ShaderBuilder()
|
||||
.VertexShader(LoadShaderCode(shader->VertexShader, "", shader->Version))
|
||||
.DebugName(shader->VertexShader.GetChars())
|
||||
.Create(shader->VertexShader.GetChars(), fb->device);
|
||||
|
||||
ShaderBuilder fragbuilder;
|
||||
fragbuilder.setFragmentShader(LoadShaderCode(shader->FragmentShader, prolog, shader->Version));
|
||||
FragmentShader = fragbuilder.create(shader->FragmentShader.GetChars(), fb->device);
|
||||
FragmentShader->SetDebugName(shader->FragmentShader.GetChars());
|
||||
FragmentShader = ShaderBuilder()
|
||||
.FragmentShader(LoadShaderCode(shader->FragmentShader, prolog, shader->Version))
|
||||
.DebugName(shader->FragmentShader.GetChars())
|
||||
.Create(shader->FragmentShader.GetChars(), fb->device);
|
||||
|
||||
fb->GetShaderManager()->AddVkPPShader(this);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -341,11 +341,10 @@ std::unique_ptr<VulkanShader> VkShaderManager::LoadVertShader(FString shadername
|
|||
code << "#line 1\n";
|
||||
code << LoadPrivateShaderLump(vert_lump).GetChars() << "\n";
|
||||
|
||||
ShaderBuilder builder;
|
||||
builder.setVertexShader(code);
|
||||
auto shader = builder.create(shadername.GetChars(), fb->device);
|
||||
shader->SetDebugName(shadername.GetChars());
|
||||
return shader;
|
||||
return ShaderBuilder()
|
||||
.VertexShader(code)
|
||||
.DebugName(shadername.GetChars())
|
||||
.Create(shadername.GetChars(), fb->device);
|
||||
}
|
||||
|
||||
std::unique_ptr<VulkanShader> VkShaderManager::LoadFragShader(FString shadername, const char *frag_lump, const char *material_lump, const char *light_lump, const char *defines, bool alphatest, bool gbufferpass)
|
||||
|
|
@ -434,11 +433,10 @@ std::unique_ptr<VulkanShader> VkShaderManager::LoadFragShader(FString shadername
|
|||
code << LoadPrivateShaderLump(light_lump).GetChars();
|
||||
}
|
||||
|
||||
ShaderBuilder builder;
|
||||
builder.setFragmentShader(code);
|
||||
auto shader = builder.create(shadername.GetChars(), fb->device);
|
||||
shader->SetDebugName(shadername.GetChars());
|
||||
return shader;
|
||||
return ShaderBuilder()
|
||||
.FragmentShader(code)
|
||||
.DebugName(shadername.GetChars())
|
||||
.Create(shadername.GetChars(), fb->device);
|
||||
}
|
||||
|
||||
FString VkShaderManager::GetTargetGlslVersion()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue