Map renderer color write masks to OpenGL

This commit is contained in:
2026-06-02 20:15:56 +02:00
parent 77c2a68cc5
commit cc4eaef3e6
5 changed files with 48 additions and 4 deletions

View File

@@ -535,6 +535,29 @@ void maps_renderer_blend_state_tokens(pp::tests::Harness& h)
PP_EXPECT(h, invalid_op.value == 0U);
}
void maps_renderer_color_write_masks(pp::tests::Harness& h)
{
const auto default_mask = pp::renderer::gl::color_write_mask_for_renderer_blend_state(
pp::renderer::BlendState {});
const auto mixed_mask = pp::renderer::gl::color_write_mask_for_renderer_blend_state(
pp::renderer::BlendState { .write_r = true, .write_g = false, .write_b = true, .write_a = false });
const auto disabled_mask = pp::renderer::gl::color_write_mask_for_renderer_blend_state(
pp::renderer::BlendState { .write_r = false, .write_g = false, .write_b = false, .write_a = false });
PP_EXPECT(h, default_mask.r == 1U);
PP_EXPECT(h, default_mask.g == 1U);
PP_EXPECT(h, default_mask.b == 1U);
PP_EXPECT(h, default_mask.a == 1U);
PP_EXPECT(h, mixed_mask.r == 1U);
PP_EXPECT(h, mixed_mask.g == 0U);
PP_EXPECT(h, mixed_mask.b == 1U);
PP_EXPECT(h, mixed_mask.a == 0U);
PP_EXPECT(h, disabled_mask.r == 0U);
PP_EXPECT(h, disabled_mask.g == 0U);
PP_EXPECT(h, disabled_mask.b == 0U);
PP_EXPECT(h, disabled_mask.a == 0U);
}
void maps_renderer_depth_compare_tokens(pp::tests::Harness& h)
{
const auto never = pp::renderer::gl::compare_function_for_renderer_compare_op(
@@ -706,6 +729,7 @@ int main()
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_blend_state_tokens", maps_renderer_blend_state_tokens);
harness.run("maps_renderer_color_write_masks", maps_renderer_color_write_masks);
harness.run("maps_renderer_depth_compare_tokens", maps_renderer_depth_compare_tokens);
harness.run("maps_windows_wgl_core_context_parameters", maps_windows_wgl_core_context_parameters);
harness.run("rejects_invalid_shader_attribute_binding_catalogs", rejects_invalid_shader_attribute_binding_catalogs);