use mutex to avoid window destroy deadlock, fix vertical slider to increase value upward
This commit is contained in:
@@ -148,23 +148,23 @@ bool NodePanelStroke::import_abr(const std::string& path)
|
||||
void NodePanelStroke::update_controls()
|
||||
{
|
||||
const auto& b = Canvas::I->m_current_brush;
|
||||
m_tip_size->m_value.x = m_curves[m_tip_size].to_slider(b->m_tip_size);
|
||||
m_tip_spacing->m_value.x = m_curves[m_tip_spacing].to_slider(b->m_tip_spacing);
|
||||
m_tip_flow->m_value.x = m_curves[m_tip_flow].to_slider(b->m_tip_flow);
|
||||
m_tip_opacity->m_value.x = b->m_tip_opacity;
|
||||
m_tip_angle->m_value.x = b->m_tip_angle;
|
||||
m_tip_angle_smooth->m_value.x = b->m_tip_angle_smooth;
|
||||
m_tip_wet->m_value.x = b->m_tip_wet;
|
||||
m_tip_noise->m_value.x = b->m_tip_noise;
|
||||
m_jitter_scale->m_value.x = b->m_jitter_scale;
|
||||
m_jitter_angle->m_value.x = b->m_jitter_angle;
|
||||
m_jitter_scatter->m_value.x = m_curves[m_jitter_scatter].to_slider(b->m_jitter_scatter);;
|
||||
m_jitter_flow->m_value.x = b->m_jitter_flow;
|
||||
m_jitter_opacity->m_value.x = b->m_jitter_opacity;
|
||||
m_jitter_hue->m_value.x = b->m_jitter_hue;
|
||||
m_jitter_sat->m_value.x = b->m_jitter_sat;
|
||||
m_jitter_val->m_value.x = b->m_jitter_val;
|
||||
m_jitter_aspect->m_value.x = b->m_jitter_aspect;
|
||||
m_tip_size->m_value = m_curves[m_tip_size].to_slider(b->m_tip_size);
|
||||
m_tip_spacing->m_value = m_curves[m_tip_spacing].to_slider(b->m_tip_spacing);
|
||||
m_tip_flow->m_value = m_curves[m_tip_flow].to_slider(b->m_tip_flow);
|
||||
m_tip_opacity->m_value = b->m_tip_opacity;
|
||||
m_tip_angle->m_value = b->m_tip_angle;
|
||||
m_tip_angle_smooth->m_value = b->m_tip_angle_smooth;
|
||||
m_tip_wet->m_value = b->m_tip_wet;
|
||||
m_tip_noise->m_value = b->m_tip_noise;
|
||||
m_jitter_scale->m_value = b->m_jitter_scale;
|
||||
m_jitter_angle->m_value = b->m_jitter_angle;
|
||||
m_jitter_scatter->m_value = m_curves[m_jitter_scatter].to_slider(b->m_jitter_scatter);;
|
||||
m_jitter_flow->m_value = b->m_jitter_flow;
|
||||
m_jitter_opacity->m_value = b->m_jitter_opacity;
|
||||
m_jitter_hue->m_value = b->m_jitter_hue;
|
||||
m_jitter_sat->m_value = b->m_jitter_sat;
|
||||
m_jitter_val->m_value = b->m_jitter_val;
|
||||
m_jitter_aspect->m_value = b->m_jitter_aspect;
|
||||
m_tip_angle_follow->checked = b->m_tip_angle_follow;
|
||||
m_tip_angle_init->checked = b->m_tip_angle_init;
|
||||
m_tip_flow_pressure->checked = b->m_tip_flow_pressure;
|
||||
@@ -185,23 +185,23 @@ void NodePanelStroke::update_controls()
|
||||
m_tip_randflipx->checked = b->m_tip_randflipx;
|
||||
m_tip_randflipy->checked = b->m_tip_randflipy;
|
||||
|
||||
m_dual_size->m_value.x = m_curves[m_dual_size].to_slider(b->m_dual_size);
|
||||
m_dual_spacing->m_value.x = m_curves[m_dual_spacing].to_slider(b->m_dual_spacing);
|
||||
m_dual_flow->m_value.x = m_curves[m_dual_flow].to_slider(b->m_dual_flow);
|
||||
m_dual_scatter->m_value.x = m_curves[m_dual_scatter].to_slider(b->m_dual_scatter);
|
||||
m_tip_aspect->m_value.x = b->m_tip_aspect;
|
||||
m_dual_opacity->m_value.x = b->m_dual_opacity;
|
||||
m_dual_rotate->m_value.x = b->m_dual_rotate;
|
||||
m_dual_size->m_value = m_curves[m_dual_size].to_slider(b->m_dual_size);
|
||||
m_dual_spacing->m_value = m_curves[m_dual_spacing].to_slider(b->m_dual_spacing);
|
||||
m_dual_flow->m_value = m_curves[m_dual_flow].to_slider(b->m_dual_flow);
|
||||
m_dual_scatter->m_value = m_curves[m_dual_scatter].to_slider(b->m_dual_scatter);
|
||||
m_tip_aspect->m_value = b->m_tip_aspect;
|
||||
m_dual_opacity->m_value = b->m_dual_opacity;
|
||||
m_dual_rotate->m_value = b->m_dual_rotate;
|
||||
|
||||
m_pattern_eachsample->checked = b->m_pattern_eachsample;
|
||||
m_pattern_invert->checked = b->m_pattern_invert;
|
||||
m_pattern_flipx->checked = b->m_pattern_flipx;
|
||||
m_pattern_flipy->checked = b->m_pattern_flipy;
|
||||
m_pattern_rand_offset->checked = b->m_pattern_rand_offset;
|
||||
m_pattern_scale->m_value.x = m_curves[m_pattern_scale].to_slider(b->m_pattern_scale);
|
||||
m_pattern_brightness->m_value.x = b->m_pattern_brightness;
|
||||
m_pattern_contrast->m_value.x = b->m_pattern_contrast;
|
||||
m_pattern_depth->m_value.x = b->m_pattern_depth;
|
||||
m_pattern_scale->m_value = m_curves[m_pattern_scale].to_slider(b->m_pattern_scale);
|
||||
m_pattern_brightness->m_value = b->m_pattern_brightness;
|
||||
m_pattern_contrast->m_value = b->m_pattern_contrast;
|
||||
m_pattern_depth->m_value = b->m_pattern_depth;
|
||||
|
||||
m_blend_mode->set_index(b->m_blend_mode);
|
||||
m_dual_blend_mode->set_index(b->m_dual_blend_mode);
|
||||
@@ -634,7 +634,7 @@ void NodePanelStroke::init_slider(NodeSliderH*& target, const char* id, float Br
|
||||
target = find<NodeSliderH>(id);
|
||||
target->on_value_changed = std::bind(&NodePanelStroke::handle_slide,
|
||||
this, prop, std::placeholders::_1, std::placeholders::_2);
|
||||
//m_canvas->m_brush->*prop = target->m_value.x;
|
||||
//m_canvas->m_brush->*prop = target->m_values;
|
||||
}
|
||||
|
||||
void NodePanelStroke::handle_slide(float Brush::* prop, Node* target, float value)
|
||||
|
||||
Reference in New Issue
Block a user