From f3aec1a0d97fcc930ceea2aefc2fb857c686cf8b Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 4 May 2019 23:40:52 +0200 Subject: [PATCH] Painter: Re-enable diagonal draw_line(). This code still needs clipping, but the basic concept works. It was disabled since before the kernel had floating point support. --- LibM/math.cpp | 5 +++++ Makefile.common | 2 +- SharedGraphics/Painter.cpp | 4 +--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/LibM/math.cpp b/LibM/math.cpp index d707c51c86..3637da62ab 100644 --- a/LibM/math.cpp +++ b/LibM/math.cpp @@ -91,4 +91,9 @@ double acos(double) ASSERT_NOT_REACHED(); } +double fabs(double value) +{ + return value < 0 ? -value : value; +} + } diff --git a/Makefile.common b/Makefile.common index 88d6441abb..f22f1c1e38 100644 --- a/Makefile.common +++ b/Makefile.common @@ -7,7 +7,7 @@ OPTIMIZATION_FLAGS = -Os MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) SERENITY_BASE_DIR := $(patsubst %/,%,$(dir $(MAKEFILE_PATH))) -INCLUDE_FLAGS = -I$(SERENITY_BASE_DIR) -I. -I$(SERENITY_BASE_DIR)/LibC -I$(SERENITY_BASE_DIR)/Servers +INCLUDE_FLAGS = -I$(SERENITY_BASE_DIR) -I. -I$(SERENITY_BASE_DIR)/LibC -I$(SERENITY_BASE_DIR)/Servers -I$(SERENITY_BASE_DIR)/LibM LDFLAGS = -L$(SERENITY_BASE_DIR)/LibC -L$(SERENITY_BASE_DIR)/LibCore -L$(SERENITY_BASE_DIR)/LibM -L$(SERENITY_BASE_DIR)/LibGUI CLANG_FLAGS = -Wconsumed -m32 -ffreestanding -march=i686 #SUGGEST_FLAGS = -Wsuggest-final-types -Wsuggest-final-methods -Wsuggest-override #-Wsuggest-attribute=noreturn diff --git a/SharedGraphics/Painter.cpp b/SharedGraphics/Painter.cpp index 5463b63033..356a6585a4 100644 --- a/SharedGraphics/Painter.cpp +++ b/SharedGraphics/Painter.cpp @@ -7,6 +7,7 @@ #include #include #include +#include Painter::Painter(GraphicsBitmap& bitmap) : m_target(bitmap) @@ -511,9 +512,7 @@ void Painter::draw_line(const Point& p1, const Point& p2, Color color) } // FIXME: Implement clipping below. - ASSERT_NOT_REACHED(); -#if 0 const double dx = point2.x() - point1.x(); const double dy = point2.y() - point1.y(); const double delta_error = fabs(dy / dx); @@ -529,7 +528,6 @@ void Painter::draw_line(const Point& p1, const Point& p2, Color color) error -= 1.0; } } -#endif } void Painter::draw_focus_rect(const Rect& rect)