GPU: Add enable_depth_clip to RasterizerState (#10964)

This commit is contained in:
Caleb Cornett
2024-09-27 11:18:54 -05:00
committed by GitHub
parent 04bb105d09
commit 5ff6e8d522
5 changed files with 22 additions and 4 deletions

View File

@@ -368,6 +368,16 @@ static MTLColorWriteMask SDLToMetal_ColorWriteMask(
return result;
}
static MTLDepthClipMode SDLToMetal_DepthClipMode(
bool enableDepthClip
) {
if (enableDepthClip) {
return MTLDepthClipModeClip;
} else {
return MTLDepthClipModeClamp;
}
}
// Structs
typedef struct MetalTexture
@@ -2311,6 +2321,7 @@ static void METAL_BindGraphicsPipeline(
[metalCommandBuffer->renderEncoder setTriangleFillMode:SDLToMetal_PolygonMode[metalGraphicsPipeline->rasterizerState.fill_mode]];
[metalCommandBuffer->renderEncoder setCullMode:SDLToMetal_CullMode[metalGraphicsPipeline->rasterizerState.cull_mode]];
[metalCommandBuffer->renderEncoder setFrontFacingWinding:SDLToMetal_FrontFace[metalGraphicsPipeline->rasterizerState.front_face]];
[metalCommandBuffer->renderEncoder setDepthClipMode:SDLToMetal_DepthClipMode(metalGraphicsPipeline->rasterizerState.enable_depth_clip)];
[metalCommandBuffer->renderEncoder
setDepthBias:((rast->enable_depth_bias) ? rast->depth_bias_constant_factor : 0)
slopeScale:((rast->enable_depth_bias) ? rast->depth_bias_slope_factor : 0)