Route render platform hints through platform services
This commit is contained in:
15
src/app.cpp
15
src/app.cpp
@@ -85,16 +85,6 @@ namespace {
|
||||
return static_cast<GLenum>(pp::renderer::gl::scissor_test_state());
|
||||
}
|
||||
|
||||
[[nodiscard]] GLenum program_point_size_state() noexcept
|
||||
{
|
||||
return static_cast<GLenum>(pp::renderer::gl::program_point_size_state());
|
||||
}
|
||||
|
||||
[[nodiscard]] GLenum line_smooth_state() noexcept
|
||||
{
|
||||
return static_cast<GLenum>(pp::renderer::gl::line_smooth_state());
|
||||
}
|
||||
|
||||
[[nodiscard]] GLenum source_alpha_blend_factor() noexcept
|
||||
{
|
||||
return static_cast<GLenum>(pp::renderer::gl::source_alpha_blend_factor());
|
||||
@@ -496,10 +486,7 @@ void App::init()
|
||||
//}
|
||||
|
||||
glDisable(depth_test_state());
|
||||
#if defined(_WIN32) || defined(__OSX__)
|
||||
glEnable(program_point_size_state());
|
||||
glEnable(line_smooth_state());
|
||||
#endif
|
||||
App::I->apply_render_platform_hints();
|
||||
glBlendFunc(source_alpha_blend_factor(), one_minus_source_alpha_blend_factor());
|
||||
glBlendEquationSeparate(add_blend_equation(), max_blend_equation());
|
||||
});
|
||||
|
||||
@@ -198,6 +198,7 @@ public:
|
||||
void present_render_context();
|
||||
void bind_default_render_target();
|
||||
void bind_main_render_target();
|
||||
void apply_render_platform_hints();
|
||||
void begin_render_capture_frame();
|
||||
void end_render_capture_frame();
|
||||
[[nodiscard]] bool platform_deletes_recorded_files_on_clear();
|
||||
|
||||
@@ -247,6 +247,11 @@ void App::bind_main_render_target()
|
||||
active_platform_services().bind_main_render_target();
|
||||
}
|
||||
|
||||
void App::apply_render_platform_hints()
|
||||
{
|
||||
active_platform_services().apply_render_platform_hints();
|
||||
}
|
||||
|
||||
void App::begin_render_capture_frame()
|
||||
{
|
||||
active_platform_services().begin_render_capture_frame();
|
||||
|
||||
@@ -35,6 +35,7 @@ public:
|
||||
virtual void present_render_context() = 0;
|
||||
virtual void bind_default_render_target() = 0;
|
||||
virtual void bind_main_render_target() = 0;
|
||||
virtual void apply_render_platform_hints() = 0;
|
||||
virtual void begin_render_capture_frame() = 0;
|
||||
virtual void end_render_capture_frame() = 0;
|
||||
[[nodiscard]] virtual bool deletes_recorded_files_on_clear() = 0;
|
||||
|
||||
@@ -241,6 +241,14 @@ public:
|
||||
#endif
|
||||
}
|
||||
|
||||
void apply_render_platform_hints() override
|
||||
{
|
||||
#if defined(__OSX__)
|
||||
glEnable(static_cast<GLenum>(pp::renderer::gl::program_point_size_state()));
|
||||
glEnable(static_cast<GLenum>(pp::renderer::gl::line_smooth_state()));
|
||||
#endif
|
||||
}
|
||||
|
||||
void begin_render_capture_frame() override
|
||||
{
|
||||
}
|
||||
|
||||
@@ -262,6 +262,12 @@ public:
|
||||
bind_default_render_target();
|
||||
}
|
||||
|
||||
void apply_render_platform_hints() override
|
||||
{
|
||||
glEnable(static_cast<GLenum>(pp::renderer::gl::program_point_size_state()));
|
||||
glEnable(static_cast<GLenum>(pp::renderer::gl::line_smooth_state()));
|
||||
}
|
||||
|
||||
void begin_render_capture_frame() override
|
||||
{
|
||||
win32_renderdoc_frame_start();
|
||||
|
||||
Reference in New Issue
Block a user