Skip to content

Commit

Permalink
- fix mirror effect shader
Browse files Browse the repository at this point in the history
  • Loading branch information
dpjudas authored and madame-rachelle committed May 14, 2019
1 parent b19e114 commit d1e8bd6
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/rendering/vulkan/renderer/vk_renderpass.cpp
Expand Up @@ -261,7 +261,7 @@ void VkRenderPassSetup::CreatePipeline(const VkRenderPassKey &key)
VkShaderProgram *program;
if (key.SpecialEffect != EFF_NONE)
{
program = fb->GetShaderManager()->GetEffect(key.SpecialEffect);
program = fb->GetShaderManager()->GetEffect(key.SpecialEffect, key.DrawBuffers > 1 ? GBUFFER_PASS : NORMAL_PASS);
}
else
{
Expand Down
20 changes: 10 additions & 10 deletions src/rendering/vulkan/shaders/vk_shader.cpp
Expand Up @@ -42,14 +42,14 @@ VkShaderManager::VkShaderManager(VulkanDevice *device) : device(device)
prog.frag = LoadFragShader(name, mainfp, usershaders[i].shader, defaultshaders[usershaders[i].shaderType].lightfunc, defines, true, gbufferpass);
mMaterialShaders[j].push_back(std::move(prog));
}
}

for (int i = 0; i < MAX_EFFECTS; i++)
{
VkShaderProgram prog;
prog.vert = LoadVertShader(effectshaders[i].ShaderName, effectshaders[i].vp, defaultshaders[i].Defines);
prog.frag = LoadFragShader(effectshaders[i].ShaderName, effectshaders[i].fp1, effectshaders[i].fp2, effectshaders[i].fp3, effectshaders[i].defines, true, false);
mEffectShaders[i] = std::move(prog);
for (int i = 0; i < MAX_EFFECTS; i++)
{
VkShaderProgram prog;
prog.vert = LoadVertShader(effectshaders[i].ShaderName, effectshaders[i].vp, effectshaders[i].defines);
prog.frag = LoadFragShader(effectshaders[i].ShaderName, effectshaders[i].fp1, effectshaders[i].fp2, effectshaders[i].fp3, effectshaders[i].defines, true, gbufferpass);
mEffectShaders[j].push_back(std::move(prog));
}
}
}

Expand All @@ -58,11 +58,11 @@ VkShaderManager::~VkShaderManager()
ShFinalize();
}

VkShaderProgram *VkShaderManager::GetEffect(int effect)
VkShaderProgram *VkShaderManager::GetEffect(int effect, EPassType passType)
{
if (effect >= 0 && effect < MAX_EFFECTS && mEffectShaders[effect].frag)
if (effect >= 0 && effect < MAX_EFFECTS && mEffectShaders[passType][effect].frag)
{
return &mEffectShaders[effect];
return &mEffectShaders[passType][effect];
}
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions src/rendering/vulkan/shaders/vk_shader.h
Expand Up @@ -61,7 +61,7 @@ class VkShaderManager
VkShaderManager(VulkanDevice *device);
~VkShaderManager();

VkShaderProgram *GetEffect(int effect);
VkShaderProgram *GetEffect(int effect, EPassType passType);
VkShaderProgram *Get(unsigned int eff, bool alphateston, EPassType passType);

private:
Expand All @@ -76,5 +76,5 @@ class VkShaderManager

std::vector<VkShaderProgram> mMaterialShaders[MAX_PASS_TYPES];
std::vector<VkShaderProgram> mMaterialShadersNAT[MAX_PASS_TYPES];
VkShaderProgram mEffectShaders[MAX_EFFECTS];
std::vector<VkShaderProgram> mEffectShaders[MAX_PASS_TYPES];
};

0 comments on commit d1e8bd6

Please sign in to comment.