problems with RECTRE and other little things
tom rohling
trohling at uceng.UC.EDU
Fri Dec 1 02:59:43 AEST 1989
After all the recent discussion of video thangs, it reminds me of a problem
that we have yet to resolve. It goes like this:
In order to make things easier (which is a subjective opinion) we had
written our own routine to 'compress' a full 1280x1024 image down to TV size
of (about) 640x484. To do this we used the RECTRE subroutine to read the
colormap info for the whole screen into an array. We then determined what
the RGB values were and went about our averaging to reduce it down to TV
size and then dumped it to a file for transfer to the Abekus A60. All was
fine and dandy until we had the 70GT upgraded to a 120GTX. Now, the results
of RECTRE turn out really(!!) strange (yes, I've recompiled it numerous
times). It seems that it now only reads in about a quarter of the screen
(from 0,0 to about ~600,600 in pixels) and of that which it does read in,
there are random lines where it is missing colormap information. For
example, if I cleared the screen as say green, call RECTRE, then look at the
array that it read the map info into, only the pixels for the lower left
half of the screen show a colormap number of 2, the rest are all zero
(black) with random horizontal lines also containing zero's.
Here's what the program looks like: (I haven't totally learned C yet so
its in fortran)
INTEGER*2 SGIS(0:1310720)
INTEGER*4 TEST
.
.
graphics inits
.
.
TEST=RECTRE(1,1,1274,1022,SGIS)
WRITE(6,*)TEST
WRITE(8,*)SGIS
.
.
averaging stuff
.
.
END
The value of TEST should be the number of pixels that were read by
RECTRE, this also used to work.
This had worked beautifully before the upgrade but now it doesn't. In
the upgrade, the OS release went from 3.1B to 3.1D, with the machine going
from a single processor to a two processor unit. I couldn't imagine a
rather minor OS change affecting things this much, going to two processors
seems like a more probable cause, but anything can happen.
***************************************
HELP!HELP!HELP!HELP!HELP! big projects are approaching their deadlines!!
***************************************
While I'm on the subject of idiosyncrasies, every once and a while,
I have the need to run a few graphics programs in sequential order where I
don't have to do any interacting with them as they run (like averaging
several images from separate programs). So its real handy to put them in a
script and execute them in order (like during lunch). The problem is is
that as soon as the first program initializes the graphics (like opening a
window) the unix prompt is returned. Well, right away the next program
starts to run. But wait! The first program isn't even half way completed
yet. This continues to the point where the cpu('s) are so overloaded that
virtually nothing happens. (By the way, if one processor is
displaying graphics images on the screen, and the other processor tries to
run a graphics program also, you never see its results anywhere. Is the
second one floating in la-la land somewhere or what?) The problem is is
that when the graphics mode kicks in, the system will start to accept input
from std. input. *** Is there a way to prevent this???? i.e. wait until
one graphics program is completely finished until the system returns to
accepting input???
This is more annoying than it is a problem but nonetheless it'd be nice
if it can be fixed.
Any help on any of the above problems from the audience out there would be a
great help.
Tom Rohling
CFD dude
University of Cincinnati
==========================================================================
'No more heros,
No more lights.
No more darkness,
No more fights.'
- deep dark poetry attempt by myself
==========================================================================
More information about the Comp.sys.sgi
mailing list