Add renderer depth state contract
This commit is contained in:
@@ -220,6 +220,28 @@ pp::foundation::Status validate_blend_state(BlendState state) noexcept
|
||||
return validate_blend_op(state.alpha_op);
|
||||
}
|
||||
|
||||
pp::foundation::Status validate_compare_op(CompareOp op) noexcept
|
||||
{
|
||||
switch (op) {
|
||||
case CompareOp::never:
|
||||
case CompareOp::less:
|
||||
case CompareOp::equal:
|
||||
case CompareOp::less_or_equal:
|
||||
case CompareOp::greater:
|
||||
case CompareOp::not_equal:
|
||||
case CompareOp::greater_or_equal:
|
||||
case CompareOp::always:
|
||||
return pp::foundation::Status::success();
|
||||
}
|
||||
|
||||
return pp::foundation::Status::invalid_argument("depth compare operation is not supported");
|
||||
}
|
||||
|
||||
pp::foundation::Status validate_depth_state(DepthState state) noexcept
|
||||
{
|
||||
return validate_compare_op(state.compare);
|
||||
}
|
||||
|
||||
pp::foundation::Status validate_mesh_desc(MeshDesc desc) noexcept
|
||||
{
|
||||
if (desc.vertex_count == 0) {
|
||||
@@ -447,4 +469,28 @@ const char* blend_op_name(BlendOp op) noexcept
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
const char* compare_op_name(CompareOp op) noexcept
|
||||
{
|
||||
switch (op) {
|
||||
case CompareOp::never:
|
||||
return "never";
|
||||
case CompareOp::less:
|
||||
return "less";
|
||||
case CompareOp::equal:
|
||||
return "equal";
|
||||
case CompareOp::less_or_equal:
|
||||
return "less_or_equal";
|
||||
case CompareOp::greater:
|
||||
return "greater";
|
||||
case CompareOp::not_equal:
|
||||
return "not_equal";
|
||||
case CompareOp::greater_or_equal:
|
||||
return "greater_or_equal";
|
||||
case CompareOp::always:
|
||||
return "always";
|
||||
}
|
||||
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user