Eyes: Correctly calculate the eye bounds for arbitrary number of eyes

This commit is contained in:
AnotherTest 2020-05-25 21:11:04 +04:30 committed by Andreas Kling
commit 46dacbfb3e
Notes: sideshowbarker 2024-07-19 06:09:19 +09:00

View file

@ -65,11 +65,12 @@ void EyesWidget::render_eyeball(int index, GUI::Painter& painter) const
{ {
auto eye_width = width() / m_num_eyes; auto eye_width = width() / m_num_eyes;
Gfx::Rect bounds { index * eye_width, 0, eye_width, height() }; Gfx::Rect bounds { index * eye_width, 0, eye_width, height() };
auto thickness = max((width() + height()) / 15, 1); auto width_thickness = max(int(eye_width / 5.5), 1);
auto height_thickness = max(int(height() / 5.5), 1);
bounds.shrink(width() / 25, 0); bounds.shrink(int(eye_width / 12.5), 0);
painter.fill_ellipse(bounds, palette().base_text()); painter.fill_ellipse(bounds, palette().base_text());
bounds.shrink(thickness, thickness); bounds.shrink(width_thickness, height_thickness);
painter.fill_ellipse(bounds, palette().base()); painter.fill_ellipse(bounds, palette().base());
Gfx::Point pupil_center = this->pupil_center(bounds); Gfx::Point pupil_center = this->pupil_center(bounds);