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
7777 ShapePlumberPointer shapePlumber = std::make_shared<ShapePlumber>();
7878 initDeferredPipelines(*shapePlumber);
7979
80− // CPU only, create the list of renderedOpaques items
81− addJob<FetchItems>("FetchOpaque", FetchItems([](const RenderContextPointer& context, int count) {
80+ // CPU: Fetch the renderOpaques
81+ const auto fetchedOpaques = addJob<FetchItems>("FetchOpaque", FetchItems([](const RenderContextPointer& context, int count) {
8282 context->getItemsConfig().opaque.numFeed = count;
8383 }));
84− addJob<CullItems<RenderDetails::OPAQUE_ITEM>>("CullOpaque", _jobs.back().getOutput());
85− addJob<DepthSortItems>("DepthSortOpaque", _jobs.back().getOutput());
86− auto& renderedOpaques = _jobs.back().getOutput();
84+ const auto culledOpaques = addJob<CullItems<RenderDetails::OPAQUE_ITEM>>("CullOpaque", fetchedOpaques);
85+ const auto opaques = addJob<DepthSortItems>("DepthSortOpaque", culledOpaques);
8786
8887 // CPU only, create the list of renderedTransparents items
89− addJob<FetchItems>("FetchTransparent", FetchItems(
88+ const auto fetchedTransparents = addJob<FetchItems>("FetchTransparent", FetchItems(
9089 ItemFilter::Builder::transparentShape().withoutLayered(),
9190 [](const RenderContextPointer& context, int count) {
9291 context->getItemsConfig().transparent.numFeed = count;
9392 }
94− ));
95− addJob<CullItems<RenderDetails::TRANSLUCENT_ITEM>>("CullTransparent", _jobs.back().getOutput());
96− addJob<DepthSortItems>("DepthSortTransparent", _jobs.back().getOutput(), DepthSortItems(false));
97− auto& renderedTransparents = _jobs.back().getOutput();
93+ ));
94+ const auto culledTransparents = addJob<CullItems<RenderDetails::TRANSLUCENT_ITEM>>("CullTransparent", fetchedTransparents);
95+ const auto transparents = addJob<DepthSortItems>("DepthSortTransparent", culledTransparents, DepthSortItems(false));
9896
9997 // GPU Jobs: Start preparing the deferred and lighting buffer
10098 addJob<PrepareDeferred>("PrepareDeferred");
10199
102100 // Render opaque objects in DeferredBuffer
103− addJob<DrawOpaqueDeferred>("DrawOpaqueDeferred", renderedOpaques, shapePlumber);
101+ addJob<DrawOpaqueDeferred>("DrawOpaqueDeferred", opaques, shapePlumber);
104102
105103 // Once opaque is all rendered create stencil background
106104 addJob<DrawStencilDeferred>("DrawOpaqueStencil");
@@ -116,16 +114,16 @@ RenderDeferredTask::RenderDeferredTask() : Task() { · 9 unmodified lines
116114
117115 // AO job, to be revisited
118116 addJob<AmbientOcclusion>("AmbientOcclusion");
119− _jobs.back().setEnabled(false);
120117 _occlusionJobIndex = (int)_jobs.size() - 1;
118+ enableJob(_occlusionJobIndex, false);
121119
122120 // AA job to be revisited
123121 addJob<Antialiasing>("Antialiasing");
124− _jobs.back().setEnabled(false);
125122 _antialiasingJobIndex = (int)_jobs.size() - 1;
123+ enableJob(_antialiasingJobIndex, false);
126124
127125 // Render transparent objects forward in LigthingBuffer
128− addJob<DrawTransparentDeferred>("DrawTransparentDeferred", renderedTransparents, shapePlumber);
126+ addJob<DrawTransparentDeferred>("DrawTransparentDeferred", transparents, shapePlumber);
129127
130128 // Lighting Buffer ready for tone mapping
131129 addJob<ToneMappingDeferred>("ToneMapping");
@@ -133,24 +131,24 @@ RenderDeferredTask::RenderDeferredTask() : Task() { · 1 unmodified line
133131
134132 // Debugging Deferred buffer job
135133 addJob<DebugDeferredBuffer>("DebugDeferredBuffer");
136− _jobs.back().setEnabled(false);
137134 _drawDebugDeferredBufferIndex = (int)_jobs.size() - 1;
135+ enableJob(_drawDebugDeferredBufferIndex, false);
138136
139137 // Status icon rendering job
140138 {
141139 // Grab a texture map representing the different status icons and assign that to the drawStatsuJob
142140 auto iconMapPath = PathUtils::resourcesPath() + "icons/statusIconAtlas.svg";
143141 auto statusIconMap = DependencyManager::get<TextureCache>()->getImageTexture(iconMapPath);
144− addJob<DrawStatus>("DrawStatus", renderedOpaques, DrawStatus(statusIconMap));
145− _jobs.back().setEnabled(false);
142+ addJob<DrawStatus>("DrawStatus", opaques, DrawStatus(statusIconMap));
146143 _drawStatusJobIndex = (int)_jobs.size() - 1;
144+ enableJob(_drawStatusJobIndex, false);
147145 }
148146
149147 addJob<DrawOverlay3D>("DrawOverlay3D", shapePlumber);
150148
151149 addJob<HitEffect>("HitEffect");
152− _jobs.back().setEnabled(false);
153150 _drawHitEffectJobIndex = (int)_jobs.size() -1;
151+ enableJob(_drawHitEffectJobIndex, false);
154152
155153 addJob<Blit>("Blit");
156154 }
@@ -168,21 +166,12 @@ void RenderDeferredTask::run(const SceneContextPointer& sceneContext, const Rend · 11 unmodified lines
168166 return;
169167 }
170168
171− // Make sure we turn the deferred buffer debug on/off
172169 setDrawDebugDeferredBuffer(renderContext->_deferredDebugMode);
173−
174− // Make sure we turn the displayItemStatus on/off
175170 setDrawItemStatus(renderContext->getDrawStatus());
176−
177− // Make sure we display hit effect on screen, as desired from a script
178171 setDrawHitEffect(renderContext->getDrawHitEffect());
179−
180−
181172 // TODO: turn on/off AO through menu item
182173 setOcclusionStatus(renderContext->getOcclusionStatus());
183−
184174 setAntialiasingStatus(renderContext->getFxaaStatus());
185−
186175 setToneMappingExposure(renderContext->getTone().exposure);
187176 setToneMappingToneCurve(renderContext->getTone().toneCurve);
188177