|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Binary Raster Operations
This section lists the binary raster-operation codes used by the GetROP2 and SetROP2 functions. Raster-operation codes define how GDI combines the bits from the selected pen with the bits in the destination bitmap.
Each raster-operation code represents a Boolean operation in which the values of the pixels in the selected pen and the destination bitmap are combined. Following are the two operands used in these operations:
Operand Meaning P Selected pen D Destination bitmap
The Boolean operators used in these operations follow:
Operator Meaning a Bitwise AND n Bitwise NOT (inverse) o Bitwise OR x Bitwise exclusive OR (XOR)
All Boolean operations are presented in reverse Polish notation. For example, the following operation replaces the values of the pixels in the destination bitmap with a combination of the pixel values of the pen and the selected brush:
DPo
Each raster-operation code is a 32-bit integer whose high-order word is a Boolean operation index and whose low-order word is the operation code. The 16-bit operation index is a zero-extended 8-bit value that represents all possible outcomes resulting from the Boolean operation on two parameters (in this case, the pen and destination values). For example, the operation indexes for the DPo and DPan operations are shown in the following list:
P D DPo DPan 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 0
The following list outlines the drawing modes and the Boolean operations that they represent:
Raster operation Boolean operation 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
For a monochrome device, GDI maps the value zero to black and the value 1 to white. If an application attempts to draw with a black pen on a white destination by using the available binary raster operations, the following results occur:
Raster operation Result R2_BLACK Visible black line R2_COPYPEN Visible black line R2_MASKNOTPEN No visible line R2_MASKPEN Visible black line R2_MASKPENNOT Visible black line R2_MERGENOTPEN No visible line R2_MERGEPEN Visible black line R2_MERGEPENNOT Visible black line R2_NOP No visible line R2_NOT Visible black line R2_NOTCOPYPEN No visible line R2_NOTMASKPEN No visible line R2_NOTMERGEPEN Visible black line R2_NOTXORPEN Visible black line R2_WHITE No visible line R2_XORPEN No visible line
For a color device, GDI uses RGB values to represent the colors of the pen and the destination. An RGB color value is a long integer that contains a red, a green, and a blue color field, each specifying the intensity of the given color. Intensities range from 0 through 255. The values are packed in the three low-order bytes of the long integer. The color of a pen is always a solid color, but the color of the destination may be a mixture of any two or three colors. If an application attempts to draw with a white pen on a blue destination by using the available binary raster operations, the following results occur:
Raster operation Result R2_BLACK Visible black line R2_COPYPEN Visible white line R2_MASKNOTPEN Visible black line R2_MASKPEN Invisible blue line R2_MASKPENNOT Visible red/green line R2_MERGENOTPEN Invisible blue line R2_MERGEPEN Visible white line R2_MERGEPENNOT Visible white line R2_NOP Invisible blue line R2_NOT Visible red/green line R2_NOTCOPYPEN Visible black line R2_NOTMASKPEN Visible red/green line R2_NOTMERGEPEN Visible black line R2_NOTXORPEN Invisible blue line R2_WHITE Visible white line R2_XORPEN Visible red/green line
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Двоичные Растровые Действия
Эта секция включает двоичный растр-действие кодов использованный GetROP2 и функции SetROP2. Растр-действие кодов определяется, как GDI объединяет биты из выбранной ручки с битами в побитовом отображении расположения.
Каждый растр-действие кода представляет Логическое действие в котором величины пикселей в выбранной ручке и побитовое отображение расположения объединено. Следующее - два операндов использованных в этих действиях:
Операнд, означающий P Выбравшийся побитовое отображение Расположения ручки D
Логические операторы использованные в этих действиях следуют за:
Оператор, означающий Поразрядным И n Поразрядным НЕ (инверсия) o Поразрядный ИЛИ x Поразрядный исключительный ИЛИ (XOR)
Все Логические действия представлены в обратной нотации Отделки. Например, следующее действие заменяет величины пикселей в побитовом отображении расположения с комбинацией величин пикселя ручки и выбранная щетка:
DPo
Каждый растр-действие кода является 32- битовым целым, чье старшее слово является Логическим индексом действия и чье младшее слово является действием кода. 16- Битовый индекс действия является расширенной нулевой 8- битовой величиной, которая представляет все возможные результаты, проистекающие из Логического действия в двух параметрах (в этом случае, ручка и величины расположения). Например, действие индексируется для DPo и действия DPan показаны в следующем списка:
P D DPo DPan 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 0
Следующее списка очерчивает рисующие способы и Логические действия, которые они представляют:
Логическое действие Растрового действия 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
Для монохромного устройства, GDI отображает нуль величины в черную и величину 1 на белый. Если приложение пытается рисовать с помощью черной ручки в белом расположении используя доступные двоичные растровые действия, следующее результатов происходит:
Растровый Результат действия Видимой черной линии R2_BLACK Видимой черной линии R2_COPYPEN No видимой линии R2_MASKNOTPEN Видимой черной линии R2_MASKPEN Видимой черной линии R2_MASKPENNOT No видимой линии R2_MERGENOTPEN Видимой черной линии R2_MERGEPEN Видимой черной линии R2_MERGEPENNOT No видимой линии R2_NOP Видимой черной линии R2_NOT No видимой линии R2_NOTCOPYPEN No видимой линии R2_NOTMASKPEN Видимой черной линии R2_NOTMERGEPEN Видимой черной линии R2_NOTXORPEN No видимой линии R2_WHITE No видимой линии R2_XORPEN
Для цветного устройства, GDI использует величины RGB, чтобы представлять цвета ручки и расположение. Цветная величина RGB является длинным целым, которое содержит красный, зеленая, и синяя цветная область, каждое определение интенсивности данного цвета. Интенсивность колеблется с 0 по 255. Величины упакованы в три младших байта длинного целого. Цвет ручки является всегда однотонным цветом, но цвет расположения может быть смесью любых двух или трех цветов. Если приложение пытается рисовать с помощью белой ручки в синем расположении используя доступные двоичные растровые действия, следующее результатов происходит:
Растровый Результат действия Видимой черной линии R2_BLACK Видимой белой линии R2_COPYPEN Видимой черной линии R2_MASKNOTPEN Невидимой синей линии R2_MASKPEN R2_MASKPENNOT Видимая красная/зеленая Невидимая синяя линия линии R2_MERGENOTPEN Видимой белой линии R2_MERGEPEN Видимой белой линии R2_MERGEPENNOT Невидимой синей линии R2_NOP R2_NOT Видимая красная/зеленая Видимая черная линия линии R2_NOTCOPYPEN R2_NOTMASKPEN Видимая красная/зеленая Видимая черная линия линии R2_NOTMERGEPEN Невидимой синей линии R2_NOTXORPEN Видимой белой линии R2_WHITE R2_XORPEN Видимая красная/зеленая линия
|
|
|
|
| |