amiga-bootcamp/11_libraries/layers.md
Ilia Sharin 21751c0025 docs(amiga): complete AmigaOS 3.1/3.2 developer reference — 172 files across 17 sections
Comprehensive technical documentation covering:
- Hardware: OCS/ECS/AGA custom chip registers, Copper & Blitter deep dives
- Boot sequence: cold boot through startup-sequence
- Binary format: HUNK executable spec, relocation, debug info
- Linking & ABI: .fd files, LVO tables, register calling conventions
- Exec kernel: tasks, interrupts, memory, signals, semaphores
- AmigaDOS: file I/O, FFS/OFS layout, CLI/Shell scripting
- Graphics: planar bitmaps, Copper programming, HAM/EHB modes
- Intuition: screens, windows, IDCMP, BOOPSI
- Devices: trackdisk, SCSI, serial, timer, audio, keyboard
- Libraries: utility, expansion, IFFParse, locale, ARexx
- Networking: bsdsocket API, SANA-II, TCP/IP stack comparison
- Toolchain: GCC, vasm/vlink, SAS/C, NDK, debugging
- Reverse engineering: IDA/Ghidra setup, compiler fingerprints, case studies
- CPU & MMU: 68040/060 emulation libs, PMMU, cache management
- Driver development: SANA-II, Picasso96/RTG, AHI audio

All files include breadcrumb navigation. No local paths or proprietary content.
2026-04-23 12:17:35 -04:00

1.1 KiB

← Home · Libraries

layers.library — Window Clipping Layers

Overview

layers.library provides the clipping and damage-repair infrastructure that Intuition windows are built on. Each window's RastPort is backed by a Layer that manages overlapping regions.


Layer Types

Flag Type Description
LAYERSIMPLE Simple Refresh Application must redraw damaged areas
LAYERSMART Smart Refresh System saves obscured regions
LAYERSUPER Super BitMap Application provides full-size bitmap
LAYERBACKDROP Backdrop Behind all other layers

Key Functions

struct Layer_Info *li = NewLayerInfo();

struct Layer *layer = CreateUpfrontLayer(li, bitmap,
    x1, y1, x2, y2, LAYERSMART, NULL);

/* Lock before drawing: */
LockLayer(0, layer);
/* ... draw into layer->rp ... */
UnlockLayer(layer);

/* Move: */
MoveLayer(0, layer, dx, dy);

/* Resize: */
SizeLayer(0, layer, dw, dh);

/* Cleanup: */
DeleteLayer(0, layer);
DisposeLayerInfo(li);

References

  • NDK39: graphics/layers.h, graphics/clip.h