Move NodeCanvas display resolve behind seam

This commit is contained in:
2026-06-16 07:00:28 +02:00
parent 56c4743e66
commit 953fa11744
2 changed files with 58 additions and 15 deletions

View File

@@ -175,6 +175,20 @@ struct LegacyCanvasDrawMergeFinalPlaneCompositeExecution {
std::function<void()> unbind_merged_texture;
};
struct LegacyCanvasDrawMergeDisplayResolveUniforms {
LegacyCanvasDrawMergeTextureUniforms texture;
};
struct LegacyCanvasDrawMergeDisplayResolveExecution {
std::function<void()> unbind_resolve_framebuffer;
std::function<void()> clear_color_buffer;
std::function<void()> apply_viewport;
std::function<void()> bind_sampler;
std::function<void()> bind_resolve_texture;
std::function<void()> draw;
std::function<void()> unbind_resolve_texture;
};
[[nodiscard]] inline LegacyCanvasDrawMergeShaderExecution legacy_shader_manager_draw_merge_execution() noexcept
{
return {
@@ -433,4 +447,18 @@ inline void execute_legacy_canvas_draw_merge_final_plane_composite(
execution.unbind_merged_texture();
}
inline void execute_legacy_canvas_draw_merge_display_resolve(
const LegacyCanvasDrawMergeDisplayResolveUniforms& uniforms,
const LegacyCanvasDrawMergeDisplayResolveExecution& execution)
{
execution.unbind_resolve_framebuffer();
execution.clear_color_buffer();
execution.apply_viewport();
execution.bind_sampler();
execution.bind_resolve_texture();
setup_legacy_canvas_draw_merge_texture_shader(uniforms.texture);
execution.draw();
execution.unbind_resolve_texture();
}
} // namespace pp::panopainter