@DATABASE "pLayer/Clip.h"
@MASTER   "Work2:AD/IInc/pLayer/Clip.h"
@REMARK   This file was created by ADtoHT 2.0 on 11-Mär-97  13:35:17
@REMARK   Do not edit
@REMARK   ADtoHT is © 1993-1995 Christian Stieber

@NODE MAIN "pLayer/Clip.h"
@TOC "__pOS_Dev.guide/MAIN"

@{"pLayer/Clip.h" LINK File}


@{b}Structures@{ub}

@{"pOS_ClipRect" LINK "pLayer/Clip.h/File" 28}       @{"pOS_Layer" LINK "pLayer/Clip.h/File" 63}      @{"pOS_LayerClip" LINK "pLayer/Clip.h/File" 52}  @{"pOS_LayerHide" LINK "pLayer/Clip.h/File" 40}
@{"pOS_LayerHookData" LINK "pLayer/Clip.h/File" 119}  @{"pOS_LayerInfo" LINK "pLayer/Clip.h/File" 101}  

@ENDNODE
@NODE File "pLayer/Clip.h"
#ifndef __INC_POS_PLAYER_CLIP_H
#define __INC_POS_PLAYER_CLIP_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>Clip.h<<   24 Jan 1997    09:38:26 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PEXEC_LIST_H
#include <@{"pExec/List.h" LINK "pExec/List.h/File"}>
#endif
#ifndef __INC_POS_PLAYER_RECT_H
#include <@{"pLayer/Rect.h" LINK "pLayer/Rect.h/File"}>
#endif
#ifndef __INC_POS_PLAYER_REGION_H
#include <@{"pLayer/Region.h" LINK "pLayer/Region.h/File"}>
#endif
#ifndef __INC_POS_PEXEC_SEMA_H
#include <@{"pExec/Sema.h" LINK "pExec/Sema.h/File"}>
#endif



/*----------------------------------
-----------------------------------*/
struct pOS_ClipRect
{
  @{"struct pOS_Node" LINK "pExec/List.h/File" 18}      cr_Node;       /* kompatiebel zu (@{"struct pOS_RegionRectangle" LINK "pLayer/Region.h/File" 21}) */
  @{"struct pOS_Rectangle" LINK "pLayer/Rect.h/File" 17} cr_Bounds;     /* bounds of cliprect */
  @{"struct pOS_GfxMap" LINK "pGFX/GfxMap.h/File" 18}   *cr_GfxMap;     /* */
};



/*----------------------------------
@{"pOS_LockHideLayer()" LINK "pLayerD/pOS_LockHideLayer"}, @{"pOS_UnlockHideLayer()" LINK "pLayerD/pOS_UnlockHideLayer"}
-----------------------------------*/
struct pOS_LayerHide
{
  @{"struct pOS_List" LINK "pExec/List.h/File" 26}          lyh_ClipList;
  const @{"struct pOS_Region" LINK "pLayer/Region.h/File" 30} *lyh_Region;
  @{"UBYTE" LINK "pExec/Types.h/File" 95}                    lyh_Mode;  /* 0x01 = LAYERF_InRefMode, 0x02 = Quick */
  @{"UBYTE" LINK "pExec/Types.h/File" 95}                    lyh_Cnt;
};



/*----------------------------------
-----------------------------------*/
struct pOS_LayerClip
{
  @{"struct pOS_LayerHide" LINK File 40} lyc_Hide;
  @{"UBYTE" LINK "pExec/Types.h/File" 95}                lyc_Reserved[32];
};




/*----------------------------------
-----------------------------------*/
struct pOS_Layer
{
  @{"struct pOS_ExNode" LINK "pExec/List.h/File" 37}     ly_Node;
  struct pOS_Layer     *ly_Parent;
  struct pOS_Layer     *ly_Next;        /* nur im Child-Verbund */
  struct pOS_Layer     *ly_Child;       /* First Child */
  @{"struct pOS_Semaphore" LINK "pExec/Sema.h/File" 36}  ly_Lock;
  @{"struct pOS_Rectangle" LINK "pLayer/Rect.h/File" 17}  ly_Bounds;
  @{"struct pOS_Rectangle" LINK "pLayer/Rect.h/File" 17}  ly_ChildBounds; /* echte Maße, ohne das Clipping von Parent */
  @{"struct pOS_Region" LINK "pLayer/Region.h/File" 30}     ly_DamageList;  /* list of rectangles to refresh through */
  @{"struct pOS_LayerInfo" LINK File 101} *ly_LayerInfo;   /* (home) points to head of the list */
  @{"ULONG" LINK "pExec/Types.h/File" 91}                 ly_Flags;       /* (enum pOS_LayerFlags) */
  @{"struct pOS_RastPort" LINK "pGFX/RastPort.h/File" 18}  *ly_RP;
  @{"struct pOS_List" LINK "pExec/List.h/File" 26}       ly_VisClipList; /* List of visible clips */
  @{"struct pOS_List" LINK "pExec/List.h/File" 26}       ly_SupClipList; /* List of super clips */
  @{"SWORD" LINK "pExec/Types.h/File" 92}                 ly_ScrollX;     /* wird zu jeder Zeichenoperation addiert */
  @{"SWORD" LINK "pExec/Types.h/File" 92}                 ly_ScrollY;
  @{"struct pOS_GfxMap" LINK "pGFX/GfxMap.h/File" 18}    *ly_SupGfxMap;
  @{"struct pOS_Window" LINK "pScreen/Window.h/File" 18}    *ly_Win;         /* home link for intui (private) */

/** SYSTEM-PRIVATE-DATAS **/
};


