#ifndef __INC_POS_PROTO_PLAYER2_H
#define __INC_POS_PROTO_PLAYER2_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>pLayer2.h<<   13 Feb 1997    09:52:02 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PEXEC_LIST_H
#include <pExec/List.h>
#endif



#ifdef __cplusplus
extern "C" {
#endif

/*------ Region --------------------------------------------------------*/
VOID pOS_ConstructRegion(_R_A0 struct pOS_Region*);
VOID pOS_DestructRegion(_R_A0 struct pOS_Region*);
__ARID__ struct pOS_Region* pOS_CreateRegion(VOID);
VOID pOS_DeleteRegion(_R_A0 __ARID__ struct pOS_Region*);
BOOL pOS_OrRectRegionILst(_R_A0 struct pOS_Region*,_R_A1 const struct pOS_Rectangle*,_R_A2 struct pOS_List* hpList);
BOOL pOS_OrRectRegion(_R_A0 struct pOS_Region*,_R_A1 const struct pOS_Rectangle*);
BOOL pOS_OrRegionRegion(_R_A0 const struct pOS_Region*,_R_A1 struct pOS_Region*);
BOOL pOS_AndRectRegion(_R_A0 struct pOS_Region*,_R_A1 const struct pOS_Rectangle*);
BOOL pOS_AndRegionRegion(_R_A0 const struct pOS_Region*,_R_A1 struct pOS_Region*);
BOOL pOS_NAndRectRegion(_R_A0 struct pOS_Region*,_R_A1 const struct pOS_Rectangle*);
VOID pOS_MoveRegion(_R_A0 struct pOS_Region*,_R_D0 SLONG dx,_R_D1 SLONG dy);
VOID pOS_MoveRegionLst(_R_A0 struct pOS_List*,_R_D0 SLONG dx,_R_D1 SLONG dy);
BOOL pOS_NAndRegionRegion(_R_A0 const struct pOS_Region*,_R_A1 struct pOS_Region*);
BOOL pOS_XOrRectRegion(_R_A0 struct pOS_Region*,_R_A1 const struct pOS_Rectangle*);
VOID pOS_ClearRegion(_R_A0 struct pOS_Region*,_R_A1 struct pOS_List*);
BOOL pOS_AndRegionRegionLst(_R_A0 const struct pOS_List*,_R_A1 const struct pOS_List*,_R_A2 struct pOS_List*,_R_A3 struct pOS_MemPool*);
VOID pOS_NewSizeRegion(_R_A0 struct pOS_Region*);
VOID pOS_SortRegionLst(_R_A0 struct pOS_List*,_R_D0 SLONG dx,_R_D1 SLONG dy);
BOOL pOS_CloneRegion(_R_A0 const struct pOS_List*,_R_A1 struct pOS_Region*);


/*------ Clip --------------------------------------------------------*/
VOID pOS_ConstructLayerInfo(_R_A0 struct pOS_LayerInfo*);
VOID pOS_DestructLayerInfo(_R_A0 struct pOS_LayerInfo*);
__ARID__ struct pOS_LayerInfo* pOS_CreateLayerInfo(VOID);
VOID pOS_DeleteLayerInfo(_R_A0 __ARID__ struct pOS_LayerInfo*);
VOID pOS_ConstructLayer(_R_A0 struct pOS_Layer*);
VOID pOS_DestructLayer(_R_A0 struct pOS_Layer*);
__ARID__ struct pOS_Layer* pOS_CreateBehindLayer(_R_A0 struct pOS_LayerInfo*,_R_A1 struct pOS_GfxMap*,
          _R_A2 const struct pOS_Rectangle*,_R_D0 ULONG,_R_A3 struct pOS_GfxMap* superGfx);
__ARID__ struct pOS_Layer* pOS_CreateUpfrontLayer(_R_A0 struct pOS_LayerInfo*,_R_A1 struct pOS_GfxMap*,
          _R_A2 const struct pOS_Rectangle*,_R_D0 ULONG,_R_A3 struct pOS_GfxMap* superGfx);
BOOL pOS_DeleteLayer(_R_A0 __ARID__ struct pOS_Layer*);
VOID pOS_LockLayer(_R_A0 struct pOS_Layer*);
VOID pOS_UnlockLayer(_R_A0 struct pOS_Layer*);
VOID pOS_LockLayerInfo(_R_A0 struct pOS_LayerInfo*);
VOID pOS_UnlockLayerInfo(_R_A0 struct pOS_LayerInfo*);
BOOL pOS_DamageLayerInfo(_R_A0 struct pOS_LayerInfo*,_R_A1 const struct pOS_Rectangle*,
          _R_A2 const struct pOS_Layer* lyFirst,_R_A3 const struct pOS_Layer* lyLast);
BOOL pOS_DamageLayerInfoList(_R_A0 struct pOS_LayerInfo*,_R_A1 const struct pOS_List*,
          _R_A2 const struct pOS_Layer* lyFirst,_R_A3 const struct pOS_Layer* lyLast);
BOOL pOS_MoveSizeLayer(_R_A0 struct pOS_Layer*,_R_D0 SLONG dx,_R_D1 SLONG dy,_R_D2 SLONG dw,_R_D3 SLONG dh);
struct pOS_Layer* pOS_WhichLayer(_R_A0 struct pOS_LayerInfo*,_R_D0 SLONG x,_R_D1 SLONG y);
VOID pOS_LockLayers(_R_A0 struct pOS_LayerInfo*);
VOID pOS_UnlockLayers(_R_A0 struct pOS_LayerInfo*);
BOOL pOS_BehindLayer(_R_A0 struct pOS_Layer*);
BOOL pOS_UpfrontLayer(_R_A0 struct pOS_Layer*);
VOID pOS_AddLayerHook(_R_A0 struct pOS_Layer*,_R_A1 struct pOS_Callback*,_R_D0 ULONG drawMode);
VOID pOS_RemLayerHook(_R_A0 struct pOS_Layer*,_R_A1 struct pOS_Callback*);
BOOL pOS_BeginLayerUpdate(_R_A0 struct pOS_Layer*,_R_A1 const struct pOS_List*);
BOOL pOS_EndLayerUpdate(_R_A0 struct pOS_Layer*,_R_D0 ULONG);
BOOL pOS_CreateViClipListFrom(_R_A0 struct pOS_LayerInfo*,_R_A1 const struct pOS_Layer *firstLy,
          _R_D0 BOOL breakMode,_R_A2 const struct pOS_Rectangle* refRect);
VOID pOS_DeleteViClipList(_R_A0 struct pOS_LayerInfo*,_R_A1 const struct pOS_Layer *firstLy,_R_D0 BOOL breakMode);
struct pOS_Region *pOS_InstallClipRegion(_R_A0 struct pOS_Layer*,_R_A1 const struct pOS_Region*);
__ARID__ struct pOS_Layer* pOS_CreateChildLayer(_R_A0 struct pOS_GfxMap*,_R_A1 const struct pOS_Rectangle*,
                 _R_D0 ULONG flags,_R_A2 struct pOS_Layer*,_R_A3 struct pOS_GfxMap* superGfx);
BOOL pOS_MoveLayerBehindOf(_R_A0 struct pOS_Layer*,_R_A1 const struct pOS_Layer*);
VOID pOS_ScrollLayer(_R_A0 struct pOS_Layer*,_R_D0 SLONG dx,_R_D1 SLONG dy);
VOID pOS_CopySupToLayer(_R_A0 struct pOS_Layer*);
VOID pOS_CopyLayerToSup(_R_A0 struct pOS_Layer*);
BOOL pOS_LockHideLayer(_R_A0 struct pOS_Layer*,_R_A1 struct pOS_LayerHide*,_R_D0 ULONG);
VOID pOS_UnlockHideLayer(_R_A0 struct pOS_Layer*,_R_A1 struct pOS_LayerHide*);
BOOL pOS_CheckVisibleRect(_R_A0 const struct pOS_Layer*,_R_A1 const struct pOS_Rectangle*);
VOID pOS_AddLayerInfoHook(_R_A0 struct pOS_LayerInfo*,_R_A1 struct pOS_Callback*,_R_D0 ULONG drawMode);
VOID pOS_RemLayerInfoHook(_R_A0 struct pOS_LayerInfo*,_R_A1 struct pOS_Callback*,_R_D0 ULONG drawMode);
BOOL pOS_LockClipLayer(_R_A0 struct pOS_Layer*,_R_A1 struct pOS_LayerClip*,_R_A2 const struct pOS_List*,_R_D0 ULONG mode);
VOID pOS_UnlockClipLayer(_R_A0 struct pOS_Layer*,_R_A1 struct pOS_LayerClip*);
VOID pOS_EraseLayerRect(_R_A0 struct pOS_Layer*,_R_A1 const struct pOS_Rectangle*);
BOOL pOS_GetVisibleRect(_R_A0 const struct pOS_Layer*,_R_A1 struct pOS_Rectangle*);

#ifdef __cplusplus
}
#endif

#endif
