graphics/nxbe: This seems to fix the last of software cursor bugs. On the LPC54, it looks pretty clean. Not flickery as I feared. Probably not so good on low end displays. Possible transient artifacts? Not sure, maybe. Or maybe my eyes are playing tricks froom staring at this too long.

This commit is contained in:
Gregory Nutt
2019-04-13 15:08:32 -06:00
parent 3025fcefd3
commit c4f618e590
8 changed files with 24 additions and 24 deletions
@@ -119,8 +119,8 @@ void NXGL_FUNCNAME(nxglib_cursor_backup, NXGLIB_SUFFIX)
/* Get the source and destination addresses */
fbmem = (FAR uint8_t *)plane->pinfo.fbmem;
sline = (FAR uint8_t *)fbmem + sstride * be->cursor.bounds.pt1.y +
NXGL_SCALEX(be->cursor.bounds.pt1.x);
sline = (FAR uint8_t *)fbmem + sstride * intersection.pt1.y +
NXGL_SCALEX(intersection.pt1.x);
dline = (FAR uint8_t *)be->cursor.bkgd + dstride * origin.y +
NXGL_SCALEX(origin.x);
+2 -2
View File
@@ -169,8 +169,8 @@ void NXGL_FUNCNAME(nxglib_cursor_draw, NXGLIB_SUFFIX)
fbmem = (FAR uint8_t *)plane->pinfo.fbmem;
sline = be->cursor.image + sstride * origin.y + (origin.x >> 2);
dline = (FAR uint8_t *)fbmem + dstride * be->cursor.bounds.pt1.y +
NXGL_SCALEX(be->cursor.bounds.pt1.x);
dline = (FAR uint8_t *)fbmem + dstride * intersection.pt1.y +
NXGL_SCALEX(intersection.pt1.x);
sshift = (3 - (origin.y & 3)) << 1; /* MS first {0, 2, 4, 6} */
+2 -2
View File
@@ -120,8 +120,8 @@ void NXGL_FUNCNAME(nxglib_cursor_erase, NXGLIB_SUFFIX)
fbmem = (FAR uint8_t *)plane->pinfo.fbmem;
sline = (FAR uint8_t *)be->cursor.bkgd + sstride * origin.y +
NXGL_SCALEX(origin.x);
dline = (FAR uint8_t *)fbmem + dstride * be->cursor.bounds.pt1.y +
NXGL_SCALEX(be->cursor.bounds.pt1.x);
dline = (FAR uint8_t *)fbmem + dstride * intersection.pt1.y +
NXGL_SCALEX(intersection.pt1.x);
/* Erase the old cursor position by copying the previous content */