Map renderer viewport and scissor to OpenGL

This commit is contained in:
2026-06-02 20:29:30 +02:00
parent 728116da8f
commit 2f8f12a8fd
5 changed files with 92 additions and 7 deletions

View File

@@ -529,6 +529,44 @@ void maps_app_initialization_parameters(pp::tests::Harness& h)
PP_EXPECT(h, pp::renderer::gl::active_texture_unit(4U) == 0x84C4U);
}
void maps_renderer_viewports_and_scissors(pp::tests::Harness& h)
{
const auto viewport = pp::renderer::gl::viewport_for_renderer_viewport(
pp::renderer::Viewport {
.x = 4,
.y = 8,
.width = 640U,
.height = 320U,
.min_depth = 0.25F,
.max_depth = 0.75F,
});
const auto disabled_scissor = pp::renderer::gl::scissor_rect_for_renderer_scissor(
pp::renderer::ScissorRect {});
const auto enabled_scissor = pp::renderer::gl::scissor_rect_for_renderer_scissor(
pp::renderer::ScissorRect {
.enabled = true,
.x = 12,
.y = 16,
.width = 128U,
.height = 64U,
});
PP_EXPECT(h, viewport.x == 4);
PP_EXPECT(h, viewport.y == 8);
PP_EXPECT(h, viewport.width == 640);
PP_EXPECT(h, viewport.height == 320);
PP_EXPECT(h, viewport.min_depth == 0.25F);
PP_EXPECT(h, viewport.max_depth == 0.75F);
PP_EXPECT(h, disabled_scissor.enabled == 0U);
PP_EXPECT(h, disabled_scissor.width == 0);
PP_EXPECT(h, disabled_scissor.height == 0);
PP_EXPECT(h, enabled_scissor.enabled == 1U);
PP_EXPECT(h, enabled_scissor.x == 12);
PP_EXPECT(h, enabled_scissor.y == 16);
PP_EXPECT(h, enabled_scissor.width == 128);
PP_EXPECT(h, enabled_scissor.height == 64);
}
void maps_renderer_blend_state_tokens(pp::tests::Harness& h)
{
const auto zero = pp::renderer::gl::blend_factor_for_renderer_factor(pp::renderer::BlendFactor::zero);
@@ -863,6 +901,7 @@ int main()
harness.run("maps_renderer_sampler_tokens", maps_renderer_sampler_tokens);
harness.run("exposes_shader_attribute_binding_catalog", exposes_shader_attribute_binding_catalog);
harness.run("maps_app_initialization_parameters", maps_app_initialization_parameters);
harness.run("maps_renderer_viewports_and_scissors", maps_renderer_viewports_and_scissors);
harness.run("maps_renderer_blend_state_tokens", maps_renderer_blend_state_tokens);
harness.run("maps_renderer_color_write_masks", maps_renderer_color_write_masks);
harness.run("maps_renderer_blend_states", maps_renderer_blend_states);