Add renderer scissor state contract
This commit is contained in:
@@ -122,6 +122,24 @@ pp::foundation::Status RecordingCommandContext::set_viewport(Viewport viewport)
|
||||
return pp::foundation::Status::success();
|
||||
}
|
||||
|
||||
pp::foundation::Status RecordingCommandContext::set_scissor(ScissorRect scissor) noexcept
|
||||
{
|
||||
if (!in_render_pass_) {
|
||||
return pp::foundation::Status::invalid_argument("render pass has not begun");
|
||||
}
|
||||
|
||||
const auto status = validate_scissor(scissor, active_target_.extent);
|
||||
if (!status.ok()) {
|
||||
return status;
|
||||
}
|
||||
|
||||
push_command(commands_, RecordedRenderCommand {
|
||||
.kind = RecordedRenderCommandKind::set_scissor,
|
||||
.scissor = scissor,
|
||||
});
|
||||
return pp::foundation::Status::success();
|
||||
}
|
||||
|
||||
pp::foundation::Status RecordingCommandContext::set_blend_state(BlendState state) noexcept
|
||||
{
|
||||
if (!in_render_pass_) {
|
||||
@@ -418,6 +436,8 @@ const char* recorded_render_command_kind_name(RecordedRenderCommandKind kind) no
|
||||
return "begin_render_pass";
|
||||
case RecordedRenderCommandKind::set_viewport:
|
||||
return "set_viewport";
|
||||
case RecordedRenderCommandKind::set_scissor:
|
||||
return "set_scissor";
|
||||
case RecordedRenderCommandKind::set_blend_state:
|
||||
return "set_blend_state";
|
||||
case RecordedRenderCommandKind::bind_shader:
|
||||
|
||||
Reference in New Issue
Block a user