mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 21:36:47 +02:00
Fixed compilation error with transparent procedurals
This commit is contained in:
parent
b0d19bc08e
commit
9e462e777c
1 changed files with 15 additions and 9 deletions
|
@ -270,18 +270,24 @@ void Procedural::prepare(gpu::Batch& batch, const glm::vec3& position, const glm
|
||||||
// Leave this here for debugging
|
// Leave this here for debugging
|
||||||
// qCDebug(procedural) << "FragmentShader:\n" << fragmentShaderSource.c_str();
|
// qCDebug(procedural) << "FragmentShader:\n" << fragmentShaderSource.c_str();
|
||||||
|
|
||||||
|
gpu::Shader::BindingSet slotBindings;
|
||||||
|
slotBindings.insert(gpu::Shader::Binding(std::string("iChannel0"), 0));
|
||||||
|
slotBindings.insert(gpu::Shader::Binding(std::string("iChannel1"), 1));
|
||||||
|
slotBindings.insert(gpu::Shader::Binding(std::string("iChannel2"), 2));
|
||||||
|
slotBindings.insert(gpu::Shader::Binding(std::string("iChannel3"), 3));
|
||||||
|
|
||||||
_opaqueFragmentShader = gpu::Shader::createPixel(opaqueShaderSource);
|
_opaqueFragmentShader = gpu::Shader::createPixel(opaqueShaderSource);
|
||||||
_opaqueShader = gpu::Shader::createProgram(_vertexShader, _opaqueFragmentShader);
|
_opaqueShader = gpu::Shader::createProgram(_vertexShader, _opaqueFragmentShader);
|
||||||
_transparentFragmentShader = gpu::Shader::createPixel(transparentShaderSource);
|
gpu::Shader::makeProgram(*_opaqueShader, slotBindings);
|
||||||
_transparentShader = gpu::Shader::createProgram(_vertexShader, _transparentFragmentShader);
|
|
||||||
|
|
||||||
gpu::Shader::BindingSet slotBindings;
|
if (!transparentShaderSource.empty() && transparentShaderSource != opaqueShaderSource) {
|
||||||
slotBindings.insert(gpu::Shader::Binding(std::string("iChannel0"), 0));
|
_transparentFragmentShader = gpu::Shader::createPixel(transparentShaderSource);
|
||||||
slotBindings.insert(gpu::Shader::Binding(std::string("iChannel1"), 1));
|
_transparentShader = gpu::Shader::createProgram(_vertexShader, _transparentFragmentShader);
|
||||||
slotBindings.insert(gpu::Shader::Binding(std::string("iChannel2"), 2));
|
gpu::Shader::makeProgram(*_transparentShader, slotBindings);
|
||||||
slotBindings.insert(gpu::Shader::Binding(std::string("iChannel3"), 3));
|
} else {
|
||||||
gpu::Shader::makeProgram(*_opaqueShader, slotBindings);
|
_transparentFragmentShader = _opaqueFragmentShader;
|
||||||
gpu::Shader::makeProgram(*_transparentShader, slotBindings);
|
_transparentShader = _opaqueShader;
|
||||||
|
}
|
||||||
|
|
||||||
_opaquePipeline = gpu::Pipeline::create(_opaqueShader, _opaqueState);
|
_opaquePipeline = gpu::Pipeline::create(_opaqueShader, _opaqueState);
|
||||||
_transparentPipeline = gpu::Pipeline::create(_transparentShader, _transparentState);
|
_transparentPipeline = gpu::Pipeline::create(_transparentShader, _transparentState);
|
||||||
|
|
Loading…
Reference in a new issue