History

Clean up task construction

Zach Pomerantz committed 10 years ago

Commit 82f7ea51 parent ed5c53f3 files · +36 −60Browse files

Showing the changes to libraries/render-utils/src/RenderDeferredTask.cpp (1 of 3 files). Show all

Unified · Split

libraries/render-utils/src/RenderDeferredTask.cpp+16−27
@@ -77,30 +77,28 @@ RenderDeferredTask::RenderDeferredTask() : Task() { · 76 unmodified lines
77 ShapePlumberPointer shapePlumber = std::make_shared<ShapePlumber>();77 ShapePlumberPointer shapePlumber = std::make_shared<ShapePlumber>();
78 initDeferredPipelines(*shapePlumber);78 initDeferredPipelines(*shapePlumber);
79 79
80 // CPU only, create the list of renderedOpaques items80 // CPU: Fetch the renderOpaques
81 addJob<FetchItems>("FetchOpaque", FetchItems([](const RenderContextPointer& context, int count) {81 const auto fetchedOpaques = addJob<FetchItems>("FetchOpaque", FetchItems([](const RenderContextPointer& context, int count) {
82 context->getItemsConfig().opaque.numFeed = count;82 context->getItemsConfig().opaque.numFeed = count;
83 }));83 }));
84 addJob<CullItems<RenderDetails::OPAQUE_ITEM>>("CullOpaque", _jobs.back().getOutput());84 const auto culledOpaques = addJob<CullItems<RenderDetails::OPAQUE_ITEM>>("CullOpaque", fetchedOpaques);
85 addJob<DepthSortItems>("DepthSortOpaque", _jobs.back().getOutput());85 const auto opaques = addJob<DepthSortItems>("DepthSortOpaque", culledOpaques);
86 auto& renderedOpaques = _jobs.back().getOutput();
87 86
88 // CPU only, create the list of renderedTransparents items87 // CPU only, create the list of renderedTransparents items
89 addJob<FetchItems>("FetchTransparent", FetchItems(88 const auto fetchedTransparents = addJob<FetchItems>("FetchTransparent", FetchItems(
90 ItemFilter::Builder::transparentShape().withoutLayered(),89 ItemFilter::Builder::transparentShape().withoutLayered(),
91 [](const RenderContextPointer& context, int count) {90 [](const RenderContextPointer& context, int count) {
92 context->getItemsConfig().transparent.numFeed = count;91 context->getItemsConfig().transparent.numFeed = count;
93 }92 }
94 ));93 ));
95 addJob<CullItems<RenderDetails::TRANSLUCENT_ITEM>>("CullTransparent", _jobs.back().getOutput());94 const auto culledTransparents = addJob<CullItems<RenderDetails::TRANSLUCENT_ITEM>>("CullTransparent", fetchedTransparents);
96 addJob<DepthSortItems>("DepthSortTransparent", _jobs.back().getOutput(), DepthSortItems(false));95 const auto transparents = addJob<DepthSortItems>("DepthSortTransparent", culledTransparents, DepthSortItems(false));
97 auto& renderedTransparents = _jobs.back().getOutput();
98 96
99 // GPU Jobs: Start preparing the deferred and lighting buffer97 // GPU Jobs: Start preparing the deferred and lighting buffer
100 addJob<PrepareDeferred>("PrepareDeferred");98 addJob<PrepareDeferred>("PrepareDeferred");
101 99
102 // Render opaque objects in DeferredBuffer100 // Render opaque objects in DeferredBuffer
103 addJob<DrawOpaqueDeferred>("DrawOpaqueDeferred", renderedOpaques, shapePlumber);101 addJob<DrawOpaqueDeferred>("DrawOpaqueDeferred", opaques, shapePlumber);
104 102
105 // Once opaque is all rendered create stencil background103 // Once opaque is all rendered create stencil background
106 addJob<DrawStencilDeferred>("DrawOpaqueStencil");104 addJob<DrawStencilDeferred>("DrawOpaqueStencil");
@@ -116,16 +114,16 @@ RenderDeferredTask::RenderDeferredTask() : Task() { · 9 unmodified lines
116 114
117 // AO job, to be revisited115 // AO job, to be revisited
118 addJob<AmbientOcclusion>("AmbientOcclusion");116 addJob<AmbientOcclusion>("AmbientOcclusion");
119 _jobs.back().setEnabled(false);
120 _occlusionJobIndex = (int)_jobs.size() - 1;117 _occlusionJobIndex = (int)_jobs.size() - 1;
118 enableJob(_occlusionJobIndex, false);
121 119
122 // AA job to be revisited120 // AA job to be revisited
123 addJob<Antialiasing>("Antialiasing");121 addJob<Antialiasing>("Antialiasing");
124 _jobs.back().setEnabled(false);
125 _antialiasingJobIndex = (int)_jobs.size() - 1;122 _antialiasingJobIndex = (int)_jobs.size() - 1;
123 enableJob(_antialiasingJobIndex, false);
126 124
127 // Render transparent objects forward in LigthingBuffer125 // Render transparent objects forward in LigthingBuffer
128 addJob<DrawTransparentDeferred>("DrawTransparentDeferred", renderedTransparents, shapePlumber);126 addJob<DrawTransparentDeferred>("DrawTransparentDeferred", transparents, shapePlumber);
129 127
130 // Lighting Buffer ready for tone mapping128 // Lighting Buffer ready for tone mapping
131 addJob<ToneMappingDeferred>("ToneMapping");129 addJob<ToneMappingDeferred>("ToneMapping");
@@ -133,24 +131,24 @@ RenderDeferredTask::RenderDeferredTask() : Task() { · 1 unmodified line
133 131
134 // Debugging Deferred buffer job132 // Debugging Deferred buffer job
135 addJob<DebugDeferredBuffer>("DebugDeferredBuffer");133 addJob<DebugDeferredBuffer>("DebugDeferredBuffer");
136 _jobs.back().setEnabled(false);
137 _drawDebugDeferredBufferIndex = (int)_jobs.size() - 1;134 _drawDebugDeferredBufferIndex = (int)_jobs.size() - 1;
135 enableJob(_drawDebugDeferredBufferIndex, false);
138 136
139 // Status icon rendering job137 // Status icon rendering job
140 {138 {
141 // Grab a texture map representing the different status icons and assign that to the drawStatsuJob139 // Grab a texture map representing the different status icons and assign that to the drawStatsuJob
142 auto iconMapPath = PathUtils::resourcesPath() + "icons/statusIconAtlas.svg";140 auto iconMapPath = PathUtils::resourcesPath() + "icons/statusIconAtlas.svg";
143 auto statusIconMap = DependencyManager::get<TextureCache>()->getImageTexture(iconMapPath);141 auto statusIconMap = DependencyManager::get<TextureCache>()->getImageTexture(iconMapPath);
144 addJob<DrawStatus>("DrawStatus", renderedOpaques, DrawStatus(statusIconMap));142 addJob<DrawStatus>("DrawStatus", opaques, DrawStatus(statusIconMap));
145 _jobs.back().setEnabled(false);
146 _drawStatusJobIndex = (int)_jobs.size() - 1;143 _drawStatusJobIndex = (int)_jobs.size() - 1;
144 enableJob(_drawStatusJobIndex, false);
147 }145 }
148 146
149 addJob<DrawOverlay3D>("DrawOverlay3D", shapePlumber);147 addJob<DrawOverlay3D>("DrawOverlay3D", shapePlumber);
150 148
151 addJob<HitEffect>("HitEffect");149 addJob<HitEffect>("HitEffect");
152 _jobs.back().setEnabled(false);
153 _drawHitEffectJobIndex = (int)_jobs.size() -1;150 _drawHitEffectJobIndex = (int)_jobs.size() -1;
151 enableJob(_drawHitEffectJobIndex, false);
154 152
155 addJob<Blit>("Blit");153 addJob<Blit>("Blit");
156}154}
@@ -168,21 +166,12 @@ void RenderDeferredTask::run(const SceneContextPointer& sceneContext, const Rend · 11 unmodified lines
168 return;166 return;
169 }167 }
170 168
171 // Make sure we turn the deferred buffer debug on/off
172 setDrawDebugDeferredBuffer(renderContext->_deferredDebugMode);169 setDrawDebugDeferredBuffer(renderContext->_deferredDebugMode);
173
174 // Make sure we turn the displayItemStatus on/off
175 setDrawItemStatus(renderContext->getDrawStatus());170 setDrawItemStatus(renderContext->getDrawStatus());
176
177 // Make sure we display hit effect on screen, as desired from a script
178 setDrawHitEffect(renderContext->getDrawHitEffect());171 setDrawHitEffect(renderContext->getDrawHitEffect());
179
180
181 // TODO: turn on/off AO through menu item172 // TODO: turn on/off AO through menu item
182 setOcclusionStatus(renderContext->getOcclusionStatus());173 setOcclusionStatus(renderContext->getOcclusionStatus());
183
184 setAntialiasingStatus(renderContext->getFxaaStatus());174 setAntialiasingStatus(renderContext->getFxaaStatus());
185
186 setToneMappingExposure(renderContext->getTone().exposure);175 setToneMappingExposure(renderContext->getTone().exposure);
187 setToneMappingToneCurve(renderContext->getTone().toneCurve);176 setToneMappingToneCurve(renderContext->getTone().toneCurve);
188 177