Own main workers and narrow Apple render hooks
This commit is contained in:
@@ -365,24 +365,35 @@ void NodeCanvas::draw()
|
||||
bool draw_merged = !(m_canvas->m_current_mode == kCanvasMode::Camera);
|
||||
draw_merged = false;
|
||||
|
||||
const auto draw_background_plane = [&](int plane_index) {
|
||||
auto plane_mvp = proj * camera *
|
||||
glm::scale(glm::vec3(m_canvas->m_layers.size() + 500)) *
|
||||
m_canvas->m_plane_transform[plane_index] *
|
||||
glm::translate(glm::vec3(0, 0, -1));
|
||||
|
||||
pp::panopainter::setup_legacy_canvas_draw_merge_checkerboard_shader(
|
||||
pp::panopainter::LegacyCanvasDrawMergeCheckerboardUniforms {
|
||||
.mvp = plane_mvp,
|
||||
.colorize = false,
|
||||
});
|
||||
m_face_plane.draw_fill();
|
||||
};
|
||||
|
||||
if (draw_merged)
|
||||
{
|
||||
apply_node_canvas_capability(pp::renderer::gl::blend_state(), false);
|
||||
// draw the grid
|
||||
pp::panopainter::execute_legacy_canvas_draw_merge_background_setup(
|
||||
{
|
||||
.draw_merged = true,
|
||||
},
|
||||
{
|
||||
.disable_blend = [&] {
|
||||
apply_node_canvas_capability(pp::renderer::gl::blend_state(), false);
|
||||
},
|
||||
.draw_checkerboard_plane = draw_background_plane,
|
||||
});
|
||||
|
||||
for (int plane_index = 0; plane_index < 6; plane_index++)
|
||||
{
|
||||
auto plane_mvp = proj * camera *
|
||||
glm::scale(glm::vec3(m_canvas->m_layers.size() + 500)) *
|
||||
m_canvas->m_plane_transform[plane_index] *
|
||||
glm::translate(glm::vec3(0, 0, -1));
|
||||
|
||||
pp::panopainter::setup_legacy_canvas_draw_merge_checkerboard_shader(
|
||||
pp::panopainter::LegacyCanvasDrawMergeCheckerboardUniforms {
|
||||
.mvp = plane_mvp,
|
||||
.colorize = false,
|
||||
});
|
||||
m_face_plane.draw_fill();
|
||||
|
||||
int z = 1;
|
||||
auto plane_mvp_z = proj * camera *
|
||||
//glm::scale(glm::vec3(z + 1)) *
|
||||
@@ -421,24 +432,17 @@ void NodeCanvas::draw()
|
||||
m_cache_rtt.bindFramebuffer();
|
||||
m_cache_rtt.clear({ 1, 1, 1, 0 });
|
||||
}
|
||||
else
|
||||
{
|
||||
// draw the grid
|
||||
for (int plane_index = 0; plane_index < 6; plane_index++)
|
||||
{
|
||||
auto plane_mvp = proj * camera *
|
||||
glm::scale(glm::vec3(m_canvas->m_layers.size() + 500)) *
|
||||
m_canvas->m_plane_transform[plane_index] *
|
||||
glm::translate(glm::vec3(0, 0, -1));
|
||||
|
||||
pp::panopainter::setup_legacy_canvas_draw_merge_checkerboard_shader(
|
||||
pp::panopainter::LegacyCanvasDrawMergeCheckerboardUniforms {
|
||||
.mvp = plane_mvp,
|
||||
.colorize = false,
|
||||
});
|
||||
m_face_plane.draw_fill();
|
||||
}
|
||||
}
|
||||
pp::panopainter::execute_legacy_canvas_draw_merge_background_setup(
|
||||
{
|
||||
.use_blend = use_blend,
|
||||
},
|
||||
{
|
||||
.disable_blend = [&] {
|
||||
apply_node_canvas_capability(pp::renderer::gl::blend_state(), false);
|
||||
},
|
||||
.draw_checkerboard_plane = draw_background_plane,
|
||||
});
|
||||
|
||||
// if not using shader blend, use gl rasterizer blend
|
||||
use_blend ? apply_node_canvas_capability(pp::renderer::gl::blend_state(), false) : apply_node_canvas_capability(pp::renderer::gl::blend_state(), true);
|
||||
|
||||
Reference in New Issue
Block a user