====== Patterning ====== The pattern is a 32-bit word. ''spr Pattern'' writes it directly; ''spr IPat'' reads a word from an arbitrary byte-aligned local-memory address. Both reset PatOffset to zero. Bit 31 is the first or left-most pattern bit. The current bit is ''(~PatOffset) & 0x1F''. If patterning is enabled, PatOffset advances after every pixel draw, including scissored pixels: PatOffset = (PatOffset != PatLengthM1) ? PatOffset + 1 : 0; [[registers:pixel-engine:pixel_patmode|PatMode]] supplies length−1, enable and opaque bits. A one selects the foreground; a zero selects the background. Transparent patterns leave background pixels unchanged. Opaque patterns use [[registers:pixel-engine:pixel_bgcolor|BGColor]]. Patterning is independent of texture sampling and BitBlt. Parallel drawing supports patterns only left-to-right, with pattern width at least ''8 / sizeof(pixel)''. See [[drawing:parallel|Parallel draw setup]]. [[registers:pixel-engine:pixel_pattern|Pattern]] · [[registers:pixel-engine:pixel_ipat|IPat]] · [[registers:pixel-engine:pixel_patoffset|PatOffset]] Source: [[https://verite.3d32.org/_media/source/v2200spec.pdf#page=34|Technical Spec, p.34]]