diff options
author | inmarket <andrewh@inmarket.com.au> | 2013-11-09 19:17:22 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2013-11-09 19:17:22 +1000 |
commit | daa4e8bbd78ebe4a84234de266006d1a23697657 (patch) | |
tree | d6cfb8843a3f9683b027460b1e6f33e1f56d3f5b /src/gdisp | |
parent | 53408e2cb3d0705f261e9756bcf6f3f6c90c3fe9 (diff) | |
download | uGFX-daa4e8bbd78ebe4a84234de266006d1a23697657.tar.gz uGFX-daa4e8bbd78ebe4a84234de266006d1a23697657.tar.bz2 uGFX-daa4e8bbd78ebe4a84234de266006d1a23697657.zip |
Add support for a portrait and landscape orientation modes.
Diffstat (limited to 'src/gdisp')
-rw-r--r-- | src/gdisp/gdisp.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gdisp/gdisp.c b/src/gdisp/gdisp.c index b08fe627..7eade99c 100644 --- a/src/gdisp/gdisp.c +++ b/src/gdisp/gdisp.c @@ -2367,6 +2367,16 @@ void gdispGBlitArea(GDisplay *g, coord_t x, coord_t y, coord_t cx, coord_t cy, c MUTEX_ENTER(g); g->p.x = what; g->p.ptr = value; + if (what == GDISP_CONTROL_ORIENTATION) { + switch ((orientation_t) value) { + case GDISP_ROTATE_LANDSCAPE: + g->p.ptr = g->g.Width >= g->g.Height ? GDISP_ROTATE_0 : GDISP_ROTATE_90; + break; + case GDISP_ROTATE_PORTRAIT: + g->p.ptr = g->g.Width >= g->g.Height ? GDISP_ROTATE_90 : GDISP_ROTATE_0; + break; + } + } gdisp_lld_control(g); #if GDISP_NEED_CLIP || GDISP_NEED_VALIDATION if (what == GDISP_CONTROL_ORIENTATION) { |