summaryrefslogtreecommitdiff
path: root/src/misc
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2024-06-22 04:25:56 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2024-06-22 04:25:56 -0400
commite65174f5aab55fe3917dd52f97b1b00a07d30d38 (patch)
treefed590caf0440fd47b72a51e21e692fe703860bd /src/misc
parent3dc8fa8e65bdd1bd45dfa0171a06dfbb448baf0d (diff)
parent7af15b326df5a638b24c5e637d5f37396276f906 (diff)
downloadabaddon-portaudio-e65174f5aab55fe3917dd52f97b1b00a07d30d38.tar.gz
abaddon-portaudio-e65174f5aab55fe3917dd52f97b1b00a07d30d38.zip
Merge branch 'master' into stages
Diffstat (limited to 'src/misc')
-rw-r--r--src/misc/cairo.cpp15
-rw-r--r--src/misc/cairo.hpp7
2 files changed, 22 insertions, 0 deletions
diff --git a/src/misc/cairo.cpp b/src/misc/cairo.cpp
new file mode 100644
index 0000000..a1c6220
--- /dev/null
+++ b/src/misc/cairo.cpp
@@ -0,0 +1,15 @@
+#include "cairo.hpp"
+
+constexpr static double M_PI_H = M_PI / 2.0;
+constexpr static double M_PI_3_2 = M_PI * 3.0 / 2.0;
+
+void CairoUtil::PathRoundedRect(const Cairo::RefPtr<Cairo::Context> &cr, double x, double y, double w, double h, double r) {
+ const double degrees = M_PI / 180.0;
+
+ cr->begin_new_sub_path();
+ cr->arc(x + w - r, y + r, r, -M_PI_H, 0);
+ cr->arc(x + w - r, y + h - r, r, 0, M_PI_H);
+ cr->arc(x + r, y + h - r, r, M_PI_H, M_PI);
+ cr->arc(x + r, y + r, r, M_PI, M_PI_3_2);
+ cr->close_path();
+} \ No newline at end of file
diff --git a/src/misc/cairo.hpp b/src/misc/cairo.hpp
new file mode 100644
index 0000000..37c71d6
--- /dev/null
+++ b/src/misc/cairo.hpp
@@ -0,0 +1,7 @@
+#pragma once
+
+#include <cairomm/context.h>
+
+namespace CairoUtil {
+void PathRoundedRect(const Cairo::RefPtr<Cairo::Context> &cr, double x, double y, double w, double h, double r);
+} // namespace CairoUtil