Bölge (X11)
Xlib’in, birbiriyle örtüşmeyen dikdörtgenler kümesi olarak ifade edilen rastgele bir alan için veri türü; kırpmada, Expose olaylarını toplamada ve nerenin yeniden boyanacağını bulmada kullanılan şey.
Bir bölge XCreateRegion ile boş olarak ya da bir çokgenden başlar, ardından XUnionRectWithRegion ile diğer bölgelerle birleşim, kesişim, fark ve XOR yoluyla oluşturulur. İçeride yatay bantlara dizilmiş bir dikdörtgen listesidir; böylece bin örtüşen kutunun birleşimi, hiçbir şeyin iki kez sayılmadığı tek, derli toplu ve belirsizliksiz bir şekle dönüşür. Klasik kullanım Expose işlemedir: sunucu, açığa çıkan pencerenin görünür her parçası için bir olay gönderir, istemci sayaç sıfıra ulaşana kadar her dikdörtgeni bir bölgeye ekler, bölgeyi XSetRegion ile grafik bağlamının kırpma maskesi yapar ve tam bir kez yeniden boyar. Maskenin dışında kalan her şeyi sunucu atar.
Sunucu aynı yapıyı kendi tarafında, miRegion olarak tutar; Shape, Damage ve XFIXES eklentilerinin konuştuğu da budur: pencere şekli bir bölgedir, hasarlı alan bir bölgedir ve XFIXES istemcilerin dikdörtgen listeleri yerine bölgeleri tel üzerinden göndermesini sağladı. Kod o kadar dayanıklı çıktı ki Cairo’nun altındaki rasterleştirici pixman, sunucunun bölge kodunu dosyanın başında hâlâ DEC’in 1987 telif satırıyla taşımaya devam ediyor.