Route VR render state through renderer GL
This commit is contained in:
@@ -991,6 +991,72 @@ void rejects_incomplete_scissor_test_dispatch(pp::tests::Harness& h)
|
||||
PP_EXPECT(h, status.code == pp::foundation::StatusCode::invalid_argument);
|
||||
}
|
||||
|
||||
void applies_generic_capability_dispatch(pp::tests::Harness& h)
|
||||
{
|
||||
recorded_state_calls.clear();
|
||||
|
||||
const auto enabled_status = pp::renderer::gl::apply_opengl_capability(
|
||||
0x0BE2U,
|
||||
true,
|
||||
pp::renderer::gl::OpenGlCapabilityDispatch {
|
||||
.enable = record_enable,
|
||||
.disable = record_disable,
|
||||
});
|
||||
const auto disabled_status = pp::renderer::gl::apply_opengl_capability(
|
||||
0x0B71U,
|
||||
false,
|
||||
pp::renderer::gl::OpenGlCapabilityDispatch {
|
||||
.enable = record_enable,
|
||||
.disable = record_disable,
|
||||
});
|
||||
|
||||
PP_EXPECT(h, enabled_status.ok());
|
||||
PP_EXPECT(h, disabled_status.ok());
|
||||
PP_EXPECT(h, recorded_state_calls.size() == 2U);
|
||||
PP_EXPECT(h, recorded_state_calls[0].kind == RecordedOpenGlStateCall::Kind::enable);
|
||||
PP_EXPECT(h, recorded_state_calls[0].first == 0x0BE2U);
|
||||
PP_EXPECT(h, recorded_state_calls[1].kind == RecordedOpenGlStateCall::Kind::disable);
|
||||
PP_EXPECT(h, recorded_state_calls[1].first == 0x0B71U);
|
||||
}
|
||||
|
||||
void rejects_incomplete_generic_capability_dispatch(pp::tests::Harness& h)
|
||||
{
|
||||
const auto status = pp::renderer::gl::apply_opengl_capability(
|
||||
0x0BE2U,
|
||||
true,
|
||||
pp::renderer::gl::OpenGlCapabilityDispatch {
|
||||
.enable = record_enable,
|
||||
});
|
||||
|
||||
PP_EXPECT(h, !status.ok());
|
||||
PP_EXPECT(h, status.code == pp::foundation::StatusCode::invalid_argument);
|
||||
}
|
||||
|
||||
void applies_buffer_clear_dispatch(pp::tests::Harness& h)
|
||||
{
|
||||
recorded_clear_calls.clear();
|
||||
|
||||
const auto status = pp::renderer::gl::clear_opengl_buffers(
|
||||
0x00000100U,
|
||||
pp::renderer::gl::OpenGlBufferClearDispatch {
|
||||
.clear = record_clear,
|
||||
});
|
||||
|
||||
PP_EXPECT(h, status.ok());
|
||||
PP_EXPECT(h, recorded_clear_calls.size() == 1U);
|
||||
PP_EXPECT(h, recorded_clear_calls[0].mask == 0x00000100U);
|
||||
}
|
||||
|
||||
void rejects_incomplete_buffer_clear_dispatch(pp::tests::Harness& h)
|
||||
{
|
||||
const auto status = pp::renderer::gl::clear_opengl_buffers(
|
||||
0x00000100U,
|
||||
pp::renderer::gl::OpenGlBufferClearDispatch {});
|
||||
|
||||
PP_EXPECT(h, !status.ok());
|
||||
PP_EXPECT(h, status.code == pp::foundation::StatusCode::invalid_argument);
|
||||
}
|
||||
|
||||
void maps_renderer_viewports_and_scissors(pp::tests::Harness& h)
|
||||
{
|
||||
const auto viewport = pp::renderer::gl::viewport_for_renderer_viewport(
|
||||
@@ -1377,6 +1443,10 @@ int main()
|
||||
harness.run("rejects_incomplete_scissor_dispatch", rejects_incomplete_scissor_dispatch);
|
||||
harness.run("applies_scissor_test_dispatch", applies_scissor_test_dispatch);
|
||||
harness.run("rejects_incomplete_scissor_test_dispatch", rejects_incomplete_scissor_test_dispatch);
|
||||
harness.run("applies_generic_capability_dispatch", applies_generic_capability_dispatch);
|
||||
harness.run("rejects_incomplete_generic_capability_dispatch", rejects_incomplete_generic_capability_dispatch);
|
||||
harness.run("applies_buffer_clear_dispatch", applies_buffer_clear_dispatch);
|
||||
harness.run("rejects_incomplete_buffer_clear_dispatch", rejects_incomplete_buffer_clear_dispatch);
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user