İkili Raster İşlemleri
Bu bölümde, GetROP2 ve SetROP2 işlevleri tarafından kullanılan ikili raster-işlem kodları listelenir. Raster işlem kodları, GDI'nin seçilen kalemdeki bitleri hedef bit eşlem içindeki bitlerle nasıl birleştirildiğini tanımlar.
Her raster-operation kodu, seçilen kalemdeki piksellerin ve hedef bit eşlem değerlerinin birleştirildiği bir Boole işlemini temsil eder. Bu işlemlerde kullanılan iki işlenen aşağıdadır.
Işlenen | Anlam |
---|---|
P | Seçili kalem |
D | Hedef bit eşlem |
Bu işlemlerde kullanılan Boole işleçleri aşağıdadır.
Operatör | Anlam |
---|---|
a | Bit Düzeyinde VE |
n | Bit Düzeyinde DEĞİl (ters) |
o | Bit Düzeyinde OR |
x | Bit düzeyinde özel OR (XOR) |
Tüm Boole işlemleri Ters Lehçe gösteriminde sunulur. Örneğin, aşağıdaki işlem hedef bit eşlemdeki piksellerin değerlerini kalem ve seçili fırçanın piksel değerlerinin bir bileşimiyle değiştirir:
DPo
Her raster-operation kodu, yüksek sıralı sözcüğü Boole işlem dizini olan ve düşük sıralı sözcüğü işlem kodu olan 32 bitlik bir tamsayıdır. 16 bit işlem dizini, iki parametredeki Boole işleminden kaynaklanan tüm olası sonuçları temsil eden sıfır genişletilmiş bir 8 bit değerdir (bu örnekte kalem ve hedef değerler). Örneğin, DPo ve DPan işlemleri için işlem dizinleri aşağıdaki listede gösterilir.
P | D | DPo | Dpan |
---|---|---|---|
0 | 0 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 |
Aşağıdaki listede çizim modları ve temsil ettikleri Boole işlemleri özetlenmiştir.
Raster işlemi | Boole işlemi |
---|---|
R2_BLACK | 0 |
R2_COPYPEN | P |
R2_MASKNOTPEN | DPna |
R2_MASKPEN | Dpa |
R2_MASKPENNOT | PDna |
R2_MERGENOTPEN | DPno |
R2_MERGEPEN | DPo |
R2_MERGEPENNOT | PDno |
R2_NOP | D |
R2_NOT | Dn |
R2_NOTCOPYPEN | Pn |
R2_NOTMASKPEN | DPan |
R2_NOTMERGEPEN | DPon |
R2_NOTXORPEN | DPxn |
R2_WHITE | 1 |
R2_XORPEN | DPx |
Tek renkli bir cihaz için GDI sıfır değerini siyaha, 1 değerini beyaza eşler. Bir uygulama kullanılabilir ikili raster işlemlerini kullanarak beyaz bir hedefe siyah kalemle çizim yapmaya çalışırsa, aşağıdaki sonuçlar oluşur.
Raster işlemi | Sonuç |
---|---|
R2_BLACK | Görünür siyah çizgi |
R2_COPYPEN | Görünür siyah çizgi |
R2_MASKNOTPEN | Görünür çizgi yok |
R2_MASKPEN | Görünür siyah çizgi |
R2_MASKPENNOT | Görünür siyah çizgi |
R2_MERGENOTPEN | Görünür çizgi yok |
R2_MERGEPEN | Görünür siyah çizgi |
R2_MERGEPENNOT | Görünür siyah çizgi |
R2_NOP | Görünür çizgi yok |
R2_NOT | Görünür siyah çizgi |
R2_NOTCOPYPEN | Görünür çizgi yok |
R2_NOTMASKPEN | Görünür çizgi yok |
R2_NOTMERGEPEN | Görünür siyah çizgi |
R2_NOTXORPEN | Görünür siyah çizgi |
R2_WHITE | Görünür çizgi yok |
R2_XORPEN | Görünür çizgi yok |
Bir renk cihazı için GDI, kalemin ve hedefin renklerini göstermek için RGB değerlerini kullanır. RGB renk değeri, her biri belirtilen rengin yoğunluğunu belirten kırmızı, yeşil ve mavi renk alanı içeren uzun bir tamsayıdır. Yoğunluklar 0 ile 255 arasında değişir. Değerler, uzun tamsayının üç düşük sıralı bayt cinsinden paketlenir. Kalemin rengi her zaman düz bir renktir, ancak hedefin rengi iki veya üç rengin karışımı olabilir. Bir uygulama kullanılabilir ikili raster işlemlerini kullanarak mavi bir hedefe beyaz kalemle çizim yapmaya çalışırsa, aşağıdaki sonuçlar oluşur.
Raster işlemi | Sonuç |
---|---|
R2_BLACK | Görünür siyah çizgi |
R2_COPYPEN | Görünür beyaz çizgi |
R2_MASKNOTPEN | Görünür siyah çizgi |
R2_MASKPEN | Görünmez mavi çizgi |
R2_MASKPENNOT | Görünür kırmızı/yeşil çizgi |
R2_MERGENOTPEN | Görünmez mavi çizgi |
R2_MERGEPEN | Görünür beyaz çizgi |
R2_MERGEPENNOT | Görünür beyaz çizgi |
R2_NOP | Görünmez mavi çizgi |
R2_NOT | Görünür kırmızı/yeşil çizgi |
R2_NOTCOPYPEN | Görünür siyah çizgi |
R2_NOTMASKPEN | Görünür kırmızı/yeşil çizgi |
R2_NOTMERGEPEN | Görünür siyah çizgi |
R2_NOTXORPEN | Görünmez mavi çizgi |
R2_WHITE | Görünür beyaz çizgi |
R2_XORPEN | Görünür kırmızı/yeşil çizgi |