diff options
author | inmarket <inmarket@ugfx.io> | 2017-06-24 10:08:59 +1000 |
---|---|---|
committer | inmarket <inmarket@ugfx.io> | 2017-06-24 10:08:59 +1000 |
commit | 5c848859956d62098aa88fdb524faf8bf17fc386 (patch) | |
tree | 871571f0ab80f0d50deea791e6fbfdfb6b180e44 /src/gdisp | |
parent | e6721f70a060be092934585d5ba31f201dd47706 (diff) | |
download | uGFX-5c848859956d62098aa88fdb524faf8bf17fc386.tar.gz uGFX-5c848859956d62098aa88fdb524faf8bf17fc386.tar.bz2 uGFX-5c848859956d62098aa88fdb524faf8bf17fc386.zip |
Improve handling of streaming drivers with a setpos and a fillarea acceleration
Diffstat (limited to 'src/gdisp')
-rw-r--r-- | src/gdisp/gdisp.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gdisp/gdisp.c b/src/gdisp/gdisp.c index 5674f29b..1941bd88 100644 --- a/src/gdisp/gdisp.c +++ b/src/gdisp/gdisp.c @@ -179,6 +179,12 @@ static GFXINLINE void fillarea(GDisplay *g) { if (gvmt(g)->fill) #endif { + #if GDISP_HARDWARE_STREAM_POS && GDISP_HARDWARE_STREAM_WRITE + if ((g->flags & GDISP_FLG_SCRSTREAM)) { + gdisp_lld_write_stop(g); + g->flags &= ~GDISP_FLG_SCRSTREAM; + } + #endif gdisp_lld_fill_area(g); return; } @@ -363,6 +369,12 @@ static void vline_clip(GDisplay *g) { if (gvmt(g)->fill) #endif { + #if GDISP_HARDWARE_STREAM_POS && GDISP_HARDWARE_STREAM_WRITE + if ((g->flags & GDISP_FLG_SCRSTREAM)) { + gdisp_lld_write_stop(g); + g->flags &= ~GDISP_FLG_SCRSTREAM; + } + #endif g->p.cy = g->p.y1 - g->p.y + 1; g->p.cx = 1; gdisp_lld_fill_area(g); |