Plan 9: Remembering Winamp Skins
Recreating Winamp-style media player skins. Change appearance of an application without recompiling. Shape applications in non-rectangular form e.g. rounded corners or eyes. Application code and assets are in /sys/src/cmd/skin/ directory. Background Sprite sheet (buttons) Shape Mask (An image used as a mask - white is visible and black is invisible) API int setwindowmask(Image*, Image*, Point); Lessonts Learnt libmemlayer treats every layer as opaque. A window covers what is behind it, and the save area holds only the pixels it hides. Real translucency means compositing a layer against the layers behind it on every draw, and redrawing it whenever anything behind it changes. Code https://gitlab.com/atamariya/plan9front