BITBLT for 3030?

"Gary S. Moss", VLD/VMB moss at BRL.MIL
Sat Jul 8 01:21:00 AEST 1989


[Jim Disbrow writes]
< Does anyone know if bitblt is possible for the 3030?
< I need to do some block transfers as quickley as possible.

Well, I was doing postage-stamp animation a few years ago, and convinced
myself that there was no bitblt-like operation for the IRIS and resigned
myself to using rectcopy().  I did notice something that might help you
however:  If the destination rectangle of the rectcopy() had an X coordinate
which was a multiple of 16 (i.e., rectopy's 5th argument), than the copy
was *very* fast, but anything else was blindingly slow.  I don't recall if
the source rectangle's position was a factor or not (either it wasn't or
my source rectangle happened to be aligned).  What I used to do was allow
the user to position the animation-viewing window, and then would nudge its
position to be in alignment as below:

	/* Get origin of frame buffer window (source). */
	getorigin( &xwin, &ywin );

	/* Create destination window for movie, with user positioning.  */
	prefsize( framesz, framesz );
	if( (movie_gid = winopen( "movie" )) == -1 )
		{
		fb_log( "No more graphics ports available.\n" );
		return;
		}
	/* Adjust window position optimally for fast "rectcopy()". */
	getorigin( &movie_xwin, &movie_ywin );
	if( ((xwin - movie_xwin) % 16) != 0 )
		movie_xwin += (xwin - movie_xwin) % 16;
	while( movie_xwin > XMAXSCREEN - framesz )
		movie_xwin -= 16;
	winmove( movie_xwin, movie_ywin );

I called this in to the SGI Hotline and went back and forth with them for
a while to figure out if it was a bug, and I think they eventually decided
that it was just a hardware design limitation.

-moss



More information about the Comp.sys.sgi mailing list