Showing the changes to libraries/render-utils/src/RenderDeferredTask.cpp (1 of 13 files). Show all
Unified · Split
| @@ -187,14 +187,19 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 186 unmodified lines | ||
| 187 | 187 | } |
| 188 | 188 | |
| 189 | 189 | // Overlays |
| 190 | − const auto overlayOpaquesInputs = DrawOverlay3D::Inputs(overlayOpaques, lightingModel).asVarying(); | |
| 191 | − const auto overlayTransparentsInputs = DrawOverlay3D::Inputs(overlayTransparents, lightingModel).asVarying(); | |
| 192 | − task.addJob<DrawOverlay3D>("DrawOverlay3DOpaque", overlayOpaquesInputs, true); | |
| 193 | − task.addJob<DrawOverlay3D>("DrawOverlay3DTransparent", overlayTransparentsInputs, false); | |
| 194 | − | |
| 195 | − { // Debug the bounds of the rendered Overlay items, still look at the zbuffer | |
| 196 | − task.addJob<DrawBounds>("DrawOverlayOpaqueBounds", overlayOpaques); | |
| 197 | − task.addJob<DrawBounds>("DrawOverlayTransparentBounds", overlayTransparents); | |
| 190 | + const auto filteredOverlaysOpaque = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredOpaque", overlayOpaques, Item::LAYER_3D_FRONT); | |
| 191 | + const auto filteredOverlaysTransparent = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredTransparent", overlayTransparents, Item::LAYER_3D_FRONT); | |
| 192 | + const auto overlaysInFrontOpaque = filteredOverlaysOpaque.getN<FilterLayeredItems::Outputs>(0); | |
| 193 | + const auto overlaysInFrontTransparent = filteredOverlaysTransparent.getN<FilterLayeredItems::Outputs>(0); | |
| 194 | + | |
| 195 | + const auto overlayInFrontOpaquesInputs = DrawOverlay3D::Inputs(overlaysInFrontOpaque, lightingModel).asVarying(); | |
| 196 | + const auto overlayInFrontTransparentsInputs = DrawOverlay3D::Inputs(overlaysInFrontTransparent, lightingModel).asVarying(); | |
| 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 | 205 | // Debugging stages |
| @@ -233,9 +238,22 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren · 32 unmodified lines | ||
| 233 | 238 | // AA job to be revisited |
| 234 | 239 | task.addJob<Antialiasing>("Antialiasing", primaryFramebuffer); |
| 235 | 240 | |
| 236 | − // Composite the HUD | |
| 241 | + // Composite the HUD and HUD overlays | |
| 237 | 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 | 257 | task.addJob<EndGPURangeTimer>("ToneAndPostRangeTimer", toneAndPostRangeTimer); |
| 240 | 258 | |
| 241 | 259 | // Blit! |