diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-05-29 10:28:58 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-05-29 10:28:58 +0200 |
commit | c97201babcb76e6fb0e7558074dfe7808982eb00 (patch) | |
tree | 49e874ca3765a38ce51d9ceb08ebee4879082125 /editor/plugins/gradient_editor.cpp | |
parent | 990943782a80e47b4a46587c298a338e9a2c119c (diff) | |
parent | c07b2fcf4dd9bc60f6d7ead81b8de8ee19178729 (diff) | |
download | redot-engine-c97201babcb76e6fb0e7558074dfe7808982eb00.tar.gz |
Merge pull request #76545 from JoNax97/gradient_color_spaces
Add Linear SRGB and OKLab color spaces to Gradient.
Diffstat (limited to 'editor/plugins/gradient_editor.cpp')
-rw-r--r-- | editor/plugins/gradient_editor.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/editor/plugins/gradient_editor.cpp b/editor/plugins/gradient_editor.cpp index 2eb17b3f13..000db06d48 100644 --- a/editor/plugins/gradient_editor.cpp +++ b/editor/plugins/gradient_editor.cpp @@ -41,6 +41,7 @@ void GradientEditor::set_gradient(const Ref<Gradient> &p_gradient) { gradient->connect("changed", callable_mp(this, &GradientEditor::_gradient_changed)); set_points(gradient->get_points()); set_interpolation_mode(gradient->get_interpolation_mode()); + set_interpolation_color_space(gradient->get_interpolation_color_space()); } void GradientEditor::reverse_gradient() { @@ -93,6 +94,7 @@ void GradientEditor::_gradient_changed() { Vector<Gradient::Point> grad_points = gradient->get_points(); set_points(grad_points); set_interpolation_mode(gradient->get_interpolation_mode()); + set_interpolation_color_space(gradient->get_interpolation_color_space()); queue_redraw(); editing = false; } @@ -104,9 +106,11 @@ void GradientEditor::_ramp_changed() { undo_redo->add_do_method(gradient.ptr(), "set_offsets", get_offsets()); undo_redo->add_do_method(gradient.ptr(), "set_colors", get_colors()); undo_redo->add_do_method(gradient.ptr(), "set_interpolation_mode", get_interpolation_mode()); + undo_redo->add_do_method(gradient.ptr(), "set_interpolation_color_space", get_interpolation_color_space()); undo_redo->add_undo_method(gradient.ptr(), "set_offsets", gradient->get_offsets()); undo_redo->add_undo_method(gradient.ptr(), "set_colors", gradient->get_colors()); undo_redo->add_undo_method(gradient.ptr(), "set_interpolation_mode", gradient->get_interpolation_mode()); + undo_redo->add_undo_method(gradient.ptr(), "set_interpolation_color_space", gradient->get_interpolation_color_space()); undo_redo->commit_action(); editing = false; } @@ -171,6 +175,14 @@ Gradient::InterpolationMode GradientEditor::get_interpolation_mode() { return interpolation_mode; } +void GradientEditor::set_interpolation_color_space(Gradient::ColorSpace p_color_space) { + interpolation_color_space = p_color_space; +} + +Gradient::ColorSpace GradientEditor::get_interpolation_color_space() { + return interpolation_color_space; +} + ColorPicker *GradientEditor::get_picker() { return picker; } @@ -385,6 +397,7 @@ void GradientEditor::_notification(int p_what) { // Draw color ramp. gradient_cache->set_points(points); gradient_cache->set_interpolation_mode(interpolation_mode); + gradient_cache->set_interpolation_color_space(interpolation_color_space); preview_texture->set_gradient(gradient_cache); draw_texture_rect(preview_texture, Rect2(handle_width / 2, 0, total_w, h)); |