home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Global Amiga Experience
/
globalamigaexperience.iso
/
compressed
/
development
/
clusterdemo.dms
/
clusterdemo.adf
/
Modules.lha
/
modules
/
txt
/
GfxScreen.def
< prev
next >
Wrap
Text File
|
1994-05-25
|
11KB
|
217 lines
|##########|
|#MAGIC #|CLABLMGF
|#PROJECT #|""
|#PATHS #|"StdProject"
|#FLAGS #|xx---x--x----xx-----------------
|#USERSW #|--------------------------------
|#USERMASK#|--------------------------------
|#SWITCHES#|xx---xxxxx------
|##########|
DEFINITION MODULE GfxScreen;
(* 16.08.90 UlSi *)
TYPE
(*----------------------------------------------------------------------------*
* Screen : Zugriff auf einen Intuition-Screen. *
* *
* Eine Screen ist ein virtueller Bildschirm, der unabhängig von anderen *
* Screens bearbeitet werden kann. *
*----------------------------------------------------------------------------*)
Screen = DEFERRED POINTER BasicGfx.ScreenPtr;
(*----------------------------------------------------------------------------*
* ColorRGB : Farbkomponenten *
* Color : Feld, das die Farbkomponenten einer Farbe enthält *
* Palette : Zusammenfassung mehrerer Farben *
*----------------------------------------------------------------------------*)
ColorRGB = (red,green,blue);
Color = ARRAY ColorRGB OF SHORTINT;
Palette = ARRAY OF Color;
CONST
Black = Color:( 0, 0, 0);
White = Color:(15,15,15);
Red = Color:(15, 0, 0);
Green = Color:( 0,15, 0);
Blue = Color:( 0, 0,15);
Cyan = Color:( 0,12,12);
Purple = Color:(12, 0,12);
Yellow = Color:(15,15, 0);
(*---------------------------------------------------------------------------*
* AUFGABE : Öffnet eine Screen mit den agegebenen Parametern *
* PARAMETER : s => Zugriff auf den Screen *
* depth <= Anzahl der Bitplanes der Screen, die Zahl der *
* möglichen Farben der Screen ist 2^depth *
* hires <= gibt an, daß die Screen hochauflösend ist *
* lace <= schaltet Interlace ein *
* BEMERKUNGEN : Kann die Screen nicht geöffnet werden, wird ein Laufzeit- *
* fehler erzeugt. *
*---------------------------------------------------------------------------*)
PROCEDURE OpenScreen(VAR s : Screen;depth : INTEGER;hires,lace : BOOLEAN);
(*---------------------------------------------------------------------------*
* AUFGABE : Liefert die Höhe eines Screens *
* PARAMETER : s => Zugriff auf den Screen *
* <= Die Höhe des Screens *
* BEMERKUNGEN : -- *
*---------------------------------------------------------------------------*)
PROCEDURE ScreenHeight(s : Screen):INTEGER;
(*---------------------------------------------------------------------------*
* AUFGABE : Schließt eine mit OpenScreen oder LoadScreen geladene *
* Screen wieder. *
* PARAMETER : s <> Zugriff auf den Screen *
* BEMERKUNGEN : Auf die Screen darf danach nicht mehr zugegriffen werden *
*---------------------------------------------------------------------------*)
PROCEDURE CloseScreen(VAR s : Screen);
(*---------------------------------------------------------------------------*
* AUFGABE : Bringt die angegebene Screen in den Bildvordergrund *
* PARAMETER : s <= Zugriff auf den Screen *
* BEMERKUNGEN : -- *
*---------------------------------------------------------------------------*)
PROCEDURE ScreenToFront(s : Screen);
(*---------------------------------------------------------------------------*
* AUFGABE : Bringt die angegeben Screen in den Hintergrund *
* PARAMETER : s <= Zugriff auf den Screen *
* BEMERKUNGEN : -- *
*---------------------------------------------------------------------------*)
PROCEDURE ScreenToBack(s : Screen);
(*---------------------------------------------------------------------------*
* AUFGABE : Setzt die Angegebene Palette für die Screen *
* PARAMETER : s <= Zugriff auf den Screen *
* color <= Palette, die verwendet werden soll *
* BEMERKUNGEN : Es werden soviele Farben gesetzt, wie in der Palette *
* enthalten ist *
*---------------------------------------------------------------------------*)
GROUP
ScreenGrp = Screen,OpenScreen,ScreenHeight,CloseScreen,
ScreenToFront,ScreenToBack;
PROCEDURE SetPalette(s : Screen;VAR color : Palette);
(*---------------------------------------------------------------------------*
* AUFGABE : Setzt einen Teil der Palette einer Screen neu *
* PARAMETER : s <= Zugriff auf den Screen *
* reg <= Farbe, ab der geändert werden soll *
* color <= Palette, die verwendet wird *
* BEMERKUNGEN : Es werden soviele Farben gesetzt, wie in der Palette *
* vorhanden sind. *
*---------------------------------------------------------------------------*)
PROCEDURE SetPalettePart(s : Screen;reg : INTEGER;VAR color : Palette);
(*---------------------------------------------------------------------------*
* AUFGABE : Setzt eine Farbe der Screen neu *
* PARAMETER : s <= Zugriff auf den Screen *
* reg <= Farbe, die geändert wird *
* color <= Farbkombination, die eingetragen wird *
* BEMERKUNGEN : -- *
*---------------------------------------------------------------------------*)
PROCEDURE SetColor(s : Screen;reg : INTEGER;color : Color);
(*---------------------------------------------------------------------------*
* AUFGABE : Setzt eine Farbe der Screen in Komponenten neu *
* PARAMETER : s <= Zugriff auf den Screen *
* reg <= Farbe, die geändert wird *
* red <= Rotanteil, *
* green <= Grünanteil, *
* blue <= Blauanteil der neuen Farbkombination *
* BEMERKUNGEN : -- *
*---------------------------------------------------------------------------*)
PROCEDURE SetRGB(s : Screen;reg,red,green,blue : INTEGER);
(*---------------------------------------------------------------------------*
* AUFGABE : Holt die Farben einer Screen *
* PARAMETER : s <= Zugriff auf den Screen *
* color => Palette, in die die Farbwerte eingetragen werden *
* BEMERKUNGEN : Es werden nur soviele Farben geholt, wie color Elemente *
* enthält *
*---------------------------------------------------------------------------*)
PROCEDURE GetPalette(s : Screen;VAR color : Palette);
(*---------------------------------------------------------------------------*
* AUFGABE : Holt einen Ausschnitt der Screenfarben *
* PARAMETER : s <= Zugriff auf den Screen *
* reg <= Farbe, ab der geholt werden soll *
* color => Palette, in die die Werte eingetragen werden *
* BEMERKUNGEN : Es werden nur soviele Farben geholt, wie color Elemente *
* enthält *
*---------------------------------------------------------------------------*)
PROCEDURE GetPalettePart(s : Screen;reg : INTEGER;VAR color : Palette);
(*---------------------------------------------------------------------------*
* AUFGABE : Holt eine Farbe einer Screen *
* PARAMETER : s <= Zugriff auf den Screen *
* reg <= Farbe, deren Werte geholt werden sollen *
* => Farbwerte *
* BEMERKUNGEN : -- *
*---------------------------------------------------------------------------*)
PROCEDURE GetColor(s : Screen;reg : INTEGER):Color;
(*---------------------------------------------------------------------------*
* AUFGABE : Holt eine Komponente einer Farbe der Screen *
* PARAMETER : s <= Zugriff auf den Screen *
* reg <= Farbnummer *
* color <= Farbkomponente *
* => Intensität der Komponente *
* BEMERKUNGEN : -- *
*---------------------------------------------------------------------------*)
PROCEDURE GetRGB(s : Screen;reg : INTEGER;color : ColorRGB):INTEGER;
(*---------------------------------------------------------------------------*
* AUFGABE : Blendet einen Bildschirm von schwarz aus ein *
* PARAMETER : s <= Zugriff auf den Screen *
* color <= Palette, die die Screen nachher haben soll *
* time <= Gesamtdauer der Einblendung *
* BEMERKUNGEN : Die Zeit wird in 50tel Sekunden angegeben *
*---------------------------------------------------------------------------*)
GROUP
ColorGrp = ColorRGB,Color,Palette,Black,White,Red,Green,Blue,Cyan,Purple,
Yellow,SetPalette,SetPalettePart,SetColor,SetRGB,GetPalette,
GetPalettePart,GetColor,GetRGB;
PROCEDURE FadeIn(s : Screen;VAR color : Palette;time : INTEGER);
(*---------------------------------------------------------------------------*
* AUFGABE : Blendet eine Screen langsam nach schwarz aus *
* PARAMETER : s <= Zugriff auf den Screen *
* time <= Zeit, die der Vorgang dauern soll. *
* BEMERKUNGEN : Die Zeit wird in 50tel Sekunden angegeben *
*---------------------------------------------------------------------------*)
PROCEDURE FadeOut(s : Screen;time : INTEGER);
GROUP
All = ScreenGrp,ColorGrp,FadeIn,FadeOut;
END GfxScreen.