diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2018-03-15 00:07:53 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2018-03-15 00:07:53 +0000 |
| commit | 630fc8e9839ac534ad445ddfda8f175365009439 (patch) | |
| tree | ec3a16bdccba10d6a1c6a0734aae94d3bb39e916 /src/drivers/Android/Fl_Android_Graphics_Driver.cxx | |
| parent | 1bb5eea696bfabdb3000b8430e539133af81fe67 (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.cxx | 10 |
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()); } } |
