PureBasic

DrawingMode()

Синтаксис

DrawingMode(Mode)

Описание


Изменение режима рисования для текста и вывода графики.

Параметры

Mode Режим работы последующих операций рисования. Значение режима определяется комбинацией следующих флагов:

#PB_2DDrawing_Default
Этот режим используется по умолчанию, если начать рисовать без выбора режима. Текст отображается на сплошном фоне, а фигуры графики заполняются. Если текущая поверхность вывода имеет канал прозрачности, операции рисования будут изменять только компоненты цвета, оставляя канал прозрачности без изменений.

#PB_2DDrawing_Transparent
Если этот флаг установлен, то для команды DrawText() фон будет прозрачным.

#PB_2DDrawing_XOr
Включает режим XOR. Вся графика будет сложена операцией XOR с текущим фоном. Этот режим не может сочетаться с описанными ниже режимами с прозрачностью.

Примечание: Этот режим не работает с устройством вывода PrinterOutput().

#PB_2DDrawing_Outlined
Если установлен этот флаг, фигуры будут рисоваться как контуры, без заполнения. Это относится к командам вроде Circle, Box, и т.д.

Примечание: Следующие режимы работают только с поверхностью вывода ImageOutput() и CanvasOutput(). Всеми другими устройствами они игнорируются:

#PB_2DDrawing_AlphaBlend
Вывод операций рисования будет наложен с эффектом прозрачности на фон. Чтобы задать цвета с прозрачностью для команд вроде FrontColor(), Box(), DrawText() и т.д. можно использовать команду RGBA()

#PB_2DDrawing_AlphaClip
Вывод операций рисования будет наложен с эффектом прозрачности на фон как в режиме #PB_2DDrawing_AlphaBlend с тем отличием, что канал прозрачности устройства вывода действует как маска. Это значит, что области на устройстве вывода, которые были прозрачными до операции рисования, останутся прозрачными и после неё. Если устройство вывода не имеет канала прозрачности, этот режим действует так же, как режим #PB_2DDrawing_AlphaBlend.
#PB_2DDrawing_AlphaChannel
Операции рисования будут изменять только канал прозрачности на устройстве вывода. Вся цветовая информация игнорируется. Например, рисование Окружности со значением цвета RGBA (0, 0, 0, 0) "вырежет" отверстие на устройстве вывода - сделает область окружности полностью прозрачной. Если устройство вывода не имеет канала прозрачности (как CanvasGadget), то все операции рисования не будут иметь никакого эффекта в этом режиме.
#PB_2DDrawing_AllChannels
Операции рисования будут изменять каналы цвета и канал прозрачности на устройстве вывода. Управление содержимым каналов заменено на рисование без какого либо смешивания. Рисование в этом режиме имеет тот же результат, что и рисование сначала в режиме #PB_2DDrawing_Default а затем то же самое рисование в режиме #PB_2DDrawing_AlphaChannel. Если устройство вывода не имеет канала прозрачности (как CanvasGadget), этот режим эквивалентен режиму #PB_2DDrawing_Default.

#PB_2DDrawing_Gradient
Этот режим позволяет рисовать градиентом вместо сплошного цвета. Вид градиента можно задать командами вроде LinearGradient(), CircularGradient() и т.д., а цвета градиента можно установить с помощью функции GradientColor(). Параметры цвета, заданные отдельным командам рисования, в этом режиме игнорируются. Этот режим можно сочетать с описанными выше режимами с прозрачностью для получения градиентов с полупрозрачными цветами.

#PB_2DDrawing_CustomFilter
В этом режиме рисование пикселей определяется пользовательской процедурой с помощью команды CustomFilterCallback(). Это позволяет реализовать пользовательские графические эффекты, продолжая в то же время использовать обычные функции для рисования.

Возвращаемое значение

Ничего.

Комментарии

Чтобы использовать несколько режимов одновременно, вам нужно применить операцию '|' (OR). Далее следует пример с контурными фигурами, выводимыми через XOR:

DrawingMode(#PB_2DDrawing_Outlined | #PB_2DDrawing_XOr)

См. также

FrontColor(), BackColor()

Поддерживаемые OS

Все

<- DrawingFont() - Оглавление 2D Drawing - Ellipse()->