trohling@uceng.UC.EDU (tom rohling) (12/04/89)
A few days back, I posted an article about RECTRE not appearing to be functioning right. Well, here's an update. Consider this piece of code: CALL READSO(1) TEST=RECTRE(1,1,640,484,SGIS) CALL COLOR(0) CALL CLEAR CALL MAPCOL(3,255,0,255) CALL RECTWR(1,1,640,484,SGIS) DO 10 II=1,309760 IF(SGIS(II).EQ.3)THEN WRITE(6,*)II,SGIS(II) ENDIF 10 CONTINUE Here's the expanation: The window is only 640x484 in size. The window is cleared black and a few lines of large yellow(3) text are written across the window. I put the READSO there just to be safe and supress any possibilities from this. Next, it loads the array SGIS, then I cleared the screen (just to be sure), then redefine color 3 to see if it will show a change in color when I redraw the image. Then call RECTWR to redraw the same image. That works just fine, with the text appearing as magenta, so its in the array somehow. * This shows that RECTRE in functioning correctly. Now comes the strange part. I try to scan through the array and write all color 3 entries to the screen. I know there are quite a few because the text changed color when I redefined it. But nothing gets written to the screen which means (??) that there were no 3 entries in the comparison. This doesn't make any sense. The array SGIS is declared as INTEGER*2, but are the elements of that array written in some goofy fashion like hex or something? When I tried to write out the entire array, it was mostly large negative numbers (like -24000 something) but I know SGIS is correct else RECTWR wouldn't have given the correct results. What !exactly! is the format of the result of RECTRE (details!)??? Any clues?? Tom Rohling CFD dude Aerospace Eng. University of Cincinnati trohling@uceng.uc.edu ========================================================================== If your standing on the North Pole, what time is it? ==========================================================================
tarolli@riva.esd.sgi.com (Gary Tarolli) (12/05/89)
In article <3022@uceng.UC.EDU>, trohling@uceng.UC.EDU (tom rohling) writes: > > A few days back, I posted an article about RECTRE not appearing to be > functioning right. Well, here's an update. > . . . > > What !exactly! is the format of the result of RECTRE (details!)??? > If you say "man rectread" on 3.2, you get the following NOTES section in the man page NOTES These routines are available only in immediate mode. On IRIS-4D GT and GTX models, the upper 4 bits of the 16-bit values returned by rectread are undefined, and its performance will suffer if x2 - x1 + 1 is odd. If you are running on a GT or GTX model (you didn't say, but from your problem it sounds like you are), then I think your problem is that the upper 4 bits of the 16 bit values are indeed undefined, and are probably not 0! This would make your comparison to "3" fail even though the pixel is indeed color 3. Hope this helps. -- Gary Tarolli