Fix an error in the NX move logic
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@3766 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
parent
e47459a207
commit
b1f1796b34
|
@ -252,6 +252,8 @@ static inline void nxbg_scroll(NXWINDOW hwnd, int lineheight)
|
|||
|
||||
/* Move the display in the range of 0-height up one lineheight. The
|
||||
* line at the bottom will be reset to the background color automatically.
|
||||
*
|
||||
* The source rectangle to be moved.
|
||||
*/
|
||||
|
||||
rect.pt1.x = 0;
|
||||
|
@ -259,9 +261,13 @@ static inline void nxbg_scroll(NXWINDOW hwnd, int lineheight)
|
|||
rect.pt2.x = g_bgstate.wsize.w - 1;
|
||||
rect.pt2.y = g_bgstate.wsize.h - 1;
|
||||
|
||||
/* The offset that determines how far to move the source rectangle */
|
||||
|
||||
offset.x = 0;
|
||||
offset.y = -lineheight;
|
||||
|
||||
/* Move the source rectangle */
|
||||
|
||||
ret = nx_move(hwnd, &rect, &offset);
|
||||
if (ret < 0)
|
||||
{
|
||||
|
|
|
@ -1889,4 +1889,6 @@
|
|||
(also submitted by Hal Glenn).
|
||||
* graphics/nxfonts/nxfonts_convert.c: Fixed a critical bug that caused
|
||||
when renderer some fonts with bits-per-pixel > 8
|
||||
|
||||
* graphics/nxbe/nxbe_move.c: Fixed an error in the graphics move logic (This
|
||||
was a previously untested interface). Basically, there is some confusion
|
||||
between use of (x,y) as a relative offset or as an absolute position.
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<h1><big><font color="#3c34ec">
|
||||
<i>NX Graphics Subsystem</i>
|
||||
</font></big></h1>
|
||||
<p>Last Updated: March 20, 2010</p>
|
||||
<p>Last Updated: July 10, 2011</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
@ -3014,7 +3014,7 @@ make
|
|||
<td align="left" valign="top"><a href="#nxmove"><code>nx_move()</code></a></td>
|
||||
<td>Change to <code>CONFIG_EXAMPLES_NX_RAWWINDOWS=y</code> in the
|
||||
<code><NuttX-Directory>/.config</code> file</td>
|
||||
<td align="center" bgcolor="lightgrey">NO</td>
|
||||
<td align="center" bgcolor="skyblue">YES</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top"><a href="#nxbitmap"><code>nx_bitmap()</code></a></td>
|
||||
|
|
|
@ -89,12 +89,14 @@ static void nxbe_clipmovesrc(FAR struct nxbe_clipops_s *cops,
|
|||
FAR const struct nxgl_rect_s *rect)
|
||||
{
|
||||
struct nxbe_move_s *info = (struct nxbe_move_s *)cops;
|
||||
struct nxgl_point_s offset;
|
||||
|
||||
if (info->offset.x != 0 || info->offset.y != 0)
|
||||
{
|
||||
struct nxgl_rect_s dest;
|
||||
nxgl_rectoffset(&dest, rect, info->offset.x, info->offset.y);
|
||||
plane->moverectangle(&plane->pinfo, &dest, &info->offset);
|
||||
offset.x = rect->pt1.x + info->offset.x;
|
||||
offset.y = rect->pt1.y + info->offset.y;
|
||||
|
||||
plane->moverectangle(&plane->pinfo, rect, &offset);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -156,7 +158,7 @@ static void nxbe_clipmovedest(FAR struct nxbe_clipops_s *cops,
|
|||
}
|
||||
}
|
||||
|
||||
/* Cip to determine what is inside the bounds */
|
||||
/* Clip to determine what is inside the bounds */
|
||||
|
||||
nxgl_rectoffset(&tmprect1, rect, -offset.x, -offset.y);
|
||||
nxgl_rectintersect(&src, &tmprect1, &dstdata->srcrect);
|
||||
|
|
Loading…
Reference in New Issue