(* --------------------------------------------------------------------------

:Program.    Colors2.mod
:Contents.   Demo - Program for the use of the procedure LoadColors
:Contents.   from CPicSupport.
:Author.     Thomas Zipproth
:Address.    Dr. Jochner Weg 10, 8948 Mindelheim, Germany
:Phone.      08261/4838
:Copyright.  PD
:Language.   Modula-2
:Translator. M2-Amiga A+l V3.3d
:Imports.    CPicSupport [thz]
:History.    V1.0 [thz] 15.7.90

--------------------------------------------------------------------------- *)

(* $S- $F- $V- $R- *)
MODULE Colors2;

FROM Arts        IMPORT Assert,TermProcedure;
FROM SYSTEM      IMPORT ADR;
FROM Graphics    IMPORT BitMapPtr,RastPortPtr,ViewPortPtr,BitMap,
                        InitBitMap,AllocRaster,FreeRaster,BltBitMap;
FROM Intuition   IMPORT ScreenPtr,CloseScreen;
FROM Dos         IMPORT FileHandlePtr,Delay,Close;
FROM CPicSupport IMPORT ReadInfo,LoadCPicScreen,LoadBitplanes,LoadColors,ci;

VAR sp     : ScreenPtr;
    rp     : RastPortPtr;
    bp,bp2 : BitMapPtr;
    Bm     : BitMap;
    vp     : ViewPortPtr;
    fp     : FileHandlePtr;
    Error  : BOOLEAN;
    i      : INTEGER;
    dummy  : LONGCARD;

PROCEDURE Ausstieg;
BEGIN
  IF sp#NIL THEN CloseScreen(sp) END;
  IF fp#NIL THEN Close(fp) END;
  FOR i:=0 TO 4 DO
    FreeRaster(Bm.planes[i],112,240);
  END;
END Ausstieg;


BEGIN

  TermProcedure(Ausstieg);

  InitBitMap(Bm,5,112,240); (* The BitMap to blit to the front *)
  FOR i:=0 TO 4 DO
    Bm.planes[i] := AllocRaster(112,240)
  END;
  bp2 := ADR(Bm);

  Error := LoadCPicScreen("C0",sp,0,0,TRUE);
  Assert(sp#NIL,ADR("Couldn't load picture"));
  rp := ADR(sp^.rastPort);
  bp := rp^.bitMap;
  vp := ADR(sp^.viewPort);
  Delay(100);

  (* --------------------------------------------------- *)

  Error := ReadInfo("C1",ci,fp);
  Assert(Error,ADR("Couldn't load picture"));

  Error := LoadBitplanes(ci,fp,bp2,0,0,1);
  (* Load 8-colors Picture into the first 8 colors *)

  dummy :=  BltBitMap(bp2,0,0,bp,0,24,104,223,192,255,NIL);
  (* 192 : Bits from Source - Bitmap unchanged *)
  (* 255 : Use all Bitplanes *)

  LoadColors(ci,vp,bp,1);
  (* Change first 8 colors to those from loaded CPic *)

  Close(fp); fp:=NIL; Delay(100);

  (* --------------------------------------------------- *)

  Error := ReadInfo("C2",ci,fp);
  Assert(Error,ADR("Couldn't load picture"));

  Error := LoadBitplanes(ci,fp,bp2,0,0,2);
  (* Load 8-color Picture into the last 8 colors *)

  dummy :=  BltBitMap(bp2,0,0,bp,208,24,104,223,192,255,NIL);

  LoadColors(ci,vp,bp,2);
  (* Change last 8 colors to those from loaded CPic *)

  Close(fp); fp:=NIL; Delay(100);

  (* --------------------------------------------------- *)

  Error := ReadInfo("C3",ci,fp);
  Assert(Error,ADR("Couldn't load picture"));

  Error := LoadBitplanes(ci,fp,bp2,0,0,2);
  (* Load 16-color Picture into the last 16 colors *)

  dummy :=  BltBitMap(bp2,0,0,bp,208,24,104,223,192,255,NIL);

  LoadColors(ci,vp,bp,2);
  (* Change last 16 colors to those from loaded CPic *)

  Close(fp); fp:=NIL; Delay(200);


END Colors2.
