From d798d1328ea8e29cceb0e86cf9f8e7ba5835c0fd Mon Sep 17 00:00:00 2001 From: redstrate <54911369+redstrate@users.noreply.github.com> Date: Tue, 18 Aug 2020 00:45:56 -0400 Subject: [PATCH] Add support for greater depth function --- engine/gfx/metal/src/gfx_metal.mm | 12 +++++++++++- engine/gfx/public/gfx.hpp | 3 ++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/engine/gfx/metal/src/gfx_metal.mm b/engine/gfx/metal/src/gfx_metal.mm index 0ff86cc..0eb84ea 100755 --- a/engine/gfx/metal/src/gfx_metal.mm +++ b/engine/gfx/metal/src/gfx_metal.mm @@ -598,7 +598,17 @@ GFXPipeline* GFXMetal::create_graphics_pipeline(const GFXGraphicsPipelineCreateI MTLDepthStencilDescriptor* depthStencil = [MTLDepthStencilDescriptor new]; if(info.depth.depth_mode != GFXDepthMode::None) { - depthStencil.depthCompareFunction = info.depth.depth_mode == GFXDepthMode::LessOrEqual ? MTLCompareFunctionLessEqual : MTLCompareFunctionLess; + switch(info.depth.depth_mode) { + case GFXDepthMode::Less: + depthStencil.depthCompareFunction = MTLCompareFunctionLess; + break; + case GFXDepthMode::LessOrEqual: + depthStencil.depthCompareFunction = MTLCompareFunctionLessEqual; + break; + case GFXDepthMode::Greater: + depthStencil.depthCompareFunction = MTLCompareFunctionGreater; + break; + } depthStencil.depthWriteEnabled = true; } diff --git a/engine/gfx/public/gfx.hpp b/engine/gfx/public/gfx.hpp index 24fc018..bc17e8f 100755 --- a/engine/gfx/public/gfx.hpp +++ b/engine/gfx/public/gfx.hpp @@ -106,7 +106,8 @@ struct GFXVertexAttribute { enum class GFXDepthMode { None, Less, - LessOrEqual + LessOrEqual, + Greater }; struct GFXPushConstant {