fix all six planes for rendering and drawing
This commit is contained in:
@@ -1867,6 +1867,7 @@ public:
|
||||
std::unique_ptr<ui::Canvas> m_canvas;
|
||||
ui::Brush m_brush;
|
||||
Sampler m_sampler;
|
||||
ui::Plane m_face_plane;
|
||||
virtual Node* clone_instantiate() const override { return new NodeCanvas(); }
|
||||
virtual void init() override
|
||||
{
|
||||
@@ -1876,6 +1877,7 @@ public:
|
||||
m_canvas->layer_add("asd");
|
||||
m_canvas->clear();
|
||||
m_sampler.create();
|
||||
m_face_plane.create<1>(1.99, 1.99);
|
||||
}
|
||||
virtual void draw() override
|
||||
{
|
||||
@@ -1892,8 +1894,6 @@ public:
|
||||
glm::ivec4 c = (glm::ivec4)glm::vec4(box.x, (int)(vp[3] - box.y - box.w), box.z, box.w);
|
||||
glViewport(c.x, c.y, c.z, c.w);
|
||||
|
||||
glm::vec2 sz = { m_canvas->m_width, m_canvas->m_height };
|
||||
|
||||
m_canvas->m_cam_rot = m_pan * 0.001f;
|
||||
|
||||
//glm::mat4 proj = glm::ortho(0.f, box.z, 0.f, box.w, -1000.f, 1000.f);
|
||||
@@ -1920,23 +1920,24 @@ public:
|
||||
glEnable(GL_BLEND);
|
||||
for (auto layer_index : m_canvas->m_order)
|
||||
{
|
||||
for (int plane_index = 0; plane_index < 4; plane_index++)
|
||||
for (int plane_index = 0; plane_index < 6; plane_index++)
|
||||
{
|
||||
auto plane_mvp = proj * camera * glm::eulerAngleY(glm::radians(90.f * plane_index)) * glm::translate(glm::vec3(0, 0, -1));
|
||||
auto plane_mvp = proj * camera * m_canvas->m_plane_transform[plane_index] * glm::translate(glm::vec3(0, 0, -1));
|
||||
ui::ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp);
|
||||
if (!(m_canvas->m_erase && m_canvas->m_show_tmp && m_canvas->m_current_layer_idx == layer_index))
|
||||
{
|
||||
ui::ShaderManager::u_float(kShaderUniform::Alpha, m_canvas->m_layers[layer_index].m_opacity);
|
||||
m_canvas->m_layers[layer_index].m_rtt[plane_index].bindTexture();
|
||||
NodeBorder::m_plane.draw_fill();
|
||||
m_face_plane.draw_fill();
|
||||
m_canvas->m_layers[layer_index].m_rtt[plane_index].unbindTexture();
|
||||
}
|
||||
if (m_canvas->m_show_tmp && m_canvas->m_current_layer_idx == layer_index)
|
||||
{
|
||||
glEnable(GL_BLEND);
|
||||
ui::ShaderManager::u_float(kShaderUniform::Alpha, m_canvas->m_current_stroke->m_brush.m_tip_opacity);
|
||||
ui::ShaderManager::u_float(kShaderUniform::Alpha,
|
||||
m_canvas->m_current_stroke->m_brush.m_tip_opacity * m_canvas->m_layers[layer_index].m_opacity);
|
||||
m_canvas->m_tmp[plane_index].bindTexture();
|
||||
NodeBorder::m_plane.draw_fill();
|
||||
m_face_plane.draw_fill();
|
||||
m_canvas->m_tmp[plane_index].unbindTexture();
|
||||
}
|
||||
}
|
||||
@@ -1951,8 +1952,8 @@ public:
|
||||
{
|
||||
if (new_size.x > m_canvas->m_width)
|
||||
{
|
||||
m_canvas->resize((int)new_size.x, (int)new_size.y);
|
||||
m_canvas->clear();
|
||||
// m_canvas->resize((int)new_size.x, (int)new_size.y);
|
||||
// m_canvas->clear();
|
||||
}
|
||||
}
|
||||
virtual kEventResult handle_event(Event* e) override
|
||||
|
||||
Reference in New Issue
Block a user