Extract draw merge final plane composite helper
This commit is contained in:
@@ -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);
|
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(
|
static void execute_canvas_draw_merge_plane_final_composite(
|
||||||
Canvas& canvas,
|
Canvas& canvas,
|
||||||
const glm::mat4& ortho,
|
const glm::mat4& ortho,
|
||||||
@@ -1450,31 +1480,7 @@ void Canvas::draw_merge_final_plane_composite(
|
|||||||
},
|
},
|
||||||
.draw_checkerboard = draw_checkerboard,
|
.draw_checkerboard = draw_checkerboard,
|
||||||
},
|
},
|
||||||
pp::panopainter::LegacyCanvasDrawMergeFinalPlaneCompositeExecution {
|
make_canvas_draw_merge_final_plane_composite_execution(*this));
|
||||||
.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();
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Canvas::stroke_draw_dual_pass(
|
void Canvas::stroke_draw_dual_pass(
|
||||||
|
|||||||
Reference in New Issue
Block a user