Metal layer depth range support (#2013)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Alex Cristici <alex.cristici@gmail.com>
This commit is contained in:
@@ -330,7 +330,8 @@ void Renderer::Impl::render(const RenderTree& renderTree,
|
||||
const auto maxLayerIndex = orchestrator.maxLayerIndex();
|
||||
parameters.pass = RenderPass::Opaque;
|
||||
parameters.currentLayer = 0;
|
||||
parameters.depthRangeSize = 1 - (maxLayerIndex + 3) * parameters.numSublayers * PaintParameters::depthEpsilon;
|
||||
parameters.depthRangeSize = 1 -
|
||||
(maxLayerIndex + 3) * PaintParameters::numSublayers * PaintParameters::depthEpsilon;
|
||||
|
||||
// draw layer groups, opaque pass
|
||||
orchestrator.visitLayerGroups([&](LayerGroupBase& layerGroup) {
|
||||
@@ -343,7 +344,8 @@ void Renderer::Impl::render(const RenderTree& renderTree,
|
||||
const auto debugGroup(parameters.renderPass->createDebugGroup("drawables-translucent"));
|
||||
const auto maxLayerIndex = orchestrator.maxLayerIndex();
|
||||
parameters.pass = RenderPass::Translucent;
|
||||
parameters.depthRangeSize = 1 - (maxLayerIndex + 3) * parameters.numSublayers * PaintParameters::depthEpsilon;
|
||||
parameters.depthRangeSize = 1 -
|
||||
(maxLayerIndex + 3) * PaintParameters::numSublayers * PaintParameters::depthEpsilon;
|
||||
|
||||
// draw layer groups, translucent pass
|
||||
orchestrator.visitLayerGroups([&](LayerGroupBase& layerGroup) {
|
||||
@@ -358,7 +360,7 @@ void Renderer::Impl::render(const RenderTree& renderTree,
|
||||
const auto renderLayerOpaquePass = [&] {
|
||||
const auto debugGroup(parameters.renderPass->createDebugGroup("opaque"));
|
||||
parameters.pass = RenderPass::Opaque;
|
||||
parameters.depthRangeSize = 1 - (layerRenderItems.size() + 2) * parameters.numSublayers *
|
||||
parameters.depthRangeSize = 1 - (layerRenderItems.size() + 2) * PaintParameters::numSublayers *
|
||||
PaintParameters::depthEpsilon;
|
||||
|
||||
uint32_t i = 0;
|
||||
@@ -376,7 +378,7 @@ void Renderer::Impl::render(const RenderTree& renderTree,
|
||||
const auto renderLayerTranslucentPass = [&] {
|
||||
const auto debugGroup(parameters.renderPass->createDebugGroup("translucent"));
|
||||
parameters.pass = RenderPass::Translucent;
|
||||
parameters.depthRangeSize = 1 - (layerRenderItems.size() + 2) * parameters.numSublayers *
|
||||
parameters.depthRangeSize = 1 - (layerRenderItems.size() + 2) * PaintParameters::numSublayers *
|
||||
PaintParameters::depthEpsilon;
|
||||
|
||||
int32_t i = static_cast<int32_t>(layerRenderItems.size()) - 1;
|
||||
|
||||
Reference in New Issue
Block a user