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