[ba.windows.x] X-Windows draws very slowly

jon@hitachi.uucp (Jon Ryshpan) (06/18/91)

I'm trying to port some code to do "animation" to X-Windows under ISC
Unix, and I find that the following code is *rather* slow.  It draws an
image of a cat.  The function takes about 300 msec (that's 1/3-second)
to execute.  The time seems to actually be taken up by the X server and
to show up in executing XFlush().

Any ideas how to speed this up?  Please reply BY MAIL.
					      ^^ ^^^^
		======= Code Starts Here =========

#define	BITMAP_WIDTH		32
#define	BITMAP_HEIGHT		32

/* Draw a cat */

void
DrawNeko( x, y, DrawGC )
    int		x;
    int		y;
    GC		DrawGC;
{
    XSetTSOrigin( theDisplay, DrawGC, x, y );

    XFillRectangle( theDisplay, theWindow, DrawGC,
		    x, y, BITMAP_WIDTH, BITMAP_HEIGHT );

    XFlush( theDisplay );
}

/* Image of a cat asleep */

#define sleep1_width 32
#define sleep1_height 32
static char sleep1_bits[] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0xc0, 0x1f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
   0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x1f, 0x00, 0x80, 0x00, 0x08, 0x00,
   0xc0, 0x1f, 0x04, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x41, 0x02,
   0x00, 0x80, 0x22, 0x02, 0x00, 0x40, 0x3e, 0x06, 0x00, 0x38, 0x14, 0x0a,
   0x00, 0x26, 0x18, 0x14, 0x00, 0x11, 0x00, 0x18, 0x00, 0x11, 0x00, 0x18,
   0x80, 0x10, 0x00, 0x38, 0x40, 0x10, 0x00, 0x2c, 0x40, 0xa0, 0x01, 0x2b,
   0x40, 0x20, 0x8e, 0x68, 0x40, 0x20, 0x10, 0x54, 0x40, 0x40, 0x40, 0x5b,
   0x80, 0x80, 0xff, 0x4c, 0x00, 0x3f, 0xf0, 0x64, 0x00, 0xe0, 0x9f, 0x3f,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

Many Thanks:	

Jonathan Ryshpan	<...!uunet!hitachi!jon>		(415) 244-7369