{Program DPFDemo;}

{$path "pas:include/"}
{$include "intuition.lib","graphics.lib"}
{$include "exec/memory.h","graphics/gfxbase.h","DualPlayfield.p" }

{ Dieses Programm demonstriert den Umgang mit einem mittels "DPFScreen" aus }
{ "DualPlayfield" erzeugten Dual-Playfield Screen                           }
{                           by Paul Lukowicz Mai 1990                       }



VAR MyScr      : ^Screen;
    Ras1,Ras2  : ^RastPort;
    pt         : Ptr;
    MyGfxBase  : p_GraphicsBase;
    i,h,j,dir  : INTEGER;

BEGIN

 { Libraries öffnen und Adresse der GraphicsBase Holen }
 OpenLib(IntBase,"intuition.library",0);
 OpenLib(GfxBase,"graphics.library",0);
 MyGfxBase := GfxBase;

 { Dual-Playfield Screen öffnen, Vordergrundfarben und Farbregister setzen }
 MyScr := DPFScreen("Test",0,0,320,250,4,1,0,0,NIL,Ras1,Ras2)
 SetAPen(Ras1,1);
 SetAPen(Ras2,1);
 pt := ptr(Long(MyScr)+$02c);
 SetRGB4(p_ViewPort(pt),0,0,0,0);
 SetRGB4(p_ViewPort(pt),1,0,0,15);
 SetRGB4(p_ViewPort(pt),3,15,0,0);

 { 5 horizontale Streifen im Playfield 1 zeichnen }
 FOR i := 0 TO 4 DO
 BEGIN
  RectFill(Ras1,0,100+i*30,319,100+i*30+15);
 END;

 { Einen Streifen im Playfield 2 zeichnen }
 RectFill(Ras2,100,87,220,98);

 { Playfield 2 2 mal runter und wieder hoch scrollen, dabei nach je 30  }
 { gescrollten Pixels anderes Playfield nach Vorn bringen               }
 dir := -1;                          { Scrollrichtung zuerst nach unten }
 FOR h := 1 TO 4 DO
 BEGIN
  FOR i := 0 TO 1 DO
  BEGIN
   FOR j := 1 TO 30 DO
   BEGIN
    Delay(1);                                             { Kurz warten }
    ScrollRaster(Ras2,0,dir,0,0,319,250);                    { Scrollen }
   END
   Switch(MyScr,FALSE);                          { Playfields umschalten }
   FOR j := 1 TO 30 DO
   BEGIN
    Delay(1);
    ScrollRaster(Ras2,0,dir,0,0,319,250);
   END
   Switch(MyScr,TRUE);
  END
  dir := dir * (-1);                           { Scrollrichtung umdrehen }
 END

 { Alles schließen }
 CloseScreen(MyScr);
 CloseLib(GfxBase);
 CloseLib(IntBase);

END.











