Extract draw merge final plane composite helper

This commit is contained in:
2026-06-14 05:25:21 +02:00
parent 90334a0317
commit e98c8f4840

View File

@@ -508,6 +508,36 @@ static void execute_canvas_draw_merge_final_plane_composite(
pp::panopainter::execute_legacy_canvas_draw_merge_final_plane_composite(uniforms, execution);
}
static pp::panopainter::LegacyCanvasDrawMergeFinalPlaneCompositeExecution
make_canvas_draw_merge_final_plane_composite_execution(Canvas& canvas)
{
return {
.bind_merged_texture_copy_target = [&] {
canvas.set_active_texture_unit(2);
canvas.m_merge_tex.bind();
},
.copy_merged_framebuffer = [&] {
canvas.copy_framebuffer_to_texture_2d(0, 0, 0, 0, canvas.m_width, canvas.m_height);
},
.enable_blend = [&] {
canvas.apply_canvas_capability(canvas.blend_state(), true);
},
.draw = [&] {
canvas.m_plane.draw_fill();
},
.bind_sampler = [&] {
canvas.m_sampler.bind(0);
},
.bind_merged_texture = [&] {
canvas.set_active_texture_unit(0);
canvas.m_merge_tex.bind();
},
.unbind_merged_texture = [&] {
canvas.m_merge_tex.unbind();
},
};
}
static void execute_canvas_draw_merge_plane_final_composite(
Canvas& canvas,
const glm::mat4& ortho,
@@ -1450,31 +1480,7 @@ void Canvas::draw_merge_final_plane_composite(
},
.draw_checkerboard = draw_checkerboard,
},
pp::panopainter::LegacyCanvasDrawMergeFinalPlaneCompositeExecution {
.bind_merged_texture_copy_target = [&] {
set_active_texture_unit(2);
m_merge_tex.bind();
},
.copy_merged_framebuffer = [&] {
copy_framebuffer_to_texture_2d(0, 0, 0, 0, m_width, m_height);
},
.enable_blend = [&] {
apply_canvas_capability(blend_state(), true);
},
.draw = [&] {
m_plane.draw_fill();
},
.bind_sampler = [&] {
m_sampler.bind(0);
},
.bind_merged_texture = [&] {
set_active_texture_unit(0);
m_merge_tex.bind();
},
.unbind_merged_texture = [&] {
m_merge_tex.unbind();
},
});
make_canvas_draw_merge_final_plane_composite_execution(*this));
}
void Canvas::stroke_draw_dual_pass(