Extract merged texture pass through helper

This commit is contained in:
2026-06-16 07:51:35 +02:00
parent 7ef399eb75
commit 73c13f8cde

View File

@@ -392,28 +392,36 @@ void NodeCanvas::draw()
.draw_checkerboard_plane = draw_background_plane, .draw_checkerboard_plane = draw_background_plane,
}); });
for (int plane_index = 0; plane_index < 6; plane_index++) const auto draw_merged_texture_plane = [&](int plane_index) {
pp::panopainter::execute_legacy_canvas_draw_merge_layer_texture(
{ {
int z = 1; .mvp = proj * camera *
auto plane_mvp_z = proj * camera *
//glm::scale(glm::vec3(z + 1)) *
//glm::eulerAngleYXZ(yaw, pitch, roll) *
m_canvas->m_plane_transform[plane_index] * m_canvas->m_plane_transform[plane_index] *
glm::translate(glm::vec3(0, 0, -1)); glm::translate(glm::vec3(0, 0, -1)),
m_sampler.bind(0);
pp::panopainter::setup_legacy_canvas_draw_merge_texture_alpha_shader(
pp::panopainter::LegacyCanvasDrawMergeTextureAlphaUniforms {
.mvp = plane_mvp_z,
.texture_slot = 0, .texture_slot = 0,
.alpha = 1.f, .alpha = 1.f,
.highlight = false, .highlight = false,
}); },
{
.bind_sampler = [&] {
m_sampler.bind(0);
set_active_texture_unit(0); set_active_texture_unit(0);
},
.bind_layer_texture = [&] {
m_canvas->m_layers_merge.rtt(plane_index).bindTexture(); m_canvas->m_layers_merge.rtt(plane_index).bindTexture();
},
.draw = [&] {
m_face_plane.draw_fill(); m_face_plane.draw_fill();
},
.unbind_layer_texture = [&] {
m_canvas->m_layers_merge.rtt(plane_index).unbindTexture(); m_canvas->m_layers_merge.rtt(plane_index).unbindTexture();
},
});
};
for (int plane_index = 0; plane_index < 6; plane_index++)
{
draw_merged_texture_plane(plane_index);
} }
} }
else else