Map renderer sampler state to OpenGL
This commit is contained in:
@@ -440,6 +440,24 @@ void maps_renderer_sampler_tokens(pp::tests::Harness& h)
|
||||
pp::renderer::SamplerAddressMode::clamp_to_border);
|
||||
const auto invalid_mode = pp::renderer::gl::sampler_address_mode_for_renderer_mode(
|
||||
static_cast<pp::renderer::SamplerAddressMode>(255U));
|
||||
const auto nearest_nearest = pp::renderer::gl::sampler_min_filter_for_renderer_filters(
|
||||
pp::renderer::SamplerFilter::nearest,
|
||||
pp::renderer::SamplerFilter::nearest);
|
||||
const auto linear_nearest = pp::renderer::gl::sampler_min_filter_for_renderer_filters(
|
||||
pp::renderer::SamplerFilter::linear,
|
||||
pp::renderer::SamplerFilter::nearest);
|
||||
const auto nearest_linear = pp::renderer::gl::sampler_min_filter_for_renderer_filters(
|
||||
pp::renderer::SamplerFilter::nearest,
|
||||
pp::renderer::SamplerFilter::linear);
|
||||
const auto linear_linear = pp::renderer::gl::sampler_min_filter_for_renderer_filters(
|
||||
pp::renderer::SamplerFilter::linear,
|
||||
pp::renderer::SamplerFilter::linear);
|
||||
const auto invalid_min_filter = pp::renderer::gl::sampler_min_filter_for_renderer_filters(
|
||||
static_cast<pp::renderer::SamplerFilter>(255U),
|
||||
pp::renderer::SamplerFilter::linear);
|
||||
const auto invalid_mip_filter = pp::renderer::gl::sampler_min_filter_for_renderer_filters(
|
||||
pp::renderer::SamplerFilter::linear,
|
||||
static_cast<pp::renderer::SamplerFilter>(255U));
|
||||
|
||||
PP_EXPECT(h, nearest.supported);
|
||||
PP_EXPECT(h, nearest.value == 0x2600U);
|
||||
@@ -457,6 +475,58 @@ void maps_renderer_sampler_tokens(pp::tests::Harness& h)
|
||||
PP_EXPECT(h, clamp_to_border.value == 0x812DU);
|
||||
PP_EXPECT(h, !invalid_mode.supported);
|
||||
PP_EXPECT(h, invalid_mode.value == 0U);
|
||||
PP_EXPECT(h, nearest_nearest.supported);
|
||||
PP_EXPECT(h, nearest_nearest.value == 0x2700U);
|
||||
PP_EXPECT(h, linear_nearest.supported);
|
||||
PP_EXPECT(h, linear_nearest.value == 0x2701U);
|
||||
PP_EXPECT(h, nearest_linear.supported);
|
||||
PP_EXPECT(h, nearest_linear.value == 0x2702U);
|
||||
PP_EXPECT(h, linear_linear.supported);
|
||||
PP_EXPECT(h, linear_linear.value == 0x2703U);
|
||||
PP_EXPECT(h, !invalid_min_filter.supported);
|
||||
PP_EXPECT(h, invalid_min_filter.value == 0U);
|
||||
PP_EXPECT(h, !invalid_mip_filter.supported);
|
||||
PP_EXPECT(h, invalid_mip_filter.value == 0U);
|
||||
}
|
||||
|
||||
void maps_renderer_sampler_states(pp::tests::Harness& h)
|
||||
{
|
||||
const auto default_sampler = pp::renderer::gl::sampler_state_for_renderer_sampler_desc(
|
||||
pp::renderer::SamplerDesc {});
|
||||
const auto mixed_sampler = pp::renderer::gl::sampler_state_for_renderer_sampler_desc(
|
||||
pp::renderer::SamplerDesc {
|
||||
.min_filter = pp::renderer::SamplerFilter::nearest,
|
||||
.mag_filter = pp::renderer::SamplerFilter::linear,
|
||||
.mip_filter = pp::renderer::SamplerFilter::linear,
|
||||
.address_u = pp::renderer::SamplerAddressMode::repeat,
|
||||
.address_v = pp::renderer::SamplerAddressMode::mirrored_repeat,
|
||||
.address_w = pp::renderer::SamplerAddressMode::clamp_to_border,
|
||||
});
|
||||
const auto invalid_filter = pp::renderer::gl::sampler_state_for_renderer_sampler_desc(
|
||||
pp::renderer::SamplerDesc {
|
||||
.min_filter = static_cast<pp::renderer::SamplerFilter>(255U),
|
||||
});
|
||||
const auto invalid_address = pp::renderer::gl::sampler_state_for_renderer_sampler_desc(
|
||||
pp::renderer::SamplerDesc {
|
||||
.address_w = static_cast<pp::renderer::SamplerAddressMode>(255U),
|
||||
});
|
||||
|
||||
PP_EXPECT(h, default_sampler.supported);
|
||||
PP_EXPECT(h, default_sampler.min_filter == 0x2703U);
|
||||
PP_EXPECT(h, default_sampler.mag_filter == 0x2601U);
|
||||
PP_EXPECT(h, default_sampler.wrap_s == 0x812FU);
|
||||
PP_EXPECT(h, default_sampler.wrap_t == 0x812FU);
|
||||
PP_EXPECT(h, default_sampler.wrap_r == 0x812FU);
|
||||
PP_EXPECT(h, mixed_sampler.supported);
|
||||
PP_EXPECT(h, mixed_sampler.min_filter == 0x2702U);
|
||||
PP_EXPECT(h, mixed_sampler.mag_filter == 0x2601U);
|
||||
PP_EXPECT(h, mixed_sampler.wrap_s == 0x2901U);
|
||||
PP_EXPECT(h, mixed_sampler.wrap_t == 0x8370U);
|
||||
PP_EXPECT(h, mixed_sampler.wrap_r == 0x812DU);
|
||||
PP_EXPECT(h, !invalid_filter.supported);
|
||||
PP_EXPECT(h, invalid_filter.min_filter == 0U);
|
||||
PP_EXPECT(h, !invalid_address.supported);
|
||||
PP_EXPECT(h, invalid_address.wrap_r == 0U);
|
||||
}
|
||||
|
||||
void exposes_shader_attribute_binding_catalog(pp::tests::Harness& h)
|
||||
@@ -899,6 +969,7 @@ int main()
|
||||
harness.run("exposes_default_render_target_texture_parameters", exposes_default_render_target_texture_parameters);
|
||||
harness.run("maps_sampler_parameters", maps_sampler_parameters);
|
||||
harness.run("maps_renderer_sampler_tokens", maps_renderer_sampler_tokens);
|
||||
harness.run("maps_renderer_sampler_states", maps_renderer_sampler_states);
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user