/*\\
*** Nach BeginRefresh() ist in ly_Flags das LAYERF_InRefMode-Bit gesetzt.
*** Gleichzeitig zeigt das LAYERF_DamageLst-Bit, daß die ly_DamageList-List
*** mit ly_DamUseList getauscht wurde. Progs, die auf diese Daten zurückgreifen,
*** müssen ly_DamUseList verwenden, da zur gleichen Zeit ly_DamageList genullt wird.
\\*/






/*----------------------------------
-----------------------------------*/
struct pOS_LayerInfo
{
  @{"struct pOS_ExNode" LINK "pExec/List.h/File" 37}    li_Node;
  @{"struct pOS_ExList" LINK "pExec/List.h/File" 50}    li_List;   /* (pOS_Layer*) List */
  @{"struct pOS_Semaphore" LINK "pExec/Sema.h/File" 36} li_Lock;
  @{"struct pOS_GfxMap" LINK "pGFX/GfxMap.h/File" 18}   *li_GfxMap;
  @{"UWORD" LINK "pExec/Types.h/File" 93}                li_Flags;

/** SYSTEM-PRIVATE-DATAS **/

};




/*----------------------------------
  @{"BOOL" LINK "pExec/Types.h/File" 99} (*cb_Code)(@{"_R_A0" LINK "pExec/Types.h/File" 28} const pOS_Callback*,@{"_R_A1" LINK "pExec/Types.h/File" 29} const pOS_LayerHookData*);
-----------------------------------*/
struct pOS_LayerHookData
{
  @{"struct pOS_RastPort" LINK "pGFX/RastPort.h/File" 18}  *lyhd_RastPort;
  @{"struct pOS_LayerInfo" LINK File 101} *lyhd_LayerInfo;
  @{"struct pOS_Layer" LINK File 63}     *lyhd_Layer;
  @{"SLONG" LINK "pExec/Types.h/File" 90}                 lyhd_OriginX, lyhd_OriginY;
  @{"struct pOS_Rectangle" LINK "pLayer/Rect.h/File" 17}  lyhd_Bounds;
  @{"UWORD" LINK "pExec/Types.h/File" 93}                 lyhd_Flags;      /* (enum pOS_LayerHookFlags) */
  @{"struct pOS_GfxMap" LINK "pGFX/GfxMap.h/File" 18}    *lyhd_GfxMap;
};


enum pOS_LayerHookFlags /* lyhd_Flags */
{
  LAYERHOOKF_FirstDraw  =0x0001, /* *** erster Durchlauf */
  LAYERHOOKF_Border     =0x0002, /* *** Border zeichnen */
};







enum pOS_LayerFlags /* ly_Flags */
{
  LAYERF_Simple=        0x0001,
  LAYERF_Smart=         0x0002,
  LAYERF_Super=         0x0004,
  LAYERF_NoCLTS=        0x0010,   /* no @{"pOS_CopyLayerToSup()" LINK "pLayerD/pOS_CopyLayerToSup"} */
  LAYERF_DrawInLy=      0x000020, /* es wurde gezeichnet => wichtig für SuperBM */
  LAYERF_Refresh=       0x000080,
  LAYERF_InRefMode=     0x000100, /* Begin-Refresh */
  LAYERF_DamageLst=     0x000200, /* pflegt die Damage-List */
  LAYERF_2thDamLst=     0x000400, /* ly_DamUseList wurde gebildet */
  LAYERF_RembDamLst=    0x000800, /* ly_DamRememberList wird verwendet */
  LAYERF_FixChWidth=    0x001000, /* Kind-Width ist an Parent gebunden */
  LAYERF_FixChHeight=   0x002000, /* Kind-Height ist an Parent gebunden */
  LAYERF_SaveVCList=    0x004000, /* SaveVisClipList ist belegt */
  LAYERF_FixChLeft=     0x008000, /* Kind-Left wird an Parent-Right gebunden */
  LAYERF_FixChTop=      0x010000, /* Kind-Top wird an Parent-Bottom gebunden */
  LAYERF_SzDamgHoriz=   0x020000, /* eine horizontale Größenänderung macht den
                                  ** gesamten Layer ungültig
                                  */
  LAYERF_SzDamgVert=    0x040000, /* =>LAYERF_SzDamgHoriz (vert) */
};



#endif
@ENDNODE
