Extract merged texture pass through helper
This commit is contained in:
@@ -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;
|
{
|
||||||
auto plane_mvp_z = proj * camera *
|
.mvp = proj * camera *
|
||||||
//glm::scale(glm::vec3(z + 1)) *
|
m_canvas->m_plane_transform[plane_index] *
|
||||||
//glm::eulerAngleYXZ(yaw, pitch, roll) *
|
glm::translate(glm::vec3(0, 0, -1)),
|
||||||
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,
|
|
||||||
.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);
|
||||||
|
},
|
||||||
|
.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);
|
for (int plane_index = 0; plane_index < 6; plane_index++)
|
||||||
m_canvas->m_layers_merge.rtt(plane_index).bindTexture();
|
{
|
||||||
m_face_plane.draw_fill();
|
draw_merged_texture_plane(plane_index);
|
||||||
m_canvas->m_layers_merge.rtt(plane_index).unbindTexture();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user