LAYERS Types Reference¶
Per-function autodoc pages link to these types via the type name (e.g., [List](types-layers.md#list)).
Clickable inner types: inside each struct definition, field types that are themselves structs/unions/enums are clickable hyperlinks to their own definitions.
Contents¶
layers.h¶
clip.h¶
Layer_Info¶
Source: graphics/layers.h
struct Layer_Info
{
struct Layer *top_layer; /* Frontmost layer */
void *resPtr1; /* V45 spare */
void *resPtr2; /* Another V45 spare */
struct ClipRect *FreeClipRects; /* Implements a backing store
* of cliprects to avoid
* frequent re-allocation
* of cliprects. Private.
*/
struct Rectangle bounds; /* clipping bounds of
* this layer info. All layers
* are clipped against this
*/
struct SignalSemaphore Lock; /* Layer_Info lock */
struct MinList gs_Head; /* linked list of all semaphores of all
* layers within this layer info
*/
WORD PrivateReserve3; /* !! Private !! */
void *PrivateReserve4; /* !! Private !! */
UWORD Flags;
BYTE res_count; /* V45 spare, no longer used */
BYTE LockLayersCount; /* Counts # times LockLayers
* has been called
*/
BYTE PrivateReserve5; /* !! Private !! */
BYTE UserClipRectsCount; /* Also private */
struct Hook *BlankHook; /* LayerInfo backfill hook */
void *resPtr5; /* !! Private !! */
};
ClipRect¶
Source: graphics/clip.h
struct ClipRect
{
struct ClipRect *Next; /* roms used to find next ClipRect */
struct ClipRect *reservedlink; /* Currently unused */
LONG obscured; /* If non-zero, this is a backing store
* cliprect that is currently obscured.
* NEW: In V45, this is no longer a
* valid pointer since a cliprect
* can be obscured by more than one
* layer. Just test for zero or non-
* zero, do *NOT* dereference.
*/
struct BitMap *BitMap; /* backing store bitmap if obscured != NULL */
struct Rectangle bounds; /* bounds of this cliprect */
struct ClipRect *vlink; /* Layers private use!!! */
struct Layer_Info *home; /* where this cliprect belongs to.
* If you *MUST* hack in your private
* cliprects, ensure that you set this
* field to NULL. If you don't, layers
* will pool your cliprect and will
* release it when it "feels like".
* For NULL, V40 behaivour is
* re-established.
*/
APTR reserved;
#ifdef NEWCLIPRECTS_1_1
LONG Flags; /* Layers private field for cliprects */
#endif /* MUST be multiple of 8 bytes to buffer */
};
Layer¶
Source: graphics/clip.h
struct Layer
{
struct Layer *front,*back;
struct ClipRect *ClipRect; /* singly linked list of active cliprects */
struct RastPort *rp; /* rastport to draw into. Its layer is me */
struct Rectangle bounds; /* screen bounds of this layer */
struct Layer *nlink; /* new in V45:
* next back layer for display
* reorganization
*/
UWORD priority; /* internal use: on layer front/back move,
* relative priority of the layers.
* Topmost layer has lowest priority.
*/
UWORD Flags; /* see */
struct BitMap *SuperBitMap; /* if non-NULL, superbitmap layer */
struct ClipRect *SuperClipRect; /* super bitmap cliprects if VBitMap != 0*/
/* else damage cliprect list for refresh */
APTR Window; /* Intuition keeps its window here */
WORD Scroll_X,Scroll_Y; /* layer displacement */
struct ClipRect *OnScreen; /* temporary list of on-screen cliprects */
struct ClipRect *OffScreen; /* temporary list of off-screen cliprects */
struct ClipRect *Backup; /* temporary copy of un-damaged clips */
struct ClipRect *SuperSaveClipRects; /* five preallocated super cr's */
struct ClipRect *Undamaged; /* undamaged, un-user clipped version
* of the cliprect, restored on EndUpdate()
*/
struct Layer_Info *LayerInfo; /* points to head of the list */
struct SignalSemaphore Lock; /* access to this layer */
struct Hook *BackFill; /* backfill hook */
ULONG reserved1;
struct Region *ClipRegion; /* user InstallClipRegion()'d region */
struct ClipRect *clipped; /* clipped away by damage list or
* user clip rect
*/
WORD Width,Height; /* system use */
UBYTE reserved2[18]; /* more reserved fields */
struct Region *DamageList; /* list of rectangles to refresh */
};