Fix a positioning problem in CRlePaletteBitmap

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4694 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2012-05-03 23:06:37 +00:00
parent 1c44939445
commit e5a837ee3a
3 changed files with 14 additions and 2 deletions

View File

@ -20,3 +20,5 @@
out in the 1.0 release but is verfied functional in 1.1. out in the 1.0 release but is verfied functional in 1.1.
* CRlePalettBitmap: Fix an error in the text that determines if we * CRlePalettBitmap: Fix an error in the text that determines if we
need to "rewind" to the beginning of the image. need to "rewind" to the beginning of the image.
* CRlePalettBitmap: Fixe a positioning problem. It was actually losing
the last row of every image!

View File

@ -274,7 +274,7 @@ int MAIN_NAME(int argc, char *argv[])
delete g_nxwmtest.taskbar; delete g_nxwmtest.taskbar;
return EXIT_FAILURE; return EXIT_FAILURE;
} }
showTestCaseMemory("After initializing memory menager"); showTestCaseMemory("After initializing window manager");
// Create the start window. The general sequence for setting up the start window is: // Create the start window. The general sequence for setting up the start window is:
// //

View File

@ -242,12 +242,22 @@ void CRlePaletteBitmap::startOfImage(void)
bool CRlePaletteBitmap::advancePosition(nxgl_coord_t npixels) bool CRlePaletteBitmap::advancePosition(nxgl_coord_t npixels)
{ {
// Advance to the next column after consuming 'npixels' on this colum
int newcol = m_col + npixels; int newcol = m_col + npixels;
// Have we consumed the entire row?
while (newcol >= m_bitmap->width) while (newcol >= m_bitmap->width)
{ {
// Advance to the next row
newcol -= m_bitmap->width; newcol -= m_bitmap->width;
if (++m_row >= m_bitmap->height) m_row++;
// If we still have pixels to account for but we have exceeded the
// the size of the bitmap, then return false
if (newcol > 0 && m_row >= m_bitmap->height)
{ {
return false; return false;
} }