diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2018-03-05 23:17:51 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2018-03-05 23:17:51 +0000 |
| commit | 3ed5e71da71e50849eb9e2c3244e843bc5e38a05 (patch) | |
| tree | 245443359440a9b9927660e5a48b388bce0ce820 /src/drivers/Android | |
| parent | b47db80af359e5ab3b2188573cbf42ee439a2be7 (diff) | |
Android: moved to IDE directory.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12711 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/Android')
| -rw-r--r-- | src/drivers/Android/Fl_Android_Application.cxx | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/drivers/Android/Fl_Android_Application.cxx b/src/drivers/Android/Fl_Android_Application.cxx index 59fa8483c..0219d66fe 100644 --- a/src/drivers/Android/Fl_Android_Application.cxx +++ b/src/drivers/Android/Fl_Android_Application.cxx @@ -397,9 +397,21 @@ void Fl_Android_Application::copy_screen() // TODO: there are endless possibilities to optimize the following code // We can identify previously written buffers and copy only those pixels // that actually changed. - memcpy(pNativeWindowBuffer.bits, - pApplicationWindowBuffer.bits, - 600*800*2); + const uint16_t *src = (uint16_t*)pApplicationWindowBuffer.bits; + int srcStride = pApplicationWindowBuffer.stride; + int ww = pApplicationWindowBuffer.width; + int hh = pApplicationWindowBuffer.height; + + uint16_t *dst = (uint16_t*)pNativeWindowBuffer.bits; + int dstStride = pNativeWindowBuffer.stride; + if (pNativeWindowBuffer.width<ww) ww = pNativeWindowBuffer.width; + if (pNativeWindowBuffer.height<ww) ww = pNativeWindowBuffer.height; + + for (int row=hh; row>0; --row) { + memcpy(dst, src, size_t(ww * 2)); + src += srcStride; + dst += dstStride; + } unlock_and_post_screen(); } } |
