Map renderer blend tokens to OpenGL

This commit is contained in:
2026-06-02 18:21:52 +02:00
parent 1065183e75
commit b6c66f3e41
5 changed files with 103 additions and 2 deletions

View File

@@ -440,6 +440,53 @@ void maps_app_initialization_parameters(pp::tests::Harness& h)
PP_EXPECT(h, pp::renderer::gl::active_texture_unit(4U) == 0x84C4U);
}
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);
const auto one = pp::renderer::gl::blend_factor_for_renderer_factor(pp::renderer::BlendFactor::one);
const auto source_alpha = pp::renderer::gl::blend_factor_for_renderer_factor(
pp::renderer::BlendFactor::source_alpha);
const auto one_minus_source_alpha = pp::renderer::gl::blend_factor_for_renderer_factor(
pp::renderer::BlendFactor::one_minus_source_alpha);
const auto destination_alpha = pp::renderer::gl::blend_factor_for_renderer_factor(
pp::renderer::BlendFactor::destination_alpha);
const auto one_minus_destination_alpha = pp::renderer::gl::blend_factor_for_renderer_factor(
pp::renderer::BlendFactor::one_minus_destination_alpha);
const auto invalid_factor = pp::renderer::gl::blend_factor_for_renderer_factor(
static_cast<pp::renderer::BlendFactor>(255U));
const auto add = pp::renderer::gl::blend_equation_for_renderer_op(pp::renderer::BlendOp::add);
const auto subtract = pp::renderer::gl::blend_equation_for_renderer_op(pp::renderer::BlendOp::subtract);
const auto reverse_subtract = pp::renderer::gl::blend_equation_for_renderer_op(
pp::renderer::BlendOp::reverse_subtract);
const auto invalid_op = pp::renderer::gl::blend_equation_for_renderer_op(
static_cast<pp::renderer::BlendOp>(255U));
PP_EXPECT(h, zero.supported);
PP_EXPECT(h, zero.value == 0U);
PP_EXPECT(h, one.supported);
PP_EXPECT(h, one.value == 1U);
PP_EXPECT(h, source_alpha.supported);
PP_EXPECT(h, source_alpha.value == 0x0302U);
PP_EXPECT(h, one_minus_source_alpha.supported);
PP_EXPECT(h, one_minus_source_alpha.value == 0x0303U);
PP_EXPECT(h, destination_alpha.supported);
PP_EXPECT(h, destination_alpha.value == 0x0304U);
PP_EXPECT(h, one_minus_destination_alpha.supported);
PP_EXPECT(h, one_minus_destination_alpha.value == 0x0305U);
PP_EXPECT(h, !invalid_factor.supported);
PP_EXPECT(h, invalid_factor.value == 0U);
PP_EXPECT(h, add.supported);
PP_EXPECT(h, add.value == 0x8006U);
PP_EXPECT(h, subtract.supported);
PP_EXPECT(h, subtract.value == 0x800AU);
PP_EXPECT(h, reverse_subtract.supported);
PP_EXPECT(h, reverse_subtract.value == 0x800BU);
PP_EXPECT(h, !invalid_op.supported);
PP_EXPECT(h, invalid_op.value == 0U);
}
void maps_windows_wgl_core_context_parameters(pp::tests::Harness& h)
{
const auto config = pp::renderer::gl::windows_wgl_core_context_3_3_config();
@@ -568,6 +615,7 @@ int main()
harness.run("maps_sampler_parameters", maps_sampler_parameters);
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_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);
harness.run("exposes_shader_uniform_catalog", exposes_shader_uniform_catalog);