Route render platform hints through platform services

This commit is contained in:
2026-06-03 05:20:24 +02:00
parent 389cd93e68
commit 87b1851d59
10 changed files with 45 additions and 26 deletions

View File

@@ -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());
});

View File

@@ -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();

View File

@@ -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();

View File

@@ -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;

View File

@@ -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
{
}

View File

@@ -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();