CVS: rdesktop/uiports qtewin.cpp,1.5,1.6
Jay Sorg <[email protected]>
| Newsgroups | gmane.network.rdesktop.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/rdesktop/rdesktop/uiports
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30545
Modified Files:
qtewin.cpp
Log Message:
screenblt optimize
Index: qtewin.cpp
===================================================================
RCS file: /cvsroot/rdesktop/rdesktop/uiports/qtewin.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** qtewin.cpp 3 Nov 2004 03:27:53 -0000 1.5
--- qtewin.cpp 5 Nov 2004 03:13:33 -0000 1.6
***************
*** 1510,1516 ****
int i, j;
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! set_pixel(x + j, y + i, get_pixel(x + j, y + i), opcode);
redraw(x, y, cx, cy);
}
--- 1510,1532 ----
int i, j;
!
! if (opcode == 0x0) /* black */
! {
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! set_pixel(x + j, y + i, 0, 0xc);
! }
! else if (opcode == 0xf) /* white */
! {
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! set_pixel(x + j, y + i, 0xffffff, 0xc);
! }
! else
! {
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! set_pixel(x + j, y + i, get_pixel(x + j, y + i), opcode);
! }
redraw(x, y, cx, cy);
}
***************
*** 1602,1637 ****
temp = (uint8*)xmalloc(cx * cy * 4);
! if (g_server_bpp == 8)
! {
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! temp[i * cx + j] = get_pixel(srcx + j, srcy + i);
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! set_pixel(x + j, y + i, temp[i * cx + j], opcode);
! }
! else if (g_server_bpp == 16)
{
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
{
! pixel = get_pixel(srcx + j, srcy + i);
! SETPIXEL16(temp, j, i, cx, pixel);
}
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
{
! pixel = GETPIXEL16(temp, j, i, cx);
! set_pixel(x + j, y + i, pixel, opcode);
}
}
! else if (g_server_bpp == 24)
{
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! *(((uint32*)temp) + (i * cx + j)) = get_pixel(srcx + j, srcy + i);
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! set_pixel(x + j, y + i, *(((uint32*)temp) + (i * cx + j)), opcode);
}
xfree(temp);
--- 1618,1709 ----
temp = (uint8*)xmalloc(cx * cy * 4);
! #ifdef QT_OPTI
! if (opcode == 0xc)
{
! if (WarpCoords(&x, &y, &cx, &cy, &srcx, &srcy))
! {
! if (g_server_bpp == 8)
{
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! {
! pixel = GETPIXEL8(g_BS, srcx + j, srcy + i, g_width);
! SETPIXEL8(temp, j, i, cx, pixel);
! }
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! {
! pixel = GETPIXEL8(temp, j, i, cx);
! SETPIXEL8(g_BS, x + j, y + i, g_width, pixel);
! }
}
! else if (g_server_bpp == 16)
{
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! {
! pixel = GETPIXEL16(g_BS, srcx + j, srcy + i, g_width);
! SETPIXEL16(temp, j, i, cx, pixel);
! }
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! {
! pixel = GETPIXEL16(temp, j, i, cx);
! SETPIXEL16(g_BS, x + j, y + i, g_width, pixel);
! }
! }
! else if (g_server_bpp == 24)
! {
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! {
! pixel = GETPIXEL32(g_BS, srcx + j, srcy + i, g_width);
! SETPIXEL32(temp, j, i, cx, pixel);
! }
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! {
! pixel = GETPIXEL32(temp, j, i, cx);
! SETPIXEL32(g_BS, x + j, y + i, g_width, pixel);
! }
}
+ }
}
! else
! #endif
{
! if (g_server_bpp == 8)
! {
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! temp[i * cx + j] = get_pixel(srcx + j, srcy + i);
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! set_pixel(x + j, y + i, temp[i * cx + j], opcode);
! }
! else if (g_server_bpp == 16)
! {
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! {
! pixel = get_pixel(srcx + j, srcy + i);
! SETPIXEL16(temp, j, i, cx, pixel);
! }
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! {
! pixel = GETPIXEL16(temp, j, i, cx);
! set_pixel(x + j, y + i, pixel, opcode);
! }
! }
! else if (g_server_bpp == 24)
! {
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! *(((uint32*)temp) + (i * cx + j)) = get_pixel(srcx + j, srcy + i);
! for (i = 0; i < cy; i++)
! for (j = 0; j < cx; j++)
! set_pixel(x + j, y + i, *(((uint32*)temp) + (i * cx + j)), opcode);
! }
}
xfree(temp);
-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click