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,
});
for (int plane_index = 0; plane_index < 6; plane_index++)
{
int z = 1;
auto plane_mvp_z = proj * camera *
//glm::scale(glm::vec3(z + 1)) *
//glm::eulerAngleYXZ(yaw, pitch, roll) *
m_canvas->m_plane_transform[plane_index] *
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,
const auto draw_merged_texture_plane = [&](int plane_index) {
pp::panopainter::execute_legacy_canvas_draw_merge_layer_texture(
{
.mvp = proj * camera *
m_canvas->m_plane_transform[plane_index] *
glm::translate(glm::vec3(0, 0, -1)),
.texture_slot = 0,
.alpha = 1.f,
.highlight = false,
},
{
.bind_sampler = [&] {
m_sampler.bind(0);
set_active_texture_unit(0);
},
.bind_layer_texture = [&] {
m_canvas->m_layers_merge.rtt(plane_index).bindTexture();
},
.draw = [&] {
m_face_plane.draw_fill();
},
.unbind_layer_texture = [&] {
m_canvas->m_layers_merge.rtt(plane_index).unbindTexture();
},
});
};
set_active_texture_unit(0);
m_canvas->m_layers_merge.rtt(plane_index).bindTexture();
m_face_plane.draw_fill();
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