home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / ZoomTest.AMOS / ZoomTest.amosSourceCode < prev   
Encoding:
AMOS Source Code  |  1995-08-17  |  1.6 KB  |  70 lines

  1. ' Realtime Zoomroutine by Chris Hodges.
  2. '  
  3. ' Syntax f�r die Procedures: 
  4. '
  5. ' FASTZOOM[START,XPOS,YPOS,XSIZE,YSIZE]
  6. '
  7. ' START ist die Adresse des Chunky-Images z.B Start(13) oder so. 
  8. ' XPOS und YPOS geben den Mittelpunkt des Images an. XSIZE und YSIZE 
  9. ' ist die neue Gr��e, auf die gezoomt werden soll. KEINE NEGATIVEN 
  10. ' WERTE ANGEBEN! DARAUF ACHTEN, DASS DAS OBJEKT DEN BILDSCHIRM NICHT 
  11. ' VERL�SST!
  12. '
  13. ' FASTZOOMPROPX[START,XPOS,YPOS,XSIZE] 
  14. '
  15. ' Wie FASTZOOM, nur da� hier die YSIZE-Variable den Originalgr��en 
  16. ' entsprechend kalkuliert wird.
  17. '
  18. ' FASTZOOMPROPY[START,XPOS,YPOS,YSIZE] 
  19. '
  20. ' Wie FASTZOOMPROPX, nur wird hier XSIZE proportional berechnet. 
  21. '
  22. ' Diese Routine ist 32-colours ONLY! :-) 
  23. '
  24. 'Pload "dh2:CkyZoomB.o",7
  25. 'Dload "dh2:ChunkyTest.bin",13 
  26.  
  27. Screen Open 0,320,256,32,0
  28. Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  29. ST=Start(13)
  30. For A=0 To 31
  31.   Colour A,Deek(ST+32+A*2)
  32. Next 
  33. Double Buffer 
  34. Autoback 0
  35. X=0
  36. Do 
  37.   Screen Swap : RemWait Vbl  
  38.   Add X,1,0 To 100
  39. '  Blitter Clear 0,0 
  40. '  Blitter Clear 0,1 
  41. '  Blitter Clear 0,2 
  42. '  Blitter Clear 0,3 
  43. '  Blitter Clear 0,4 
  44. '  Blitter Wait  
  45. '  FASTZOOM[ST,160,128,X,X]
  46.   FASTZOOMPROPY[ST,160,128,X*2]
  47. Loop 
  48. Procedure FASTZOOMPROPX[AD,X,Y,DX]
  49.   DY=(DX*Deek(AD+2))/Deek(AD)
  50.   Areg(0)=AD
  51.   Dreg(0)=DX : Dreg(1)=DY
  52.   Dreg(2)=X-(DX+1)/2
  53.   Dreg(3)=Y-(DY+1)/2
  54.   Call Start(7)
  55. End Proc
  56. Procedure FASTZOOMPROPY[AD,X,Y,DY]
  57.   DX=(DY*Deek(AD))/Deek(AD+2)
  58.   Areg(0)=AD
  59.   Dreg(0)=DX : Dreg(1)=DY
  60.   Dreg(2)=X-(DX+1)/2
  61.   Dreg(3)=Y-(DY+1)/2
  62.   Call Start(7)
  63. End Proc
  64. Procedure FASTZOOM[AD,X,Y,DX,DY]
  65.   Areg(0)=AD
  66.   Dreg(0)=DX : Dreg(1)=DY
  67.   Dreg(2)=X-(DX+1)/2
  68.   Dreg(3)=Y-(DY+1)/2
  69.   Call Start(7)
  70. End Proc