Improved mask also work on erase. Improved shaders for layer opacity, now when drawing doesn't change opacity. Improved layers panel layout to be similar to PS. Added layer blending option and visibility. Added custom icons to checkboxes and fixed the combobox items.
This commit is contained in:
@@ -4,12 +4,12 @@
|
||||
#include "node_checkbox.h"
|
||||
#include "node_slider.h"
|
||||
#include "node_button_custom.h"
|
||||
#include "node_combobox.h"
|
||||
|
||||
class NodeLayer : public NodeBorder
|
||||
{
|
||||
public:
|
||||
std::function<void(NodeLayer* target)> on_selected;
|
||||
std::function<void(NodeLayer* target, float opacity)> on_opacity_changed;
|
||||
std::function<void(NodeLayer* target, bool visible)> on_visibility_changed;
|
||||
std::function<void(NodeLayer* target, bool highlight)> on_highlight;
|
||||
bool m_selected = false;
|
||||
@@ -19,7 +19,6 @@ public:
|
||||
std::string m_label_text;
|
||||
NodeText* m_label;
|
||||
NodeCheckBox* m_visibility;
|
||||
NodeSliderH* m_opacity;
|
||||
virtual Node* clone_instantiate() const override;
|
||||
virtual void clone_children(Node* dest) const override;
|
||||
virtual void clone_copy(Node* dest) const override;
|
||||
@@ -42,13 +41,18 @@ public:
|
||||
std::function<void(Node* target, int old_idx, int new_idx)> on_layer_change;
|
||||
std::function<void(Node* target, int idx, float value)> on_layer_opacity_changed;
|
||||
std::function<void(Node* target, int idx, bool visible)> on_layer_visibility_changed;
|
||||
std::function<void(Node* target, int idx, bool locked)> on_layer_alpha_lock_changed;
|
||||
std::function<void(Node* target, int idx, bool highlight)> on_layer_highlight_changed;
|
||||
std::function<void(Node* target, int idx, int mode)> on_layer_blend_mode_changed;
|
||||
std::function<void(Node* target, int index)> on_layer_delete;
|
||||
std::function<void(Node* target)> on_layer_add;
|
||||
std::function<void(Node* target, int old_idx, int new_idx)> on_layer_order;
|
||||
NodeLayer* m_current_layer = nullptr;
|
||||
std::vector<NodeLayer*> m_layers;
|
||||
NodeBorder* m_layers_container;
|
||||
NodeSliderH* m_opacity;
|
||||
NodeCheckBox* m_alpha_lock;
|
||||
NodeComboBox* m_blend_mode;
|
||||
virtual Node* clone_instantiate() const override;
|
||||
virtual void init() override;
|
||||
void add_layer();
|
||||
@@ -57,7 +61,10 @@ public:
|
||||
void remove_layer(NodeLayer* layer);
|
||||
void handle_layer_opacity(NodeLayer* target, float value);
|
||||
void handle_layer_visibility(NodeLayer* target, bool visible);
|
||||
void handle_layer_alpha_lock(NodeLayer* target, bool locked);
|
||||
void handle_layer_highlight(NodeLayer* target, bool highlight);
|
||||
void handle_layer_blend_mode(NodeLayer* target, int mode);
|
||||
void handle_layer_selected(NodeLayer* target);
|
||||
void clear();
|
||||
void update_attributes();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user