summaryrefslogtreecommitdiff
path: root/src/drivers/Android/Fl_Android_Graphics_Driver.cxx
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2018-03-15 00:07:53 +0000
committerMatthias Melcher <fltk@matthiasm.com>2018-03-15 00:07:53 +0000
commit630fc8e9839ac534ad445ddfda8f175365009439 (patch)
treeec3a16bdccba10d6a1c6a0734aae94d3bb39e916 /src/drivers/Android/Fl_Android_Graphics_Driver.cxx
parent1bb5eea696bfabdb3000b8430e539133af81fe67 (diff)
Android: implemented good complex clipping, but unoptimized.
fl_rectf is so far the only function that uses the complex clipping region successfully. Code is slow, but works. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12747 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/Android/Fl_Android_Graphics_Driver.cxx')
-rw-r--r--src/drivers/Android/Fl_Android_Graphics_Driver.cxx10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/drivers/Android/Fl_Android_Graphics_Driver.cxx b/src/drivers/Android/Fl_Android_Graphics_Driver.cxx
index 4e3be5d14..554d72e84 100644
--- a/src/drivers/Android/Fl_Android_Graphics_Driver.cxx
+++ b/src/drivers/Android/Fl_Android_Graphics_Driver.cxx
@@ -72,7 +72,9 @@ void Fl_Android_Graphics_Driver::make_current(Fl_Window *win)
pDesktopWindowRegion.subtract(r);
wTop = Fl::next_window(wTop);
}
+ pDesktopWindowRegion.print(" #### DESKTOP");
pClippingRegion.set(pDesktopWindowRegion);
+ pClippingRegion.print("#### CLIPPING");
}
@@ -97,13 +99,17 @@ void Fl_Android_Graphics_Driver::rectf_unscaled(float x, float y, float w, float
{
// FIXME: r must be a complex region, like pClippingRegion.
-#if 0
Fl_Rect_Region r(x, y, w, h);
+#if 0
if (r.intersect_with(pClippingRegion)) {
rectf_unclipped(r.x(), r.y(), r.w(), r.h());
}
#else // proof of concept
// FIXME: write iterator over tree
+
+ r.print("---- fl_rectf");
+ pClippingRegion.print("clip to");
+
for (Fl_Complex_Region *cr = &pClippingRegion; cr; cr=cr->next()) {
if (cr->subregion()) {
for (Fl_Complex_Region *cr1 = cr->subregion(); cr1; cr1=cr1->next()) {
@@ -124,8 +130,6 @@ void Fl_Android_Graphics_Driver::rectf_unscaled(float x, float y, float w, float
} else {
Fl_Rect_Region r(x, y, w, h);
if (r.intersect_with(*cr)) {
- r.print("---- fl_rectf");
- pClippingRegion.print("clip to");
rectf_unclipped(r.x(), r.y(), r.w(), r.h());
}
}