Изменить текущую растровую операцию
#include <gf/gf.h>uint8_t gf_context_set_rop( gf_context_t context,unsigned short rop );
gf
Функция устанавливает растровую операцию (ROP) для последующих операций рисования с данным контекстом рисования. Растровые операции дают дополнительный контроль над тем, как рисуются пиксели в форме побитовых операций с использованием значений исходного цвета, целевого цвета и шаблона. Установить шаблон можно с помощью функции gf_context_set_pattern().
Для восстановления нормального рисования следует установить код GF_ROP_S. |
Graphics Framework поддерживает 256 типов растровых операций.
В таблице ниже перечислены определённые в GF растровые операции.
В имени растровой операции буквы означают следующее:
Основные операции (ROP коды и математическое представление операции):
0x00 → 0 0x01 → ~ ( (D | (P | S) ) ) 0x02 → D & ( ~ (P | S) ) 0x03 → ~ (P | S) 0x04 → S & ( ~ (D | P) ) 0x05 → ~ (D | P) 0x06 → ~ (P | (~ (D ^ S))) 0x07 → ~ (P | (D & S)) 0x08 → S & (D & (~ P)) 0x09 → ~ (P | (D ^ S)) 0x0A → D & (~ P) 0x0B → ~ (P | (S & (~ D))) 0x0C → S & (~ P) 0x0D → ~ (P | (D & (~ S))) 0x0E → ~ (P | (~(D | S))) 0x0F → ~ P 0x10 → P & (~ (D | S)) 0x11 → ~ (D | S) 0x12 → ~ (S | (~ (D ^ P))) 0x13 → ~ (S | (D & P)) 0x14 → ~ (D | (~ (P ^ S))) 0x15 → ~ (D | (P & S)) 0x16 → P ^ (S ^ (D & (~ (P & S)))) 0x17 → ~ (S ^ ((S ^ P) & (D ^ S))) 0x18 → (S ^ P) & (P ^ D) 0x19 → ~ (S ^ (D & (~ (P & S)))) 0x1A → P ^ (D | (S & P)) 0x1B → ~ (S ^ (D & (P ^ S)))) 0x1C → P ^ (S | (D & P))) 0x1D → ~ (D ^ (S & (P ^ D))) 0x1E → P ^ (D | S) 0x1F → ~ (P & (D | S)) 0x20 → D & (P & (~S)) 0x21 → ~ (S | (D ^ P)) 0x22 → D & (~S) 0x23 → ~ (S | (P & (~D))) 0x24 → (S ^ P) & (D ^ S) 0x25 → ~ (P ^ (D & (~ (S & P)))) 0x26 → S ^ (D | (P & S)) 0x27 → S ^ (D | (~ (P ^ S))) 0x28 → D & (P ^ S) 0x29 → ~ (P ^ (S ^ (D | (P & S)))) 0x2A → D & (~ (P & S)) 0x2B → ~ (S ^ ((S ^ P) & (P ^ D)) 0x2C → S ^ (P & (D | S)) 0x2D → P ^ (S | (~D)) 0x2E → P ^ (S | (D ^ P)) 0x2F → ~ (P & (S | (~D))) 0x30 → P & (~ S) 0x31 → ~ (S | (D & (~P))) 0x32 → S ^ (D | (P | S)) 0x33 → ~S 0x34 → S ^ (P | (D & S)) 0x35 → S ^ (P | (~ (D ^ S))) 0x36 → S ^ (D | P) 0x37 → ~ (S & (D | P)) 0x38 → P ^ (S & (D | P))) 0x39 → S ^ (P | (~ D))) 0x3A → S ^ (P | (D ^ S)) 0x3B → ~ (S & (P | (~ D))) 0x3C → P ^ S 0x3D → S ^ (P | (~ (D | S))) 0x3E → S ^ (P | (D & (~ S))) 0x3F → ~ (P & S) 0x40 → P & (S & (~ D)) 0x41 → ~ (D | (P ^ S) 0x42 → (S ^ D) & (P ^ D) 0x43 → ~ (S ^ (P & (~ (D & S)))) 0x44 → S & (~ D) 0x45 → ~ (D | (P & (~ S))) 0x46 → D ^ (S | (P & D))) 0x47 → ~ (P ^ (S & (D ^ P))) 0x48 → S & (D ^ P)) 0x49 → ~ (P ^ (D ^ (S | (P & D)))) 0x4A → D ^ (P & (S | D)) 0x4B → P ^ (D | (~ S)) 0x4C → S & (~ (D & P)) 0x4D → ~ (S ^ ((S ^ P) | (D ^ S))) 0x4E → P ^ (D | (S ^ P)) 0x4F → ~ (P & (D | (~S))) 0x50 → (~ D) & P 0x51 → ~ (D | (S & (~P))) 0x52 → D ^ (P | (S & D)) 0x53 → ~ (S ^ (P & (D ^ S))) 0x54 → ~ (D | (~ (P | S))) 0x55 → ~ D 0x56 → D ^ (P | S) 0x57 → ~ (D & (P | S)) 0x58 → P ^ (D & (S | P)) 0x59 → D ^ (P | (~ S)) 0x5A → D ^ P 0x5B → D ^ (P | (~ (S | D))) 0x5C → D ^ (P | (S ^ D)) 0x5D → ~ (D & (P | (~ S))) 0x5E → D ^ (P | (S & (~ D))) 0x5F → ~ (D & P) 0x60 → P & (D ^ S) 0x61 → ~ (D ^ (S ^ (P | (D & S)))) 0x62 → D ^ (S & (P | D)) 0x63 → S ^ (D | (~ P)) 0x64 → S ^ (D & (P | S)) 0x65 → D ^ (S | (~ P)) 0x66 → D ^ S 0x67 → S ^ (D | (~ (P | S))) 0x68 → ~ (D ^ (S ^ (P | (~ (D | S))))) 0x69 → ~ (P ^ (D ^ S)) 0x6A → D ^ (P & S) 0x6B → ~ (P ^ (S ^ (D & (P | S)))) 0x6C → S ^ (D & P) 0x6D → ~ (P ^ (D ^ (S & (P | D)))) 0x6E → S ^ (D & (P | (~ S))) 0x6F → ~ (P & (~ (D ^ S))) 0x70 → P & (~ (D & S)) 0x71 → ~ (S ^ ((S ^ D) & (P ^ D))) 0x72 → S ^ (D | (P ^ S)) 0x73 → ~ (S & (D | (~P))) 0x74 → D ^ (S | (P ^ D)) 0x75 → ~ (D & (S | (~ P))) 0x76 → S ^ (D | (P & (~ S))) 0x77 → ~ (D & S) 0x78 → P ^ (D & S) 0x79 → ~ (D ^ (S ^ (P & (D | S)))) 0x7A → D ^ (P & (S | (~ D))) 0x7B → ~ (S & (~ (D ^ P))) 0x7C → S ^ (P & (D | (~ S))) 0x7D → ~ (D & (~ (P ^ S))) 0x7E → (S ^ P) | (D ^ S) 0x7F → ~ (D & (P & S)) 0x80 → D & (P & S) 0x81 → ~ ((P ^ S) | (D ^ S)) 0x82 → D & (~ (P ^ S)) 0x83 → ~ (S ^ (P & (D | (~ S)))) 0x84 → S & (~ (D ^ P)) 0x85 → ~ (P ^ (D & (S | (~ P)))) 0x86 → D ^ (S ^ (P & (D | S))) 0x87 → ~ (P ^ (D & S)) 0x88 → D & S 0x89 → ~ (S ^ (D | (P & (~ S)))) 0x8A → D & (S | (~ P)) 0x8B → ~ (D ^ (S | (P ^ D))) 0x8C → S & (D | (~ P)) 0x8D → ~ (S ^ (D | (P ^ S))) 0x8E → S ^ ((S ^ D) & (P ^ D)) 0x8F → ~ (P & (~ (D & S))) 0x90 → P & (~ (D ^ S)) 0x91 → ~ (S ^ (D & (P | (~ S)))) 0x92 → D ^ (P ^ (S & (D | P))) 0x93 → ~ (S ^ (P & D)) 0x94 → P ^ (S ^ (D & (P | S))) 0x95 → ~ (D ^ (P & S)) 0x96 → D ^ (P ^ S) 0x97 → P ^ (S ^ (D | (~ (P | S)))) 0x98 → ~ (S ^ (D | (~ (P | S)))) 0x99 → ~ (D ^ S) 0x9A → D ^ (P & (~ S)) 0x9B → ~ (S ^ (D & (P | S))) 0x9C → S ^ (P & (~ D)) 0x9D → ~ (D ^ (S & (P | D))) 0x9E → D ^ (S ^ (P | (D & S))) 0x9F → ~ (P & (D ^ S)) 0xA0 → (D & P) 0xA1 → ~ (P ^ (D | (S & (~ P)))) 0xA2 → D & (P | (~ S)) 0xA3 → ~ (D ^ (P | (S ^ D))) 0xA4 → ~ (P ^ (D | (~ (S | P)))) 0xA5 → ~ (P ^ D) 0xA6 → D ^ (S & (~ P)) 0xA7 → ~ (P ^ (D & (S | P))) 0xA8 → D & (P | S) 0xA9 → ~ (D ^ (P | S)) 0xAA → D 0xAB → D | (~ (P | S)) 0xAC → S ^ (P & (D ^ S)) 0xAD → ~ (D ^ (P | (S & D))) 0xAE → D | (S & (~ P)) 0xAF → D | (~ P) 0xB0 → P & (D | (~ S)) 0xB1 → ~ (P ^ (D | (S ^ P))) 0xB2 → S ^ ((S ^ P) | (D ^ S)) 0xB3 → ~ (S & (~ (D & P))) 0xB4 → P ^ (S & (~ D)) 0xB5 → ~ (D ^ (P & (S | D))) 0xB6 → D ^ (P ^ (S | (D & P))) 0xB7 → ~ (S & (D ^ P)) 0xB8 → P ^ (S & (D ^ P)) 0xB9 → ~ (D ^ (S | (P & D))) 0xBA → D | (P & (~ S)) 0xBB → D | (~ S) 0xBC → S ^ (P & (~ (D & S))) 0xBD → ~ ((S ^ D) & (P ^ D)) 0xBE → D | (P ^ S) 0xBF → D | (~ (P & S)) 0xC0 → P & S 0xC1 → ~ (S ^ (P | (D & (~ S)))) 0xC2 → ~ (S ^ (P | (~ (D | S)))) 0xC3 → ~ (P ^ S) 0xC4 → S & (P | (~ D)) 0xC5 → ~ (S ^ (P | (D ^ S))) 0xC6 → S ^ (D & (~ P)) 0xC7 → ~ (P ^ (S & (D | P))) 0xC8 → S & (D | P) 0xC9 → ~ (S ^ (P | D)) 0xCA → D ^ (P & (S ^ D)) 0xCB → ~ (S ^ (P | (D & S))) 0xCC → S 0xCD → S | (~ (D | P)) 0xCE → S | (D & (~ P)) 0xCF → S | (~ P) 0xD0 → P & (S | (~ D)) 0xD1 → ~ (P ^ (S | (D ^ P))) 0xD2 → P ^ (D & (~ S)) 0xD3 → ~ (S ^ (P & (D | S))) 0xD4 → S ^ ((S ^ P) & (P ^ D)) 0xD5 → ~ (D & (~ (P & S))) 0xD6 → P ^ (S ^ (D | (P & S))) 0xD7 → ~ (D & (P ^ S)) 0xD8 → P ^ (D & (S ^ P)) 0xD9 → ~ (S ^ (D | (P & S))) 0xDA → D ^ (P & (~ (S & D))) 0xDB → ~ ((S ^ P) & (D ^ S)) 0xDC → S | (P & (~ D)) 0xDD → S | (~ D) 0xDE → S | (D ^ P) 0xDF → S | (~ (D & P)) 0xE0 → P & (D | S) 0xE1 → ~ (P ^ (D | S)) 0xE2 → D ^ (S & (P ^ D)) 0xE3 → ~ (P ^ (S | (D & P))) 0xE4 → S ^ (D & (P ^ S)) 0xE5 → ~ (P ^ (D | (S & P))) 0xE6 → S ^ (D & (~ (P & S))) 0xE7 → ~ ((S ^ P) & (D ^ P)) 0xE8 → S ^ ((S ^ P) & (D ^ S)) 0xE9 → ~ (D ^ (S ^ (P & (~ (D & S))))) 0xEA → D | (P & S) 0xEB → D | (~ (P ^ S)) 0xEC → S | (D & P) 0xED → S | (~ (D ^ P)) 0xEE → D | S 0xEF → S | (D | (~ P)) 0xF0 → P 0xF1 → P | (~ (D | S)) 0xF2 → P | (D & (~ S)) 0xF3 → P | (~ S) 0xF4 → P | (S & (~ D)) 0xF5 → P | (~ D) 0xF6 → P | (D ^ S) 0xF7 → P | (~ (D & S)) 0xF8 → P | (D & S) 0xF9 → P | (~ (D ^ S)) 0xFA → D | P 0xFB → D | (P | (~ S)) 0xFC → P | S 0xFD → P | (S | (~ D)) 0xFE → D | (P | S) 0xFF → 1 Дополнительные макросы:
GF_ROP_ZERO GF_ROP_ONE GF_ROP_S GF_ROP_Sn GF_ROP_P GF_ROP_Pn GF_ROP_D GF_ROP_Dn GF_ROP_DSx GF_ROP_DPx GF_ROP_DSa GF_ROP_DPa GF_ROP_DSo GF_ROP_DPo GF_ROP_SRCCOPY GF_ROP_SRCXOR GF_ROP_SRCAND GF_ROP_SRCOR Предыдущий ROP код или 0 в случае, если значение параметра context равно NULL.
Графическая подсистема ЗОСРВ «Нейтрино», Graphics Framework
Предыдущий раздел: GF API