home *** CD-ROM | disk | FTP | other *** search
- /* 24bit color demo. works only on AGA machines with kick3 */
-
- OPT OSVERSION=39
-
- CONST X=319, Y=255
-
- DEF rast,s,win,x,y,z
-
- PROC main()
- IF s:=OpenS(X+1,Y+1,8,0,'bla')
- rast:=stdrast /* needed for fullcolour() */
- IF win:=OpenW(0,0,X+1,Y+1,0,0,'bla',s,15,0)
- FOR x:=0 TO 255 DO fullcolour(x,x,x,x)
- FOR y:=0 TO Y DO Line(0,y,63,y,y AND $FF)
- FOR y:=0 TO Y DO Line(64,y,127,y,y AND $FE)
- FOR y:=0 TO Y DO Line(128,y,191,y,y AND $FC)
- FOR y:=0 TO Y DO Line(192,y,255,y,y AND $F8)
- FOR y:=0 TO Y DO Line(256,y,319,y,y AND $F0)
- SetDrMd(stdrast,0)
- TextF(0,20,' Press leftMB on some (x,y) spot')
- TextF(0,30,' rightMB to leave.')
- TextF(0,50,' #of colours:')
- TextF(0,60,' 256 128 64 32 16 ')
- TextF(0,80,' #bits colour:')
- TextF(0,90,' 24 21 18 15 12 ')
- TextF(0,100,' AGA AGA AGA AGA ECS ')
- WHILE Mouse()<>2
- IF Mouse()=1
- y:=MouseX(win)*4/5
- z:=MouseY(win)
- FOR x:=0 TO 255
- fullcolour(x,y,x,z)
- ENDFOR
- ENDIF
- ENDWHILE
- CloseW(win)
- ENDIF
- CloseS(s)
- ENDIF
- ENDPROC
-
- PROC fullcolour(nr,r,g,b) /* a replacement for SetRGB32() */
- MOVE.L rast,A0 /* as the modules for 3.0 weren't */
- SUB.L #40,A0 /* available yet. */
- MOVE.L nr,D0
- MOVE.L r,D1
- SWAP D1
- LSL.L #8,D1 /* shift RGB to 32bit */
- MOVE.L g,D2
- SWAP D2
- LSL.L #8,D2
- MOVE.L b,D3
- SWAP D3
- LSL.L #8,D3
- MOVE.L gfxbase,A6
- JSR -$354(A6) /* SetRGB32(rast,nr,r32,g32,b32) */
- ENDPROC
-