1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 20:47:45 +00:00

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
parent 07af2e6b2c
commit 46dacbfb3e

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);