diff --git a/libraries/render-utils/src/RenderDeferredTask.cpp b/libraries/render-utils/src/RenderDeferredTask.cpp index de9ff40955..b4b6a979da 100755 --- a/libraries/render-utils/src/RenderDeferredTask.cpp +++ b/libraries/render-utils/src/RenderDeferredTask.cpp @@ -123,7 +123,10 @@ RenderDeferredTask::RenderDeferredTask(CullFunctor cullFunctor) { // Draw Lights just add the lights to the current list of lights to deal with. NOt really gpu job for now. addJob("DrawLight", lights); - const auto scatteringInputs = render::Varying(SubsurfaceScattering::Inputs(deferredFrameTransform, curvatureFramebufferAndDepth[0])); + curvatureFramebufferAndDepth.get().first; + + // const auto scatteringInputs = render::Varying(SubsurfaceScattering::Inputs(deferredFrameTransform, curvatureFramebufferAndDepth[0])); + const auto scatteringInputs = render::Varying(SubsurfaceScattering::Inputs(deferredFrameTransform, curvatureFramebufferAndDepth.get().first)); const auto scatteringFramebuffer = addJob("Scattering", scatteringInputs); // DeferredBuffer is complete, now let's shade it into the LightingBuffer diff --git a/libraries/render-utils/src/SubsurfaceScattering.h b/libraries/render-utils/src/SubsurfaceScattering.h index 832b7c8683..15369492a0 100644 --- a/libraries/render-utils/src/SubsurfaceScattering.h +++ b/libraries/render-utils/src/SubsurfaceScattering.h @@ -33,8 +33,7 @@ signals: class SubsurfaceScattering { public: - using Inputs = render::VaryingPair;//; - //using Inputs = render::VaryingPairBase;//; + using Inputs = render::VaryingPair; using Config = SubsurfaceScatteringConfig; using JobModel = render::Job::ModelIO; diff --git a/libraries/render-utils/src/SurfaceGeometryPass.cpp b/libraries/render-utils/src/SurfaceGeometryPass.cpp index 48188ee196..9e5d455725 100644 --- a/libraries/render-utils/src/SurfaceGeometryPass.cpp +++ b/libraries/render-utils/src/SurfaceGeometryPass.cpp @@ -59,6 +59,7 @@ void SurfaceGeometryPass::run(const render::SceneContextPointer& sceneContext, c auto pyramidTexture = framebufferCache->getDepthPyramidTexture(); auto curvatureFBO = framebufferCache->getCurvatureFramebuffer(); + curvatureAndDepth.first. template edit() = curvatureFBO; curvatureAndDepth.second. template edit() = pyramidTexture; diff --git a/libraries/render-utils/src/SurfaceGeometryPass.h b/libraries/render-utils/src/SurfaceGeometryPass.h index 8e8486c499..bfad811340 100644 --- a/libraries/render-utils/src/SurfaceGeometryPass.h +++ b/libraries/render-utils/src/SurfaceGeometryPass.h @@ -40,7 +40,7 @@ signals: class SurfaceGeometryPass { public: - using Outputs = render::VaryingPair;//; + using Outputs = render::VaryingPair; using Config = SurfaceGeometryPassConfig; using JobModel = render::Job::ModelIO; diff --git a/libraries/render/src/render/BlurTask.h b/libraries/render/src/render/BlurTask.h index df863e375b..899b1ffe12 100644 --- a/libraries/render/src/render/BlurTask.h +++ b/libraries/render/src/render/BlurTask.h @@ -108,8 +108,7 @@ protected: class BlurGaussianDepthAware { public: - using Inputs = VaryingPair;//; - // using InputPair = VaryingPairBase;//; + using Inputs = VaryingPair; using Config = BlurGaussianDepthAwareConfig; using JobModel = Job::ModelIO; diff --git a/libraries/render/src/render/Task.cpp b/libraries/render/src/render/Task.cpp index 663b1edc09..8727923c70 100644 --- a/libraries/render/src/render/Task.cpp +++ b/libraries/render/src/render/Task.cpp @@ -27,7 +27,7 @@ void TaskConfig::refresh() { namespace render{ - template <> void varyingGet(const VaryingPair& data, uint8_t index, Varying& var) { + template <> void varyingGet(const VaryingPairBase& data, uint8_t index, Varying& var) { if (index == 0) { var = data.first; } else { @@ -35,6 +35,6 @@ namespace render{ } } - template <> uint8_t varyingLength(const VaryingPair& data) { return 2; } + template <> uint8_t varyingLength(const VaryingPairBase& data) { return 2; } } \ No newline at end of file diff --git a/libraries/render/src/render/Task.h b/libraries/render/src/render/Task.h index 85bc2c44e8..44cb10aead 100644 --- a/libraries/render/src/render/Task.h +++ b/libraries/render/src/render/Task.h @@ -85,7 +85,12 @@ protected: -using VaryingPair = std::pair; +using VaryingPairBase = std::pair; + + +template <> void varyingGet(const VaryingPairBase& data, uint8_t index, Varying& var); +template <> uint8_t varyingLength(const VaryingPairBase& data); + /* class VaryingPairBase { public: @@ -98,11 +103,11 @@ class VaryingPairBase { VaryingPairBase(const Varying& _first, const Varying& _second) : first(_first), second(_second) {} }; - */ /* + */ template < class T0, class T1 > -class VaryingPair : public std::pair { +class VaryingPair : public VaryingPairBase { public: - using Parent = std::pair; + using Parent = VaryingPairBase; VaryingPair() : Parent(Varying(T0()), Varying(T1())) {} VaryingPair(const VaryingPair& pair) : Parent(pair.first, pair.second) {} @@ -113,12 +118,10 @@ public: const T1& getSecond() const { return second.get(); } T1& editSecond() { return second.edit(); } - }; - */ + + - template <> void varyingGet(const VaryingPair& data, uint8_t index, Varying& var); - template <> uint8_t varyingLength(const VaryingPair& data); /* template Varying varyingGet(const T& data, uint8_t index) { return Varying(T()); }*/