quick switch Pen/Erase with E

This commit is contained in:
2018-07-27 12:23:28 +02:00
parent b06453bd7b
commit 9b5094f510
6 changed files with 21 additions and 9 deletions

View File

@@ -123,10 +123,10 @@ void NodeCanvas::draw()
ui::ShaderManager::use(kShader::CompErase);
ui::ShaderManager::u_int(kShaderUniform::Tex, 0);
ui::ShaderManager::u_int(kShaderUniform::TexStroke, 1);
ui::ShaderManager::u_int(kShaderUniform::TexMask, 2);
//ui::ShaderManager::u_int(kShaderUniform::TexMask, 2);
ui::ShaderManager::u_float(kShaderUniform::Alpha, m_canvas->m_current_stroke->m_brush.m_tip_opacity);
ui::ShaderManager::u_int(kShaderUniform::Lock, m_canvas->m_layers[layer_index].m_alpha_locked);
ui::ShaderManager::u_int(kShaderUniform::Mask, m_canvas->m_smask_active);
//ui::ShaderManager::u_int(kShaderUniform::Lock, m_canvas->m_layers[layer_index].m_alpha_locked);
//ui::ShaderManager::u_int(kShaderUniform::Mask, m_canvas->m_smask_active);
ui::ShaderManager::u_mat4(kShaderUniform::MVP, plane_mvp_z);
glActiveTexture(GL_TEXTURE0);
m_canvas->m_layers[layer_index].m_rtt[plane_index].bindTexture();
@@ -288,13 +288,14 @@ kEventResult NodeCanvas::handle_event(Event* e)
case kEventType::MouseUpR:
case kEventType::MouseMove:
case kEventType::MouseCancel:
m_canvas->m_cur_pos = loc;
if (!(m_canvas->m_touch_lock && me->m_source == kEventSource::Touch))
for (auto& mode : *m_canvas->m_mode)
mode->on_MouseEvent(me, loc);
break;
case kEventType::KeyDown:
// if (ke->m_key == kKey::KeyE)
// m_canvas->m_state = ui::Canvas::kPenState::Erase;
if (ke->m_key == kKey::KeyE)
ui::Canvas::set_mode(ui::Canvas::kCanvasMode::Erase);
// if (ke->m_key == kKey::KeySpacebar)
// m_canvas->m_alpha_lock = true;
// if (ke->m_key == kKey::AndroidVolumeUp)
@@ -307,8 +308,8 @@ kEventResult NodeCanvas::handle_event(Event* e)
break;
case kEventType::KeyUp:
// if (ke->m_key == kKey::KeyE)
// m_canvas->m_state = ui::Canvas::kPenState::Draw;
if (ke->m_key == kKey::KeyE)
ui::Canvas::set_mode(ui::Canvas::kCanvasMode::Draw);
// if (ke->m_key == kKey::KeySpacebar)
// m_canvas->m_alpha_lock = false;
break;