You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Merge pull request #102240 from KoBeWi/RAWR
Fix ColorPicker sliders in overbright RGB
This commit is contained in:
@@ -43,12 +43,6 @@ String ColorModeRGB::get_slider_label(int idx) const {
|
||||
return labels[idx];
|
||||
}
|
||||
|
||||
float ColorModeRGB::get_slider_max(int idx) const {
|
||||
ERR_FAIL_INDEX_V_MSG(idx, 4, 0, "Couldn't get slider max value.");
|
||||
Color color = color_picker->get_pick_color();
|
||||
return next_power_of_2(MAX(255, color.components[idx] * 255.0)) - 1;
|
||||
}
|
||||
|
||||
float ColorModeRGB::get_slider_value(int idx) const {
|
||||
ERR_FAIL_INDEX_V_MSG(idx, 4, 0, "Couldn't get slider value.");
|
||||
return color_picker->get_pick_color().components[idx] * 255;
|
||||
|
||||
@@ -45,6 +45,7 @@ public:
|
||||
virtual float get_spinbox_arrow_step() const { return get_slider_step(); }
|
||||
virtual String get_slider_label(int idx) const = 0;
|
||||
virtual float get_slider_max(int idx) const = 0;
|
||||
virtual bool get_allow_greater() const { return false; }
|
||||
virtual float get_slider_value(int idx) const = 0;
|
||||
|
||||
virtual Color get_color() const = 0;
|
||||
@@ -90,7 +91,8 @@ public:
|
||||
|
||||
virtual float get_slider_step() const override { return 1; }
|
||||
virtual String get_slider_label(int idx) const override;
|
||||
virtual float get_slider_max(int idx) const override;
|
||||
virtual float get_slider_max(int idx) const override { return 255; }
|
||||
virtual bool get_allow_greater() const override { return true; }
|
||||
virtual float get_slider_value(int idx) const override;
|
||||
|
||||
virtual Color get_color() const override;
|
||||
@@ -112,6 +114,7 @@ public:
|
||||
virtual float get_spinbox_arrow_step() const override { return 0.01; }
|
||||
virtual String get_slider_label(int idx) const override;
|
||||
virtual float get_slider_max(int idx) const override;
|
||||
virtual bool get_allow_greater() const override { return true; }
|
||||
virtual float get_slider_value(int idx) const override;
|
||||
|
||||
virtual Color get_color() const override;
|
||||
|
||||
@@ -718,8 +718,9 @@ void ColorPicker::_update_color(bool p_update_sliders) {
|
||||
for (int i = 0; i < current_slider_count; i++) {
|
||||
sliders[i]->set_max(modes[current_mode]->get_slider_max(i));
|
||||
sliders[i]->set_step(step);
|
||||
values[i]->set_custom_arrow_step(spinbox_arrow_step);
|
||||
sliders[i]->set_value(modes[current_mode]->get_slider_value(i));
|
||||
values[i]->set_custom_arrow_step(spinbox_arrow_step);
|
||||
values[i]->set_allow_greater(modes[current_mode]->get_allow_greater());
|
||||
}
|
||||
alpha_slider->set_max(modes[current_mode]->get_slider_max(current_slider_count));
|
||||
alpha_slider->set_step(step);
|
||||
|
||||
Reference in New Issue
Block a user