Route remaining shader setup through helpers
This commit is contained in:
@@ -593,9 +593,10 @@ void CanvasModeGrid::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, cons
|
||||
auto const& l = m_lines[i];
|
||||
auto origin = l.o;
|
||||
auto dir = l.d;
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, m_highlight && i == m_selected_index ? blue : red);
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = m_highlight && i == m_selected_index ? blue : red,
|
||||
.mvp = proj * camera,
|
||||
});
|
||||
static glm::vec4 AB[2];
|
||||
AB[0] = {origin - dir * 10.f, 1};
|
||||
AB[1] = {origin + dir * 10.f, 1 };
|
||||
@@ -612,9 +613,10 @@ void CanvasModeGrid::init()
|
||||
void CanvasModeGrid::commit()
|
||||
{
|
||||
auto drawer = [this](const glm::mat4& camera, const glm::mat4& proj){
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, {1, 0, 0, 1});
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 1, 0, 0, 1 },
|
||||
.mvp = proj * camera,
|
||||
});
|
||||
static glm::vec4 AB[2];
|
||||
AB[0] = {origin - dir * 10.f, 1};
|
||||
AB[1] = {origin + dir * 10.f, 1 };
|
||||
@@ -742,10 +744,10 @@ void CanvasModeMaskFree::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
|
||||
auto drawer = [this](const glm::mat4& camera, const glm::mat4& proj) {
|
||||
// blending state intentionally left unchanged here.
|
||||
apply_canvas_mode_capability(pp::renderer::gl::depth_test_state(), false);
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col,
|
||||
App::I->keys[(int)kKey::KeyCtrl] ? glm::vec4(0, 0, 0, 1) : glm::vec4(1, 1, 1, 1));
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = App::I->keys[(int)kKey::KeyCtrl] ? glm::vec4(0, 0, 0, 1) : glm::vec4(1, 1, 1, 1),
|
||||
.mvp = proj * camera,
|
||||
});
|
||||
m_shape.draw_fill();
|
||||
};
|
||||
// use m_shape to render the mask polygon
|
||||
@@ -825,9 +827,10 @@ void CanvasModeMaskFree::on_Draw(const glm::mat4& ortho, const glm::mat4& proj,
|
||||
{
|
||||
if (m_dragging)
|
||||
{
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, glm::scale(glm::vec3(1,-1,1)) * ortho);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 });
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 0, 0, 0, 1 },
|
||||
.mvp = glm::scale(glm::vec3(1, -1, 1)) * ortho,
|
||||
});
|
||||
//m_dragging ? m_shape.draw_stroke() : m_shape.draw_fill();
|
||||
m_shape.draw_stroke();
|
||||
}
|
||||
@@ -877,9 +880,10 @@ void CanvasModeMaskLine::leave(kCanvasMode next)
|
||||
{
|
||||
auto drawer = [this](const glm::mat4& camera, const glm::mat4& proj) {
|
||||
// blending state intentionally left unchanged here.
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, {1, 1, 1, 1});
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 1, 1, 1, 1 },
|
||||
.mvp = proj * camera,
|
||||
});
|
||||
m_shape.draw_fill();
|
||||
};
|
||||
Canvas::I->draw_objects_direct(std::bind(drawer, std::placeholders::_1, std::placeholders::_2), Canvas::I->m_smask, 0);
|
||||
@@ -982,17 +986,19 @@ void CanvasModeMaskLine::on_Draw(const glm::mat4& ortho, const glm::mat4& proj,
|
||||
{
|
||||
if (m_active_tool)
|
||||
{
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, glm::scale(glm::vec3(1,-1,1)) * ortho);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 });
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 0, 0, 0, 1 },
|
||||
.mvp = glm::scale(glm::vec3(1, -1, 1)) * ortho,
|
||||
});
|
||||
//m_dragging ? m_shape.draw_stroke() : m_shape.draw_fill();
|
||||
m_shape.draw_stroke();
|
||||
}
|
||||
else
|
||||
{
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 });
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 0, 0, 0, 1 },
|
||||
.mvp = proj * camera,
|
||||
});
|
||||
m_shape.draw_stroke();
|
||||
}
|
||||
}
|
||||
@@ -1010,9 +1016,10 @@ void CanvasModeFill::leave(kCanvasMode next)
|
||||
if (m_points.size() > 2)
|
||||
{
|
||||
auto drawer = [this](const glm::mat4& camera, const glm::mat4& proj) {
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, {1, 1, 1, 1});
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 1, 1, 1, 1 },
|
||||
.mvp = proj * camera,
|
||||
});
|
||||
m_shape.draw_fill();
|
||||
};
|
||||
Canvas::I->draw_objects_direct(std::bind(drawer, std::placeholders::_1, std::placeholders::_2), Canvas::I->m_smask, 0);
|
||||
@@ -1102,9 +1109,10 @@ void CanvasModeFill::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, cons
|
||||
{
|
||||
if (!m_points.empty())
|
||||
{
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, .25 });
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 0, 0, 0, .25 },
|
||||
.mvp = proj * camera,
|
||||
});
|
||||
m_dragging ? m_shape.draw_fill() : m_shape.draw_stroke();
|
||||
}
|
||||
}
|
||||
@@ -1352,9 +1360,10 @@ void CanvasModeTransform::enter(kCanvasMode prev)
|
||||
apply_canvas_mode_capability(pp::renderer::gl::depth_test_state(), false);
|
||||
apply_canvas_mode_capability(pp::renderer::gl::blend_state(), false);
|
||||
set_canvas_mode_active_texture_unit(0);
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, mvp);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 0 });
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 0, 0, 0, 0 },
|
||||
.mvp = mvp,
|
||||
});
|
||||
layer->rtt(i).bindFramebuffer();
|
||||
// copy framebuffer to action data
|
||||
layer->rtt(i).readPixelsRgba8(
|
||||
@@ -1522,9 +1531,10 @@ void CanvasModeTransform::on_Draw(const glm::mat4& ortho, const glm::mat4& proj,
|
||||
apply_canvas_mode_capability(pp::renderer::gl::blend_state(), true);
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
ShaderManager::use(kShader::Color);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, proj * camera * m_xform * m_xform_local);
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 1, 1, .1 });
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 0, 1, 1, .1 },
|
||||
.mvp = proj * camera * m_xform * m_xform_local,
|
||||
});
|
||||
m_shape[i].draw_fill();
|
||||
|
||||
pp::panopainter::setup_legacy_canvas_draw_merge_texture_shader({
|
||||
@@ -1538,7 +1548,6 @@ void CanvasModeTransform::on_Draw(const glm::mat4& ortho, const glm::mat4& proj,
|
||||
m_tex[i].unbind();
|
||||
}
|
||||
|
||||
ShaderManager::use(kShader::Color);
|
||||
auto m2d = Canvas::I->m_proj * Canvas::I->m_mv * m_xform * m_xform_local;
|
||||
for (int i = 0; i < corners.size(); i++)
|
||||
{
|
||||
@@ -1548,15 +1557,17 @@ void CanvasModeTransform::on_Draw(const glm::mat4& ortho, const glm::mat4& proj,
|
||||
auto c3d = c / c.w;
|
||||
auto c2d = (xy(c3d) * 0.5f + 0.5f) * zw(Canvas::I->m_box);
|
||||
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP,
|
||||
ortho * glm::translate(glm::vec3(c2d, 0)) * glm::scale(glm::vec3(20.f) * App::I->zoom));
|
||||
|
||||
// draw inside
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 1, 1, 1, i == corner_hl ? 1.f : .1f });
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 1, 1, 1, i == corner_hl ? 1.f : .1f },
|
||||
.mvp = ortho * glm::translate(glm::vec3(c2d, 0)) * glm::scale(glm::vec3(20.f) * App::I->zoom),
|
||||
});
|
||||
m_circle.draw_fill();
|
||||
|
||||
// draw black border
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, { 0, 0, 0, 1 });
|
||||
pp::panopainter::setup_legacy_vr_color_shader({
|
||||
.color = { 0, 0, 0, 1 },
|
||||
.mvp = ortho * glm::translate(glm::vec3(c2d, 0)) * glm::scale(glm::vec3(20.f) * App::I->zoom),
|
||||
});
|
||||
m_circle.draw_stroke();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user