📄 rop.h
字号:
/* * $QNXLicenseC: * Copyright 2007, 2008, QNX Software Systems. * * Licensed under the Apache License, Version 2.0 (the "License"). You * may not reproduce, modify or distribute this software except in * compliance with the License. You may obtain a copy of the License * at: http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OF ANY KIND, either express or implied. * * This file may contain contributions from others, either as * contributors under the License or as licensors under other terms. * Please review this entire file for other proprietary rights or license * notices, as well as the QNX Development Suite License Guide at * http://licensing.qnx.com/license-guide/ for other information. * $ */#ifndef _GRAPHICS_ROP_H_INCLUDED#define _GRAPHICS_ROP_H_INCLUDED/* * Raster Op Defines * * Reverse Polish Notation Defines of ROPS * This follows Microsofts 256 raster operation * definitions * * D = Dest Bit * S = Source Bit * P = Pattern Bit * o = bitwise or operation * a = bitwise and operation * x = bitwise exclusive or operation * n = bitwise not operation * * Truth Table * P S D ropbit * 0 0 0 0 * 0 0 1 1 * 0 1 0 2 * 0 1 1 3 * 1 0 0 4 * 1 0 1 5 * 1 1 0 6 * 1 1 1 7 * * if the condition in the table is true for * each test turned on then dst bit=1, else 0 * * So: DrawMode CC = Source Copy * if ((conditions 2 | 3 | 6 | 7) == 1) on current bits, dst bit=1, else 0 * DrawMode 66 = S ^ D * if ((conditions 1 | 2 | 5 | 6) == 1) on current bits, dst bit=1, else 0 * DrawMode 03 = ~ (P | S) * if ((conditions 0 | 1) == 1) on current bits, dst bit=1, else 0 * * It's a little confusing at first, but it does make sense once you wrap * your brain around it. * * Name Rop # Operation *-------------------------------------------------------------------------- */#define DrawModeZERO 0x00 /* 0 */#define DrawModeDPSoon 0x01 /* ~ ( (D | (P | S) ) ) */#define DrawModeDPSona 0x02 /* D & ( ~ (P | S) ) */#define DrawModePSon 0x03 /* ~ (P | S) */#define DrawModeSDPona 0x04 /* S & ( ~ (D | P) ) */#define DrawModeDPon 0x05 /* ~ (D | P) */#define DrawModePDSxnon 0x06 /* ~ (P | (~ (D ^ S))) */#define DrawModePDSaon 0x07 /* ~ (P | (D & S)) */#define DrawModeSDPnaa 0x08 /* S & (D & (~ P)) */#define DrawModePDSxon 0x09 /* ~ (P | (D ^ S)) */#define DrawModeDPna 0x0A /* D & (~ P) */#define DrawModePSDnaon 0x0B /* ~ (P | (S & (~ D))) */#define DrawModeSPna 0x0C /* S & (~ P) */#define DrawModePDSnaon 0x0D /* ~ (P | (D & (~ S))) */#define DrawModePDSonon 0x0E /* ~ (P | (~(D | S))) */#define DrawModePn 0x0F /* ~ P */#define DrawModePDSona 0x10 /* P & (~ (D | S)) */#define DrawModeDSon 0x11 /* ~ (D | S) */#define DrawModeSDPxnon 0x12 /* ~ (S | (~ (D ^ P))) */#define DrawModeSDPaon 0x13 /* ~ (S | (D & P)) */#define DrawModeDPSxnon 0x14 /* ~ (D | (~ (P ^ S))) */#define DrawModeDPSaon 0x15 /* ~ (D | (P & S)) */#define DrawModePSDPSanaxx 0x16 /* P ^ (S ^ (D & (~ (P & S)))) */#define DrawModeSSPxDSxaxn 0x17 /* ~ (S ^ ((S ^ P) & (D ^ S))) */#define DrawModeSPxPDxa 0x18 /* (S ^ P) & (P ^ D) */#define DrawModeSDPSanaxn 0x19 /* ~ (S ^ (D & (~ (P & S)))) */#define DrawModePDSPaox 0x1A /* P ^ (D | (S & P)) */#define DrawModeSDPSxaxn 0x1B /* ~ (S ^ (D & (P ^ S)))) */#define DrawModePSDPaox 0x1C /* P ^ (S | (D & P))) */#define DrawModeDSPDxaxn 0x1D /* ~ (D ^ (S & (P ^ D))) */#define DrawModePDSox 0x1E /* P ^ (D | S) */#define DrawModePDSoan 0x1F /* ~ (P & (D | S)) */#define DrawModeDPSnaa 0x20 /* D & (P & (~S)) */#define DrawModeSDPxon 0x21 /* ~ (S | (D ^ P)) */#define DrawModeDSna 0x22 /* D & (~S) */#define DrawModeSPDnaon 0x23 /* ~ (S | (P & (~D))) */#define DrawModeSPxDSxa 0x24 /* (S ^ P) & (D ^ S) */#define DrawModePDSPanaxn 0x25 /* ~ (P ^ (D & (~ (S & P)))) */#define DrawModeSDPSaox 0x26 /* S ^ (D | (P & S)) */#define DrawModeSDPSxnox 0x27 /* S ^ (D | (~ (P ^ S))) */#define DrawModeDPSxa 0x28 /* D & (P ^ S) */#define DrawModePSDPSaoxxn 0x29 /* ~ (P ^ (S ^ (D | (P & S)))) */#define DrawModeDPSana 0x2A /* D & (~ (P & S)) */#define DrawModeSSPxPDxaxn 0x2B /* ~ (S ^ ((S ^ P) & (P ^ D)) */#define DrawModeSPDSoax 0x2C /* S ^ (P & (D | S)) */#define DrawModePSDnox 0x2D /* P ^ (S | (~D)) */#define DrawModePSDPxox 0x2E /* P ^ (S | (D ^ P)) */#define DrawModePSDnoan 0x2F /* ~ (P & (S | (~D))) */#define DrawModePSna 0x30 /* P & (~ S) */#define DrawModeSDPnaon 0x31 /* ~ (S | (D & (~P))) */#define DrawModeSDPSoox 0x32 /* S ^ (D | (P | S)) */#define DrawModeSn 0x33 /* ~S */#define DrawModeSPDSaox 0x34 /* S ^ (P | (D & S)) */#define DrawModeSPDSxnox 0x35 /* S ^ (P | (~ (D ^ S))) */#define DrawModeSDPox 0x36 /* S ^ (D | P) */#define DrawModeSDPoan 0x37 /* ~ (S & (D | P)) */#define DrawModePSDPoax 0x38 /* P ^ (S & (D | P))) */#define DrawModeSPDnox 0x39 /* S ^ (P | (~ D))) */#define DrawModeSPDSxox 0x3A /* S ^ (P | (D ^ S)) */#define DrawModeSPDnoan 0x3B /* ~ (S & (P | (~ D))) */#define DrawModePSx 0x3C /* P ^ S */#define DrawModeSPDSonox 0x3D /* S ^ (P | (~ (D | S))) */#define DrawModeSPDSnaox 0x3E /* S ^ (P | (D & (~ S))) */#define DrawModePSan 0x3F /* ~ (P & S) */#define DrawModePSDnaa 0x40 /* P & (S & (~ D)) */#define DrawModeDPSxon 0x41 /* ~ (D | (P ^ S) */#define DrawModeSDxPDxa 0x42 /* (S ^ D) & (P ^ D) */#define DrawModeSPDSanaxn 0x43 /* ~ (S ^ (P & (~ (D & S)))) */#define DrawModeSDna 0x44 /* S & (~ D) */#define DrawModeDPSnaon 0x45 /* ~ (D | (P & (~ S))) */#define DrawModeDSPDaox 0x46 /* D ^ (S | (P & D))) */#define DrawModePSDPxaxn 0x47 /* ~ (P ^ (S & (D ^ P))) */#define DrawModeSDPxa 0x48 /* S & (D ^ P)) */#define DrawModePDSPDoaxxn 0x49 /* ~ (P ^ (D ^ (S & (P | D)))) */#define DrawModeDPSDoax 0x4A /* D ^ (P & (S | D)) */#define DrawModePDSnox 0x4B /* P ^ (D | (~ S)) */#define DrawModeSDPana 0x4C /* S & (~ (D & P)) */#define DrawModeSSPxDSxoxn 0x4D /* ~ (S ^ ((S ^ P) | (D ^ S))) */#define DrawModePDSPxox 0x4E /* P ^ (D | (S ^ P)) */#define DrawModePDSnoan 0x4F /* ~ (P & (D | (~S))) */#define DrawModePDna 0x50 /* (~ D) & P */#define DrawModeDSPnaon 0x51 /* ~ (D | (S & (~P))) */#define DrawModeDPSDaox 0x52 /* D ^ (P | (S & D)) */#define DrawModeSPDSxaxn 0x53 /* ~ (S ^ (P & (D ^ S))) */#define DrawModeDPSonon 0x54 /* ~ (D | (~ (P | S))) */#define DrawModeDn 0x55 /* ~ D */#define DrawModeDPSox 0x56 /* D ^ (P | S) */#define DrawModeDPSoan 0x57 /* ~ (D & (P | S)) */#define DrawModePDSPoax 0x58 /* P ^ (D & (S | P)) */#define DrawModeDPSnox 0x59 /* D ^ (P | (~ S)) */#define DrawModeDPx 0x5A /* D ^ P */#define DrawModeDPSDonox 0x5B /* D ^ (P | (~ (S | D))) */#define DrawModeDPSDxox 0x5C /* D ^ (P | (S ^ D)) */#define DrawModeDPSnoan 0x5D /* ~ (D & (P | (~ S))) */#define DrawModeDPSDnaox 0x5E /* D ^ (P | (S & (~ D))) */#define DrawModeDPan 0x5F /* ~ (D & P) */#define DrawModePDSxa 0x60 /* P & (D ^ S) */#define DrawModeDSPDSaoxxn 0x61 /* ~ (D ^ (S ^ (P | (D & S)))) */#define DrawModeDSPDoax 0x62 /* D ^ (S & (P | D)) */#define DrawModeSDPnox 0x63 /* S ^ (D | (~ P)) */#define DrawModeSDPSoax 0x64 /* S ^ (D & (P | S)) */#define DrawModeDSPnox 0x65 /* D ^ (S | (~ P)) */#define DrawModeDSx 0x66 /* D ^ S */#define DrawModeSDPSonox 0x67 /* S ^ (D | (~ (P | S))) */#define DrawModeDSPDSonoxxn 0x68 /* ~ (D ^ (S ^ (P | (~ (D | S))))) */#define DrawModePDSxxn 0x69 /* ~ (P ^ (D ^ S)) */#define DrawModeDPSax 0x6A /* D ^ (P & S) */#define DrawModePSDPSoaxxn 0x6B /* ~ (P ^ (S ^ (D & (P | S)))) */#define DrawModeSDPax 0x6C /* S ^ (D & P) */#define DrawModePDSPDoaxx 0x6D /* P ^ (D ^ (S & (P | D))) */#define DrawModeSDPSnoax 0x6E /* S ^ (D & (P | (~ S))) */#define DrawModePDSxnan 0x6F /* ~ (P & (~ (D ^ S))) */#define DrawModePDSana 0x70 /* P & (~ (D & S)) */#define DrawModeSSDxPDxaxn 0x71 /* ~ (S ^ ((S ^ D) & (P ^ D))) */#define DrawModeSDPSxox 0x72 /* S ^ (D | (P ^ S)) */#define DrawModeSDPnoan 0x73 /* ~ (S & (D | (~P))) */#define DrawModeDSPDxox 0x74 /* D ^ (S | (P ^ D)) */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -