History

wip hud layering and fix crashes

SamGondelman committed 9 years ago

Commit 477dfdf1 parent fa838e413 files · +112 −48Browse files

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

Unified · Split

libraries/render-utils/src/RenderDeferredTask.cpp+27−9
@@ -187,14 +187,19 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 186 unmodified lines
187 }187 }
188 188
189 // Overlays189 // Overlays
190 const auto overlayOpaquesInputs = DrawOverlay3D::Inputs(overlayOpaques, lightingModel).asVarying();190 const auto filteredOverlaysOpaque = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredOpaque", overlayOpaques, Item::LAYER_3D_FRONT);
191 const auto overlayTransparentsInputs = DrawOverlay3D::Inputs(overlayTransparents, lightingModel).asVarying();191 const auto filteredOverlaysTransparent = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredTransparent", overlayTransparents, Item::LAYER_3D_FRONT);
192 task.addJob<DrawOverlay3D>("DrawOverlay3DOpaque", overlayOpaquesInputs, true);192 const auto overlaysInFrontOpaque = filteredOverlaysOpaque.getN<FilterLayeredItems::Outputs>(0);
193 task.addJob<DrawOverlay3D>("DrawOverlay3DTransparent", overlayTransparentsInputs, false);193 const auto overlaysInFrontTransparent = filteredOverlaysTransparent.getN<FilterLayeredItems::Outputs>(0);
194 194
195 { // Debug the bounds of the rendered Overlay items, still look at the zbuffer195 const auto overlayInFrontOpaquesInputs = DrawOverlay3D::Inputs(overlaysInFrontOpaque, lightingModel).asVarying();
196 task.addJob<DrawBounds>("DrawOverlayOpaqueBounds", overlayOpaques);196 const auto overlayInFrontTransparentsInputs = DrawOverlay3D::Inputs(overlaysInFrontTransparent, lightingModel).asVarying();
197 task.addJob<DrawBounds>("DrawOverlayTransparentBounds", overlayTransparents);197 task.addJob<DrawOverlay3D>("DrawOverlayInFrontOpaque", overlayInFrontOpaquesInputs, true);
198 task.addJob<DrawOverlay3D>("DrawOverlayInFrontTransparent", overlayInFrontTransparentsInputs, false);
199
200 { // Debug the bounds of the rendered Overlay items that are marked drawInFront, still look at the zbuffer
201 task.addJob<DrawBounds>("DrawOverlayInFrontOpaqueBounds", overlaysInFrontOpaque);
202 task.addJob<DrawBounds>("DrawOverlayInFrontTransparentBounds", overlaysInFrontTransparent);
198 }203 }
199 204
200 // Debugging stages205 // Debugging stages
@@ -233,9 +238,22 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 32 unmodified lines
233 // AA job to be revisited238 // AA job to be revisited
234 task.addJob<Antialiasing>("Antialiasing", primaryFramebuffer);239 task.addJob<Antialiasing>("Antialiasing", primaryFramebuffer);
235 240
236 // Composite the HUD241 // Composite the HUD and HUD overlays
237 task.addJob<CompositeHUD>("HUD");242 task.addJob<CompositeHUD>("HUD");
238 243
244 const auto overlaysHUDOpaque = filteredOverlaysOpaque.getN<FilterLayeredItems::Outputs>(1);
245 const auto overlaysHUDTransparent = filteredOverlaysTransparent.getN<FilterLayeredItems::Outputs>(1);
246
247 const auto overlayHUDOpaquesInputs = DrawOverlay3D::Inputs(overlaysHUDOpaque, lightingModel).asVarying();
248 const auto overlayHUDTransparentsInputs = DrawOverlay3D::Inputs(overlaysHUDTransparent, lightingModel).asVarying();
249 task.addJob<DrawOverlay3D>("DrawOverlayHUDOpaque", overlayHUDOpaquesInputs, true);
250 task.addJob<DrawOverlay3D>("DrawOverlayHUDTransparent", overlayHUDTransparentsInputs, false);
251
252 { // Debug the bounds of the rendered Overlay items that are marked drawHUDLayer, still look at the zbuffer
253 task.addJob<DrawBounds>("DrawOverlayHUDOpaqueBounds", overlaysHUDOpaque);
254 task.addJob<DrawBounds>("DrawOverlayHUDOpaqueBounds", overlaysHUDTransparent);
255 }
256
239 task.addJob<EndGPURangeTimer>("ToneAndPostRangeTimer", toneAndPostRangeTimer);257 task.addJob<EndGPURangeTimer>("ToneAndPostRangeTimer", toneAndPostRangeTimer);
240 258
241 // Blit!259 // Blit!