selection outline animated

This commit is contained in:
2019-05-17 11:21:50 +02:00
parent c4e166fc32
commit 46ba835f7a
3 changed files with 18 additions and 7 deletions

View File

@@ -441,15 +441,20 @@ void NodeCanvas::draw()
}
glDisable(GL_DEPTH_TEST);
if (m_canvas->m_smask_active || m_canvas->m_current_mode == kCanvasMode::Copy || m_canvas->m_current_mode == kCanvasMode::Cut)
{
// if (m_canvas->m_smask_mode == 1)
// m_canvas->modes[(int)kCanvasMode::MaskFree][0]->on_Draw(ortho_proj, proj, camera);
// else if (m_canvas->m_smask_mode == 2)
// m_canvas->modes[(int)kCanvasMode::MaskLine][0]->on_Draw(ortho_proj, proj, camera);
if (m_canvas->m_smask_mode == 1)
m_canvas->modes[(int)kCanvasMode::MaskFree][0]->on_Draw(ortho_proj, proj, camera);
else if (m_canvas->m_smask_mode == 2)
m_canvas->modes[(int)kCanvasMode::MaskLine][0]->on_Draw(ortho_proj, proj, camera);
}
if (m_canvas->m_smask_active)
{
ShaderManager::use(kShader::TextureMask);
ShaderManager::u_int(kShaderUniform::Tex, 0);
ShaderManager::u_vec2(kShaderUniform::PatternOffset, m_outline_pan);
glActiveTexture(GL_TEXTURE0);
glEnable(GL_BLEND);
@@ -644,6 +649,11 @@ void NodeCanvas::reset_camera()
m_canvas->m_pan = {0, 0};
}
void NodeCanvas::on_tick(float dt)
{
m_outline_pan = glm::fract(m_outline_pan + dt * 0.01f);
}
void NodeCanvas::destroy_immediate()
{
Node::destroy_immediate();

View File

@@ -16,6 +16,7 @@ public:
Plane m_face_plane;
LineSegment m_line;
Plane m_grid;
glm::vec2 m_outline_pan;
int m_grid_divs = 30;
virtual Node* clone_instantiate() const override;
virtual void init() override;
@@ -25,5 +26,6 @@ public:
virtual void handle_resize(glm::vec2 old_size, glm::vec2 new_size) override;
virtual kEventResult handle_event(Event* e) override;
virtual void destroy_immediate() override;
virtual void on_tick(float dt) override;
void reset_camera();
};