quick switch Pen/Erase with E
This commit is contained in:
@@ -182,7 +182,12 @@
|
||||
</node>
|
||||
</node>
|
||||
<node height="20" pad="1" width="100%"><slider-h id="tip-mix"/></node>
|
||||
<node height="20" pad="1" width="100%"><slider-h id="tip-stencil"/></node>
|
||||
<node height="20" pad="1" width="100%" dir="row">
|
||||
<slider-h id="tip-stencil" width="1" grow="1"/>
|
||||
<node width="20" pad="0" margin="0 0 0 2">
|
||||
<button text="..." height="20"></button>
|
||||
</node>
|
||||
</node>
|
||||
<node height="20" pad="1" width="100%"><slider-h id="tip-wet"/></node>
|
||||
<node height="20" pad="1" width="100%"><slider-h id="tip-noise"/></node>
|
||||
</border>
|
||||
|
||||
@@ -335,6 +335,10 @@ void App::update(float dt)
|
||||
CanvasModePen* mode = (CanvasModePen*)canvas->m_canvas->modes[(int)Canvas::kCanvasMode::Draw][0];
|
||||
layout[main_id]->find<NodeButton>("btn-pick")->set_color(
|
||||
mode->m_picking ? color_button_hlight : color_button_normal);
|
||||
layout[main_id]->find<NodeButton>("btn-pen")->set_color(
|
||||
canvas->m_canvas->m_current_mode == Canvas::kCanvasMode::Draw ? color_button_hlight : color_button_normal);
|
||||
layout[main_id]->find<NodeButton>("btn-erase")->set_color(
|
||||
canvas->m_canvas->m_current_mode == Canvas::kCanvasMode::Erase ? color_button_hlight : color_button_normal);
|
||||
layout[main_id]->find<NodeButton>("btn-touchlock")->set_color(
|
||||
canvas->m_canvas->m_touch_lock ? color_button_hlight : color_button_normal);
|
||||
|
||||
|
||||
@@ -522,7 +522,7 @@ void ui::Canvas::stroke_commit()
|
||||
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_current_stroke->m_brush.m_tip_opacity);
|
||||
ShaderManager::u_mat4(kShaderUniform::MVP, glm::ortho(-.5f, .5f, -.5f, .5f, -1.f, 1.f));
|
||||
|
||||
|
||||
@@ -90,6 +90,7 @@ public:
|
||||
glm::vec2 m_cam_rot{ 0 };
|
||||
glm::vec3 m_cam_pos{ 0 };
|
||||
float m_cam_fov = 85;
|
||||
glm::vec2 m_cur_pos;
|
||||
|
||||
Brush m_current_brush;
|
||||
|
||||
|
||||
@@ -194,6 +194,7 @@ void CanvasModePen::leave()
|
||||
|
||||
void CanvasModePen::enter()
|
||||
{
|
||||
m_cur_pos = ui::Canvas::I->m_cur_pos;
|
||||
if (m_valid_brush)
|
||||
{
|
||||
canvas->m_current_brush = m_brush;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user