home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / pOS_RKRM.lzx / pOS_RKRM / _Docs / SGOS.doc < prev   
Encoding:
Text File  |  1997-03-18  |  23.6 KB  |  779 lines

  1. TABLE OF CONTENTS
  2.  
  3. sgos.library/SGOSAllgemeines
  4. sgos.library/pOS_ActivateSGObjectA
  5. sgos.library/pOS_CloneSGObjectA
  6. sgos.library/pOS_CreateSGObjectA
  7. sgos.library/pOS_CreateSGOInfoA
  8. sgos.library/pOS_DeleteSGObject
  9. sgos.library/pOS_DeleteSGOInfo
  10. sgos.library/pOS_DrawSGOS
  11. sgos.library/pOS_InactivateSGObject
  12. sgos.library/pOS_LockSGOInfo
  13. sgos.library/pOS_RemoveSGObject
  14. sgos.library/pOS_SetSGObjectGfxMap
  15. sgos.library/pOS_SetSGObjectMask
  16. sgos.library/pOS_StartSGOS
  17. sgos.library/pOS_StopSGOS
  18. sgos.library/pOS_UnlockSGOInfo
  19.  
  20.  
  21. sgos.library/SGOSAllgemeines
  22.  
  23.    SGOS steht für "Simple Graphics Object System" und ermöglicht die
  24.    einfache Erstellung und Verwaltung bewegter/animierter Grafikobjekte.
  25.  
  26.  
  27.    ACHTUNG: ZUR ZEIT werden noch KEINE Objekte an der ClipBox geklippt.
  28.  
  29.  
  30.  
  31.  pOS_SGOInfo
  32.  
  33.      Auf folgende Struktur-Elemente darf LESEND zugegriffen werden:
  34.      ACHTUNG: Bevor auf irgendeine Struktur im laufendem System
  35.               zugegriffen wird, ist das entsprechende System mit
  36.               pOS_LockSGOInfo() zu sperren !!!
  37.  
  38.    pOS_List sgoi_ActiveList;
  39.      Aktiveliste. In dieser Liste befinden sich alle zur Zeit aktiven
  40.      Grafikobjekte. Objekte dürfen NUR mit den entsprechenden System-
  41.      funktionen entfernt bzw. hinzugefügt werden.
  42.  
  43.    pOS_List sgoi_InactiveList;
  44.      Inaktiveliste. In dieser Liste befinden sich alle zur Zeit inaktiven
  45.      Grafikobjekte. Diese werden nicht von pOS_DrawSGOS() behandelt.
  46.      Objekte dürfen NUR mit den entsprechenden Systemfunktionen entfernt
  47.      bzw. hinzugefügt werden.
  48.  
  49.    pOS_IBox sgoi_ClipBox;
  50.      Die Größe des Randes.
  51.  
  52.    HINWEIS
  53.      Benötigt man ein bestimmtes Grafikobjekt öfter, so ist es günstig
  54.      dieses EINMAL als Master zu erzeugen und in die Inaktivliste
  55.      einzufügen. Wird nun dieses Objekt zu Darstellung gebraucht, kann
  56.      es einfach per pOS_CloneSGObject() kopiert werden. Wird es nicht
  57.      mehr benötigt, ist es einfach per pOS_RemoveSGObjetct() zu
  58.      entfernen.
  59.        Es können beliebig viele Kopien eines Objektes existieren. Dabei
  60.      werden die eigentlichen Grafikdaten nur einmal im Speicher behalten.
  61.      Das Masterobjekt MUSS natürlich mindestens genausolange wie die
  62.      letzte Kopie existieren.
  63.  
  64.  
  65.  pOS_SGObject
  66.  
  67.      Auf folgende Struktur-Elemente darf LESEND zugegriffen werden:
  68.      ACHTUNG: Befindet man sich nicht in einer der Callbackfunktionen
  69.               (Move_Func,Amin_Func...), so ist vor den Zugriff das
  70.               System per pOS_SGOInfo() zu sperren !!!!
  71.  
  72.    pOS_SGOInfo *sgo_Info;
  73.      Zeiger auf die Info, welcher das Objekt angehört.
  74.  
  75.    UWORD sgo_Size;
  76.      Größe der gesamten Objektstruktur.
  77.  
  78.    UWORD sgo_Width, sgo_Height;
  79.      Breite und Höhe des Objektes.
  80.  
  81.    SLONG sgo_OldX, sgo_OldY;
  82.      Letzte Position.
  83.  
  84.    SLONG sgo_X, sgo_Y;
  85.      Aktuelle Position. Innerhalb der Move_Func sind diese Werte auf
  86.      die neue Position zu setzen.
  87.      Innerhalb der Kollisionsbehandlungs-Routinen dürfen diese Werte
  88.      geändert werden.
  89.  
  90.    ULONG sgo_HitID, sgo_HitMask;
  91.      Die HitID identifiziert ein Objekt. Die HitMask gibt an, für welche
  92.      HitIDs die Kollisionsroutinen aufgerufen werden sollen.
  93.  
  94.      Beispiel: obj1 HitID1=0000  HitMask1=0001
  95.                obj2 HitID2=0001  HitMask2=0110  (alle Angaben Binär)
  96.  
  97.        Stoßen nun beide Objekte zusammen, so wird für obj1 die
  98.        Kollisionsroutine 0 (SGOSTAG_CollHandler0) aufgerufen, da
  99.        HitMask1 & HitID2 == 1 => sprich das nullte Bit ist gesetzt.
  100.  
  101.        Die Kollisionsroutine wird immer für das Objekt aufgerufen,
  102.        welches durch die HitMask angegeben hat, über Kollisionen mit
  103.        anderen Objekten zu erfahren.
  104.  
  105.            CollRoutine(obj1,obj2);
  106.  
  107.        Objekt obj2 würde über diese Kollision nichts erfahren, da
  108.        HitMask2 & HitID1 == 0 => kein Bit gesetzt.
  109.  
  110.        Sind nach der UND-Verknüpfung mehere Bits gesetzt, so werden
  111.        ALLE Kollisionroutinen nacheinander (mit 0 beginnend) aufgerufen,
  112.        für welche das entsprechende Bit 1 ist.
  113.  
  114.        Bei der Kollisionüberprüfung findet NUR ein Test auf die Bounds
  115.        der Objekte statt. ES WERDEN KEINE MASKEN BEACHTET.
  116.  
  117.    ULONG sgo_Flags;
  118.      Die Flags dürfen geändert werden.
  119.      Der Zugriff ist mit pOS_LockSGOInfo() zu schützen.
  120.  
  121.        SGOF_MustDraw
  122.          das Objekt MUSS beim nächsten Zeichendurchlauf unbedingt
  123.          gezeichnet werden
  124.  
  125.        SGOF_AnimObj
  126.          gestattet das Abspielen einer Animation. Nur wenn dieses Bit
  127.          gesetzt ist, wird die Anim_Func aufgerufen bzw. die Animation
  128.          automatisch abgespielt.
  129.          Wird automatisch von pOS_CreateSGObject() gesetzt, wenn
  130.          eine Animation erkannt wird.
  131.  
  132.        SGOF_UseMask
  133.          gestattet das Benutzen der Stanzmaske. Nur wenn dieses Bit
  134.          gesetzt wird eine mögliche Stanzmaske bzw. Maskenanimation
  135.          auch beachtet.
  136.          Wird automatisch von pOS_CreateSGObject() gesetzt, wenn
  137.          eine Maske angegeben wird.
  138.  
  139.        SGOF_AnimMask
  140.          gestattet das Abspielen einer MaskAnimation. Nur wenn dieses Bit
  141.          gesetzt ist, wird die AnimMask_Func aufgerufen bzw. die Animation
  142.          automatisch abgespielt.
  143.          Wird automatisch von pOS_CreateSGObject() gesetzt, wenn
  144.          eine Animation als Maske erkannt wird.
  145.  
  146.        SGOF_Delete
  147.          Wenn dieses Bit gesetzt ist, wird das Objekt beim nächsten
  148.          Zeichendurchlauf nicht mehr gezeichnet, sondern mit
  149.          pOS_DeleteSGObject() gelöscht.
  150.          Um ein Löschen auch von Bildschirm zu erzwingen, sollte ebenfalls
  151.          SGOF_MustDraw gesetzt sein. Entspricht dem Verhalten von
  152.          pOS_RemoveSGObject().
  153.  
  154.        SGOF_Inactivate
  155.          Wenn dieses Bit gesetzt ist, wird das Objekt beim nächsten
  156.          Zeichendurchlauf nicht mehr gezeichnet, sondern in die
  157.          Inaktivliste überführt.
  158.          Um ein Löschen auch von Bildschirm zu erzwingen, sollte ebenfalls
  159.          SGOF_MustDraw gesetzt sein. Entspricht dem Verhalten von
  160.          pOS_InactivateSGObject().
  161.  
  162.    ULONG sgo_FrameCount;
  163.      Anzahl der Frames einer Animation.
  164.  
  165.    ULONG sgo_CurFrame;
  166.      Aktuell angezeigter Frame.
  167.  
  168.    ULONG sgo_MaskCount;
  169.      Anzahl der Frames einer MaskenAnimation.
  170.  
  171.    ULONG sgo_CurMask;
  172.      Aktuell benutzer MaskenFrame.
  173.  
  174.  
  175.  pOS_SGObject Callback Funktionen
  176.  
  177.    VOID (*sgo_Move_func)(_R_A0 pOS_SGObject*);
  178.      Über diese Funktion kann ein Objekt bewegt werden. Dazu sind
  179.      der neue X- und/oder Y-Wert zu setzen.
  180.  
  181.      INPUTS - das zu bewegende Objekt
  182.  
  183.  
  184.    VOID (*sgo_BorCollision_func)(_R_A0 pOS_SGObject*,_R_A1 pOS_IBox*,_R_D0 UWORD);
  185.      Diese Funktion wird immer dann aufgerufen, wenn das Objekt mit der
  186.      ClipBox kollidiert.
  187.  
  188.      INPUTS - das kollidierte Objekt
  189.             - die ClipBox
  190.             - Bitfeld, welches den Ort der Kollision anzeigt (UWORD)
  191.                   SGOBCB_Left   - linker Rand
  192.                   SGOBCB_Right  - rechter Rand
  193.                   SGOBCB_Top    - oberer Rand
  194.                   SGOBCB_Bottom - unterer Rand
  195.               Kombinationen sind ebenfalls möglich.
  196.  
  197.  
  198.    ULONG (*sgo_AnimObj_func)(_R_A0 pOS_SGObject*);
  199.    ULONG (*sgo_AnimMask_func)(_R_A0 pOS_SGObject*);
  200.      Mit Hilfe dieser Funktionen kann der Ablauf der Objekt- bzw. Masken-
  201.      Animation bestimmt werden. Es ist der nächste anzuzeigende Frame
  202.      zurückzugeben.
  203.  
  204.      INPUTS - das zu animierende Objekt
  205.  
  206.  
  207.  
  208. sgos.library/pOS_ActivateSGObjectA
  209.  
  210.    NAME
  211.         pOS_ActivateSGObjectA -- Aktiviert ein inaktives Objekt
  212.         pOS_ActivateSGObject
  213.  
  214.    SYNOPSIS
  215.         pOS_ActivateSGObjectA( obj , taglist );
  216.                              _R_A0   _R_A1
  217.  
  218.         VOID pOS_ActivateSGObjectA(pOS_SGObject*);
  219.  
  220.         pOS_ActivateSGObject( obj, tag,...);
  221.  
  222.         VOID pOS_ActivateSGObject(pOS_SGObject*,ULONG,...);
  223.  
  224.    FUNCTION
  225.         Das Objekt wird aus der Inaktiveliste in die Aktivliste über-
  226.         nommen und beim nächsten pOS_SGOSDraw() gezeichnet.
  227.  
  228.    INPUTS
  229.         obj - das zu aktivierende Objekt. Dieses muß sich zuvor in der
  230.               Inaktivliste der entsprechenden pOS_SGOInfo stehen.
  231.  
  232.    TAGS
  233.         SGOSTAG_InitialX (ULONG)
  234.           (Default 0)
  235.           X-Koordinate der Startposition des Objektes.
  236.  
  237.         SGOSTAG_InitialY (ULONG)
  238.           (Default 0)
  239.           Y-Koordinate der Startposition des Objektes.
  240.  
  241.         SGOSTAG_UserData (ULONG)
  242.           (Default 0)
  243.           Wert, welcher bei sgo_UserData[0] eingetragen wird.
  244.  
  245.    SEE ALSO
  246.         pOS_CreateSGObjectA(),pOS_CloneSGObjectA(),
  247.         pOS_InactivateSGObject()
  248.  
  249. sgos.library/pOS_CloneSGObjectA
  250.  
  251.    NAME
  252.         pOS_CloneSGObjectA -- Erzeugt eine Kopie eines Objektes
  253.         pOS_CloneSGObject --
  254.  
  255.    SYNOPSIS
  256.         obj = pOS_CloneSGObjectA( obj , taglist);
  257.         _R_D0                    _R_A0   _R_A1
  258.  
  259.         __ARID__ pOS_SGObject* pOS_CloneSGObjectA(pOS_SGObject*,
  260.                                   const pOS_TagItem*);
  261.  
  262.         obj = pOS_CloneSGObject( obj, tag,...);
  263.  
  264.         __ARID__ pOS_SGObject* pOS_CloneSGObject(pOS_SGObject*,
  265.                                   ULONG,...);
  266.  
  267.    FUNCTION
  268.         Das übergebende Objekt wird kopiert. Das neue Objekt benutzt die
  269.         Grafikdaten des Orginalen mit. Deshalb darf das Orginal erst
  270.         gelöscht werden, wenn keine Kopie mehr von ihm besteht.
  271.  
  272.    INPUTS
  273.         obj - das Objekt, welches kopiert werden soll
  274.         taglist - Tagliste mit zusätzlichen Optionen
  275.  
  276.    TAGS
  277.         SGOSTAG_MoveFunc ((*)(_R_A0 pOS_SGObject*))
  278.           (Default NULL)
  279.           Zeiger auf Bewegungsfunktion für das Objekt. Diese Funktion
  280.           wird von pOS_SGOSDraw() vor jedem Zeichnen aufgerufen.
  281.           Innerhalb dieser Funktion dürfen der X- und der Y-Wert des
  282.           Objektes geändert werden.
  283.           Wird NULL übergeben, ist das Objekt feststehend.
  284.  
  285.         SGOSTAG_BorCollisionFunc ((*)(_R_A0 pOS_SGObject*,_R_A1 pOS_IBox,_R_D0 UWORD))
  286.           (Default NULL)
  287.           Zeiger auf Funktion zur Auswertung einer Kollision des Objektes
  288.           mit dem Rand.
  289.           Innerhalb dieser Funktion dürfen der X- und der Y-Wert des
  290.           Objektes geändert werden.
  291.  
  292.         SGOSTAG_AnimObjFunc ((*)(_R_A0 pOS_SGObject*))
  293.           (Default NULL)
  294.           Zeiger auf Funktion zur Ermittlung des nächsten Frames.
  295.           Ist keine Funktion angegeben, so wird die Animation Bild für
  296.           Bild abgespielt.
  297.  
  298.         SGOSTAG_AnimMaskFunc ((*)(_R_A0 pOS_SGObject*))
  299.           (Default NULL)
  300.           Zeiger auf Funktion zur Ermittlung des nächsten Frames der
  301.           Masken-Animation.
  302.           Ist keine Funktion angegeben, so wird die Animation Bild für
  303.           Bild abgespielt.
  304.  
  305.         SGOSTAG_InitialX (ULONG)
  306.           (Default 0)
  307.           X-Koordinate der Startposition des neuen Objektes.
  308.  
  309.         SGOSTAG_InitialY (ULONG)
  310.           (Default 0)
  311.           Y-Koordinate der Startposition des neuen Objektes.
  312.  
  313.         SGOSTAG_HitID (ULONG)
  314.           (Default 0)
  315.           Bitmaske zur Ermittlung der Objekt-Kollisionsfunktion.
  316.  
  317.         SGOSTAG_HitMask (ULONG)
  318.           (Default 0)
  319.           Bitmaske zur Ermittlung der Objekt-Kollisionsfunktion.
  320.  
  321.         SGOSTAG_Inactive (BOOL)
  322.           (Default FALSE)
  323.           Bei TRUE wird das Objekt in die Inaktivliste der pOS_SGOInfo
  324.           aufgenommen. Dieses Objekt wird dann nicht gezeichnet.
  325.  
  326.         SGOSTAG_UserData (ULONG)
  327.           (Default 0)
  328.           Wert, welcher bei sgo_UserData[0] eingetragen wird.
  329.  
  330.    RESULT
  331.         Zeiger auf das neue Objekt oder NULL im Fehlerfall.
  332.  
  333.    SEE ALSO
  334.         pOS_CreateSGOjectA()
  335.  
  336. sgos.library/pOS_CreateSGObjectA
  337.  
  338.    NAME
  339.         pOS_CreateSGObjectA -- Erzeugen eines neuen Grafikobjektes
  340.         pOS_CreateSGObject --
  341.  
  342.    SYNOPSIS
  343.         obj = pOS_CreateSGObjectA( info, taglist );
  344.         _R_D0                     _R_A0  _R_A1
  345.  
  346.         __ARID__ pOS_SGObject* pOS_CreateSGObjectA(pOS_SGOInfo*,
  347.                             const pOS_TagItem*);
  348.  
  349.         obj = pOS_CreateSGObject( info, tag,...);
  350.  
  351.         __ARID__ pOS_SGObject* pOS_CreateSGObject(pOS_SGOInfo*,
  352.                             ULONG,...);
  353.  
  354.    FUNCTION
  355.         Erzeugt und initialisiert ein neues Grafikobjekt.
  356.  
  357.    INPUTS
  358.         info - zuvor erzeugtes pOS_SGOInfo
  359.         taglist - Tagliste mit weiteren Optionen
  360.  
  361.    TAGS
  362.         SGOSTAG_SGObjSize (ULONG)
  363.           (Default sizeof(pOS_SGObject))
  364.           Die pOS_SGObject-Struktur kann mit privaten Daten erweitert
  365.           werden. Dazu ist hier die Gesamtgröße der Struktur anzugeben.
  366.  
  367.         SGOSTAG_GfxMap (pOS_GfxMap*)
  368.           (Default NULL)
  369.           GfxMap, die das Grafikobjekt darstellt. Diese MUSS eine
  370.           Friend-Map zum Window sein.
  371.  
  372.         SGOSTAG_StdGfxMap (pOS_GfxMap*)
  373.           (Default NULL)
  374.           Eine Standard-GfxMap, welche das Grafikobjekt darstellen soll.
  375.           Diese wird automatisch zu einer Friend-Map umgewandelt.
  376.  
  377.         SGOSTAG_Mask (pOS_GfxMap*)
  378.           (Default NULL)
  379.           Zu verwendene Stanzmaske - MUSS Friend sein
  380.  
  381.         SGOSTAG_GfxFile (const CHAR*)
  382.           (Default NULL)
  383.           Der Dateiname eines Bildes oder einer Animation. Der Name kann
  384.           relativ zum Programm-Verzeichnis angegeben sein.
  385.           Die Datei wird mit Hilfe des Picture.datatype geladen. Dabei
  386.           wird automatisch erkannt, ob es sich um eine Animation oder
  387.           um ein Einzelbild handelt.
  388.  
  389.         SGOSTAG_MaskFile (const CHAR*)
  390.           (Default NULL)
  391.           Der Dateiname eines Bildes oder einer Animation. Der Name kann
  392.           relativ zum Programm-Verzeichnis angegeben sein.
  393.           Die Datei wird mit Hilfe des Picture.datatype geladen. Dabei
  394.           wird automatisch erkannt, ob es sich um eine Animation oder
  395.           um ein Einzelbild handelt.
  396.  
  397.         SGOSTAG_MoveFunc ((*)(_R_A0 pOS_SGObject*))
  398.           (Default NULL)
  399.           Zeiger auf Bewegungsfunktion für das Objekt. Diese Funktion
  400.           wird von pOS_SGOSDraw() vor jedem Zeichnen aufgerufen.
  401.           Innerhalb dieser Funktion dürfen der X- und der Y-Wert des
  402.           Objektes geändert werden.
  403.           Wird NULL übergeben, ist das Objekt feststehend.
  404.  
  405.         SGOSTAG_BorCollisionFunc ((*)(_R_A0 pOS_SGObject*,_R_A1 pOS_IBox,_R_D0 UWORD))
  406.           (Default NULL)
  407.           Zeiger auf Funktion zur Auswertung einer Kollision des Objektes
  408.           mit dem Rand.
  409.           Innerhalb dieser Funktion dürfen der X- und der Y-Wert des
  410.           Objektes geändert werden.
  411.  
  412.         SGOSTAG_AnimObjFunc ((*)(_R_A0 pOS_SGObject*))
  413.           (Default NULL)
  414.           Zeiger auf Funktion zur Ermittlung des nächsten Frames.
  415.           Ist keine Funktion angegeben, so wird die Animation Bild für
  416.           Bild abgespielt.
  417.  
  418.         SGOSTAG_AnimMaskFunc ((*)(_R_A0 pOS_SGObject*))
  419.           (Default NULL)
  420.           Zeiger auf Funktion zur Ermittlung des nächsten Frames der
  421.           Masken-Animation.
  422.           Ist keine Funktion angegeben, so wird die Animation Bild für
  423.           Bild abgespielt.
  424.  
  425.         SGOSTAG_InitialX (ULONG)
  426.           (Default 0)
  427.           X-Koordinate der Startposition des neuen Objektes.
  428.  
  429.         SGOSTAG_InitialY (ULONG)
  430.           (Default 0)
  431.           Y-Koordinate der Startposition des neuen Objektes.
  432.  
  433.         SGOSTAG_HitID (ULONG)
  434.           (Default 0)
  435.           Bitmaske zur Ermittlung der Objekt-Kollisionsfunktion.
  436.  
  437.         SGOSTAG_HitMask (ULONG)
  438.           (Default 0)
  439.           Bitmaske zur Ermittlung der Objekt-Kollisionsfunktion.
  440.  
  441.         SGOSTAG_Inactive (BOOL)
  442.           (Default FALSE)
  443.           Bei TRUE wird das Objekt in die Inaktivliste der pOS_SGOInfo
  444.           aufgenommen. Dieses Objekt wird dann nicht gezeichnet.
  445.  
  446.         SGOSTAG_UserData (ULONG)
  447.           (Default 0)
  448.           Wert, welcher bei sgo_UserData[0] eingetragen wird.
  449.  
  450.    RESULT
  451.         obj - das neu erzeugt Objekt, oder NULL im Fehlerfall
  452.  
  453.    SEE ALSO
  454.  
  455. sgos.library/pOS_CreateSGOInfoA
  456.  
  457.    NAME
  458.         pOS_CreateSGOInfoA -- Erzeugt ein neues Objektsystem
  459.         pOS_CreateSGOInfo --
  460.  
  461.    SYNOPSIS
  462.         info = pOS_CreateSGOInfoA(window,taglist);
  463.         _R_D0                     _R_A0  _R_A1
  464.  
  465.         __ARID__ pOS_SGOInfo* pOS_CreateSGOInfoA(pOS_Window*,
  466.                          const pOS_TagItem*);
  467.  
  468.         info = pOS_CreateSGOInfo(window,tag,...);
  469.  
  470.         __ARID__ pOS_SGOInfo* pOS_CreateSGOInfo(pOS_Window*,
  471.                          ULONG,...);
  472.  
  473.    FUNCTION
  474.         Es wird ein neues Objektsystem erzeugt und initialisiert.
  475.         Das Fenster MUSS ein GimmeZeroZero-Window (WINFLGF_GimmeZeroZero)
  476.         sein und es MUSS eine SuperGfxMap (SCRTAG_SuperGfxMap) im Window
  477.         installiert sein.
  478.  
  479.    INPUTS
  480.         window - Zeiger auf das zu verwendene Fenster
  481.         taglist - Tagliste mit zusätzlichen Optionen
  482.    TAGS
  483.         SGOSTAG_ClipBox (pOS_IBox*)
  484.           (Default NULL)
  485.           ClipBox, die den Border bestimmt. Bei NULL wird automatisch
  486.           die Innenfläche des Fenster mit pOS_GetWindowIBox()
  487.           bestimmt.
  488.  
  489.         SGOSTAG_CollHandler0 - 31 ((*)(_R_A0 pOS_SGObject*,_R_A1 pOS_SGObject*))
  490.           (Default NULL)
  491.           Funktion, die aufgerufen wird, wenn eine Kollision zwischen
  492.           zwei bestimmten Objekten festgestellt wird.
  493.  
  494.         SGOSTAG_FramesPerSec (UWORD)
  495.           (Default 25)
  496.           Anzahl der Frames, die pro Sekunde gezeichnet werden sollen,
  497.           nachdem das System mit pOS_StartSGOS gestartet wurde.
  498.  
  499.         SGOSTAG_Priority (SBYTE)
  500.           (Default 0)
  501.           Priorität mit welcher der BackgroundTask bei pOS_StartSGOS()
  502.           gestartet wird.
  503.  
  504.    RESULT
  505.         info - Zeiger auf die initialisiert pOS_SGOInfo-Struktur. Diese
  506.                MUSS mit pOS_DeleteSGOInfo() wieder freigegeben werden.
  507.  
  508.    SEE ALSO
  509.         pOS_CreateSGOInfo()
  510.  
  511. sgos.library/pOS_DeleteSGObject
  512.  
  513.    NAME
  514.         pOS_DeleteSGObject -- Entfernt ein Objekt aus dem Speicher
  515.  
  516.    SYNOPSIS
  517.         pOS_DeleteSGObject( obj );
  518.                            _R_A0
  519.  
  520.         VOID pOS_DeleteSGOInfo(pOS_SGObject*);
  521.  
  522.    FUNCTION
  523.         Alle von pOS_CreateSGObject() erzeugten Daten werden freigegeben.
  524.         ACHTUNG: Falls das Objekt zum Zeitpunkt des Entfernens sichtbar
  525.                  ist, MUSS pOS_RemoveSGObject() benutzt werden, damit
  526.                  es auch aus dem Window entfernt wird.
  527.  
  528.  
  529.    INPUTS
  530.         obj - Das mit pOS_CreateSGObject() bzw. pOS_CloneSGObject()
  531.               erzeugte Grafikobjekt.
  532.  
  533.    SEE ALSO
  534.         pOS_CreateSGObject(),pOS_CloneSGObject()
  535.  
  536. sgos.library/pOS_DeleteSGOInfo
  537.  
  538.    NAME
  539.         pOS_DeleteSGOInfo -- Löschen der gesamten Grafik-Objekt-Systems
  540.  
  541.    SYNOPSIS
  542.         pOS_DeleteSGOInfo( info );
  543.                           _R_A0
  544.  
  545.         VOID pOS_DeleteSGOInfo(pOS_SGOInfo*);
  546.  
  547.    FUNCTION
  548.         Es werden alle allokierten Resourcen freigegeben. Dazu gehören
  549.         auch Grafikobjekt, die sich noch in der Aktiv- bzw. Inaktivliste
  550.         befinden.
  551.  
  552.    INPUTS
  553.         info - Zeiger auf Info-Struktur
  554.  
  555.    SEE ALSO
  556.         pOS_CreateSGOInfo()
  557.  
  558. sgos.library/pOS_DrawSGOS
  559.  
  560.    NAME
  561.         pOS_DrawSGOS -- Zeichnen aller Grafikobjekte des Systems
  562.  
  563.    SYNOPSIS
  564.         pOS_DrawSGOS( info, mode );
  565.                      _R_A0  _R_D0
  566.  
  567.         VOID pOS_DrawSGOS(pOS_SGOInfo*,ULONG);
  568.  
  569.    FUNCTION
  570.         Alle Grafikobjekt im System werden gezeichnet.
  571.  
  572.    INPUTS
  573.         info - Zeiger auf Info-Struktur
  574.         mode - Mode mit welchem gezeichnet werden soll (pOS_SGOSDrawModes)
  575.  
  576.            SGOSDM_Normal  - alle aktiven Objekte des Systems werden
  577.                             bewegt und neu gezeichnet
  578.  
  579.            SGOSDM_Refresh - alle aktiven Objekte werden in ihrem
  580.                             derzeitigem Zustand neu gezeichnet. Es wird
  581.                             also keine Bewegungs- bzw. Animationsfunktion
  582.                             aufgerufen.
  583.  
  584.    SEE ALSO
  585.         pOS_StartSGOS(),pOS_StopSGOS()
  586.  
  587. sgos.library/pOS_InactivateSGObject
  588.  
  589.    NAME
  590.         pOS_InactivateSGObject -- Inaktiviert ein aktives Objekt
  591.  
  592.    SYNOPSIS
  593.         pOS_InactivateSGObject( obj );
  594.                                _R_A0
  595.  
  596.         VOID pOS_InactivateSGObject(pOS_SGObject*);
  597.  
  598.    FUNCTION
  599.         Das Grafikobjekt wird aus der Aktivliste in die Inaktivliste
  600.         überführt.
  601.         Es wird auch aus dem sichtbaren Bereich entfernt.
  602.  
  603.    INPUTS
  604.         obj - das zu inaktivierende Objekt
  605.  
  606.    SEE ALSO
  607.         pOS_ActivateSGObject()
  608.  
  609. sgos.library/pOS_LockSGOInfo
  610.  
  611.    NAME
  612.         pOS_LockSGOInfo -- Sperrt das laufende System
  613.  
  614.    SYNOPSIS
  615.         pOS_LockSGOInfo( info );
  616.                         _R_A0
  617.  
  618.         VOID pOS_LockSGOInfo(pOS_SGOInfo*);
  619.  
  620.    FUNCTION
  621.         Sperrt das laufende System, so daß auf die Objekt zugegriffen
  622.         werden kann (z.B. Objektflags ändern).
  623.  
  624.    INPUTS
  625.         info - Zeiger auf zu sperrende pOS_SGOInfo
  626.  
  627.    SEE ALSO
  628.         pOS_UnlockSGOInfo()
  629.  
  630. sgos.library/pOS_RemoveSGObject
  631.  
  632.    NAME
  633.         pOS_RemoveSGObject -- das aktive Objekt wird aus dem System
  634.                               entfernt
  635.  
  636.    SYNOPSIS
  637.         pOS_RemoveSGObject( obj );
  638.                            _R_A0
  639.  
  640.         VOID pOS_RemoveSGObject(pOS_SGObject*);
  641.  
  642.    FUNCTION
  643.         Setzt das SGOSF_Delete. Beim nächsten Zeichnen wird das Objekt
  644.         aus dem sichtbaren Bereich entfernt und mit pOS_DeleteSGObject()
  645.         gelöscht.
  646.  
  647.    INPUTS
  648.         obj - zu entfernendes Objekt
  649.  
  650.    SEE ALSO
  651.         pOS_DeleteSGObject()
  652.  
  653. sgos.library/pOS_SetSGObjectGfxMap
  654.  
  655.    NAME
  656.         pOS_SetSGObjectGfxMap -- Setzt neue GfxMap
  657.  
  658.    SYNOPSIS
  659.         oldMap = pOS_SetSGObjectGfxMap( obj , newMap );
  660.         _R_D0                          _R_A0  _R_A1
  661.  
  662.         pOS_GfxMap* pOS_SetSGObjectGfxMap(pOS_SGObject*,pOS_GfxMap*);
  663.  
  664.    FUNCTION
  665.         Setzt neue GfxMap. Beim nächsten Zeichendurchlauf wird diese
  666.         Map verwendet.
  667.  
  668.         ACHTUNG: Die alte GfxMap MUSS mit SGOSTAG_GfxMap übergeben worden
  669.                  sein. Es kann nur eine GfxMap ausgetauscht werden,
  670.                  die auch zuvor von außen gesetzt wurde.
  671.                  Die neue GfxMap MUSS ebenfalls eine FRIEND-Map sein.
  672.  
  673.    INPUTS
  674.         obj    - das Objekt
  675.         newMap - Zeiger auf neue, FRIEND GfxMap
  676.  
  677.    RESULT
  678.         oldMap - die alte GfxMap
  679.  
  680.    SEE ALSO
  681.         pOS_SetSGObjectMask()
  682.  
  683. sgos.library/pOS_SetSGObjectMask
  684.  
  685.    NAME
  686.         pOS_SetSGObjectMask -- Setzt neue Stanzmaske
  687.  
  688.    SYNOPSIS
  689.         oldMask = pOS_SetSGObjectMask( obj , newMask );
  690.         _R_D0                         _R_A0  _R_A1
  691.  
  692.         pOS_GfxMap* pOS_SetSGObjectMask(pOS_SGObject*,pOS_GfxMap*);
  693.  
  694.    FUNCTION
  695.         Setzt neue Masken-GfxMap. Beim nächsten Zeichendurchlauf wird
  696.         diese Map verwendet.
  697.  
  698.         ACHTUNG: Die alte Maske MUSS per SGOSTAG_Mask übergeben worden
  699.                  sein. Es kann nur eine Maske ausgetauscht werden,
  700.                  die auch zuvor von außen gesetzt wurde.
  701.                  Die neue Maske MUSS ebenfalls eine FRIEND-Map sein.
  702.  
  703.    INPUTS
  704.         obj     - das Objekt
  705.         newMask - Zeiger auf neue, FRIEND Masken-GfxMap
  706.  
  707.    RESULT
  708.         oldMask - die alte Masken-GfxMap
  709.  
  710.    SEE ALSO
  711.         pOS_SetSGObjectGfxMap()
  712.  
  713. sgos.library/pOS_StartSGOS
  714.  
  715.    NAME
  716.         pOS_StartSGOS -- Startet zyklisches Zeichnen
  717.  
  718.    SYNOPSIS
  719.         success = pOS_StartSGOS( info );
  720.                                 _R_A0
  721.  
  722.         BOOL pOS_StartSGOS(pOS_SGOInfo*);
  723.  
  724.    FUNCTION
  725.         pOS_StartSGOS() installiert einen BackgroundTask, welcher
  726.         SGOSTAG_FramesPerSec mal pro Sekunde pOS_SGOSDraw() aufruft.
  727.  
  728.    INPUTS
  729.         info - Zeiger auf zu startende pOS_SGOInfo
  730.  
  731.    RESULT
  732.         success - TRUE, wenn der BachgroundTask erzeugt werden konnte
  733.                   FALSE in Fehlerfall
  734.  
  735.    SEE ALSO
  736.         pOS_StopSGOS()
  737.  
  738. sgos.library/pOS_StopSGOS
  739.  
  740.    NAME
  741.         pOS_StopSGOS -- Beendet BackgroundZeichenTask
  742.  
  743.    SYNOPSIS
  744.         pOS_StopSGOS( info );
  745.                      _R_A0
  746.  
  747.         VOID pOS_StopSGOS(pOS_SGOInfo*);
  748.  
  749.    FUNCTION
  750.         Beendet den mit pOS_StartSGOS() installierten BackgroundTask.
  751.  
  752.    INPUTS
  753.         info - Zeiger auf zu stopende pOS_SGOInfo
  754.  
  755.    SEE ALSO
  756.         pOS_StartSGOS()
  757.  
  758. sgos.library/pOS_UnlockSGOInfo
  759.  
  760.    NAME
  761.         pOS_UnlockSGOInfo -- Entsperren des Systems
  762.  
  763.    SYNOPSIS
  764.         pOS_UnlockSGOInfo( info );
  765.                           _R_A0
  766.  
  767.         VOID pOS_UnlockSGOInfo(_R_A0 pOS_SGOInfo*);
  768.  
  769.    FUNCTION
  770.         Löst die mit pOS_LockSGOInfo() gesetzte Sperre.
  771.  
  772.    INPUTS
  773.         info - zu entsperrende pOS_SGOInfo
  774.  
  775.    SEE ALSO
  776.         pOS_LockSGOInfo()
  777.  
  778.  
  779.