Blame doc/ru/drawing.html

7a004b
7a004b
7a004b
<meta charset="UTF-8">
7a004b
<link href="style.css" rel="stylesheet" type="text/css">
7a004b
<title>Рисование - Helianthus</title>
7a004b
7a004b
7a004b
77a314
  

Helianthus

77a314
  
77a314
  

Helianthus: Документация

77a314
  

Установка

7a004b
  

Запуск и общие функции

7a004b
  

Клавиатура и мышь

7a004b
  

Рисование

cece70
  

Шрифты и текст

cece70
  

Текстуры и анимация

cece70
  

Буфер кадра

7a004b
  

Спрайты

7a004b
  

Группы спрайтов

7a004b
  

Звук

7a004b
  
7a004b
  

Все функции

7a004b
7a004b
7a004b
7a004b

Рисование

7a004b
cece70

Перечисленные ниже функции позволяют рисовать на экране различные фигуры и текст.

7a004b
788bd9

Для указания цвета используется его числовой код. Код можно записать в виде шестнадцатеричного числа, например: 0xFF0000AA — это полупрозрачный красный (также как #FF0000 в формате web/CSS3, только с добавлением двух цифр альфа-канала в конце). Однако проще всего получить код используя вспомогательные функции: colorByName, colorByRGB, colorByHSV, colorByYUV, а также их аналоги с альфа-каналом: colorByNameA, colorByRGBA, colorByHSVA, colorByYUVA.

cece70
cece70

Вы можете также провести и обратную операцию — извлечь данные отдельных цветовых каналов из кода цвета, см. функции: colorGetRed, colorGetGreen, colorGetBlue, colorGetAlpha, colorGetHue, colorGetSaturation, colorGetValue, colorGetYLuminance, colorGetUChromanance, colorGetVChromanance.

cece70
cece70

Для рисования линий и многоугольников используются функции moveTo, lineTo, closePath, strokePath. При этом функции stroke и fill задают цвет линий и заливки. Функция strokeWeight задаёт толщину линий. Вот пример рисования красного треугольника с чёрным контуром:

cece70
cece70
cece70
fill("red");
cece70
stroke("black");
cece70
strokeWeight(10);
cece70
moveTo(100, 300);
cece70
lineTo(300, 300);
cece70
lineTo(50, 200);
cece70
closePath();
cece70
cece70
cece70
cece70

Также существуют отдельные функции для рисования точек (point), линий (line), прямоугольников (rect), правильных многоугольников (regularPolygon), эллипсов (ellipse) и дуг окружности (arc), смотрите описания функций ниже.

cece70
cece70

Для очистки экрана используйте функцию clear. Функция background задаёт цвет фона — функция clear закрасит все пиксели именно этим цветом. Обратите внимание, что перед рисованием очередного кадра картинка полностью затирается цветом фона. Если вам необходимо сохранять картинку, то вам либо придётся повторить все операции рисования выполненные ранее или обратиться к разделам «Буфер кадра» и «Текстуры и анимация», чтобы узнать, как можно рисовать не на экран, а в текстуру.

cece70
cece70

Для рисования текста см. раздел «Шрифты и текст».

cece70
cece70

Трансформации и прочие преобразования

cece70
cece70

Перед рисованием вы можете сместить, повернуть или растянуть выводимое изображение при помощи функций соответственно: translate, rotate и scale. Таким образом вы можете как бы изменить позицию камеры. Отменить все вышеуказанные трансформации можно вызвав функцию noTransform. Указанные функции меняют текущую матрицу OpenGL, если вы знакомы с OpenGL, то можете менять матрицы напрямую — на работу Helianthus это не повлияет.

cece70
cece70

Также вы можете ограничить область рисования задав прямоугольник отсечения — cliprect.

cece70
cece70

Также обратите внимание на функции saveState и restoreState. Они позволяют соответственно сохранить действующие в данный момент преобразование и затем вернуться к сохранённому состоянию.

cece70
cece70

Функция resetState отменяет все преобразования.

cece70
cece70

Фукнции saveState, restoreState и resetState затрагивают также выбранный шрифт (см. textFont), выбранный буфер кадра (см. target), матрицу проекции (см. projectionByVireport) и координаты области рисования (см. viewportByFramebuffer, viewportByWindow).

cece70
cece70

Взаимодействие с OpenGL

cece70
cece70

Helianthus использует библиотеку OpenGL для рисования. Вы тоже можете использовать функции OpenGL в своих программах. Helianthus спроектирована так чтобы минимально влиять на состояние OpenGL, так чтобы вы могли полноценно использовать все функции библиотеки OpenGL, если вы того захотите. Например, если вы вызвали функцию translate, то изменится только текущая матрица OpenGL, обычно, это матрица модели.

cece70
cece70

Вы можете также использовать рисование в 3D, в этом случае, если вы обратитесь к 2D функциям Helianthus — они будут выполнены в плоскости XY и координата Z будет принята равной нулю.

cece70
cece70

Функции:

cece70
cece70

unsigned int colorByName(const char *colorName);

cece70
788bd9

Функция генерирует код цвета по его текстовому наименованию в соответствии с CSS3.

788bd9
788bd9

Вот примеры наименований:

788bd9
    "transparent" — прозрачный,
788bd9
    "black" — чёрный,
788bd9
    "white" — белый,
788bd9
    "gray" — серый,
788bd9
    "red" — красный,
788bd9
    "green" — зелёный,
788bd9
    "blue" — синий,
788bd9
    "yellow" — жёлтый,
788bd9
    "brown" — коричневый.

788bd9
788bd9

Также поддерживаются цвета в кодировка #RRGGBB или #RRGGBBAA:

7a004b
    #000000 — чёрный;
7a004b
    #ff0000 — красный;
7a004b
    #0000ff — синий;
7a004b
    #00ff00aa — зелёный полупрозрачный.

7a004b
cece70

Параметры:

7a004b
cece70

colorName — текстовое наименование цвета.

7a004b
cece70

unsigned int colorByNameA(const char *colorName, double a);

7a004b
cece70

Генерирует код цвета по его текстовому наименованию с применением прозрачности (alpha). См. также colorByName. Если в текстовом наименовании уже заключён цвет с прозрачностью (alpha) то значения альфа-канала будут перемножены.

7a004b
cece70

Параметры:

7a004b
cece70

colorName — текстовое наименование цвета;

cece70
a — альфа-канал, степень непрозрачности от 0 до 1, где 0 — полностью прозрачный, 1 — полностью непрозрачный.

7a004b
cece70

unsigned int colorByRGB(double r, double g, double b);

cece70
cece70

Генерирует код цвета по трём цветовым составляющим — красный, зелёный, синий. Генерируется полностью непрозрачный цвет (альфа-канал равен 1). См. также colorByRGBA.

cece70
cece70

Параметры:

cece70
cece70

r — красная составляющая, от 0 до 1;

cece70
g — зелёная составляющая, от 0 до 1;
cece70
b — синяя составляющая, от 0 до 1.

7a004b
cece70

unsigned int colorByRGBA(double r, double g, double b, double a);

7a004b
cece70

Генерирует код цвета по трём цветовым составляющим — красный, зелёный, синий — и прозрачности — альфа-канал. См. также colorByRGB.

7a004b
7a004b

Параметры:

7a004b
cece70

r — красная составляющая, от 0 до 1;

cece70
g — зелёная составляющая, от 0 до 1;
cece70
b — синяя составляющая, от 0 до 1;
cece70
a — альфа-канал, степень непрозрачности от 0 до 1, где 0 — полностью прозрачный, 1 — полностью непрозрачный.

7a004b
cece70

unsigned int colorByHSV(double h, double s, double v);

7a004b
cece70

Генерирует код цвета по трём составляющим в системе HSV — оттенок (hue), цветность (saturation), яркость (value). Генерируется полностью непрозрачный цвет (альфа-канал равен 1). См. также colorByHSVA.

7a004b
7a004b

Параметры:

7a004b
cece70

h — оттенок (hue) в градусах на цветовом круге, обычно от 0 до 360;

cece70
s — цветность (saturation), от 0 до 1;
cece70
v — яркость, от 0 до 1.

7a004b
cece70

unsigned int colorByHSVA(double h, double s, double v, double a);

cece70
cece70

Генерирует код цвета по трём составляющим в системе HSV — оттенок (hue), цветность (saturation), яркость (value) — и прозрачности (alpha). См. также colorByHSV.

7a004b
cece70

Параметры:

7a004b
cece70

h — оттенок (hue) в градусах на цветовом круге, обычно от 0 до 360;

cece70
s — цветность (saturation), от 0 до 1;
cece70
v — яркость, от 0 до 1;
cece70
a — альфа-канал, степень непрозрачности от 0 до 1, где 0 — полностью прозрачный, 1 — полностью непрозрачный.

7a004b
cece70

unsigned int colorByYUV(double y, double u, double v);

cece70
cece70

Генерирует код цвета по трём составляющим в системе YUV. Генерируется полностью непрозрачный цвет (альфа-канал равен 1). См. также colorByYUVA.

7a004b
7a004b

Параметры:

7a004b
cece70

y — яркость, от 0 до 1;

cece70
u — цветоразностный компонент U, от -1 до 1;
cece70
v — цветоразностный компонент V, от -1 до 1.

7a004b
cece70

unsigned int colorByYUVA(double y, double u, double v, double a);

7a004b
cece70

Генерирует код цвета по трём составляющим в системе YUV и прозрачности. См. также colorByYUV.

7a004b
cece70

Параметры:

cece70
cece70

y — яркость, от 0 до 1;

cece70
u — цветоразностный компонент U, от -1 до 1;
cece70
v — цветоразностный компонент V, от -1 до 1;
cece70
a — альфа-канал, степень непрозрачности от 0 до 1, где 0 — полностью прозрачный, 1 — полностью непрозрачный.

cece70
cece70

double colorGetRed(unsigned int colorCode);

cece70
cece70

Возвращает красную составляющую цвета. См. также colorByRGBA.

cece70
cece70

double colorGetGreen(unsigned int colorCode);

cece70
cece70

Возвращает зелёную составляющую цвета. См. также colorByRGBA.

cece70
cece70

double colorBlueRed(unsigned int colorCode);

cece70
cece70

Возвращает синюю составляющую цвета. См. также colorByRGBA.

cece70
cece70

double colorGetAlpha(unsigned int colorCode);

cece70
cece70

Возвращает степень непрозрачности цвета — альфа-канал. См. также colorByRGBA.

cece70
cece70

double colorGetHue(unsigned int colorCode);

cece70
cece70

Возвращает цветовой оттенок в градусах на цветовом круге, от 0 до 360 в системе HSV. См. также colorByHSV.

cece70
cece70

double colorGetSaturation(unsigned int colorCode);

cece70
cece70

Возвращает цветность (цветовую насыщенность) для выбранного цвета в системе HSV. См. также colorByHSV.

cece70
cece70

double colorGetValue(unsigned int colorCode);

cece70
cece70

Возвращает яркость для выбранного цвета в системе HSV. См. также colorByHSV.

cece70
cece70

double colorGetYLuminance(unsigned int colorCode);

cece70
cece70

Возвращает яркость для выбранного цвета в системе YUV. См. также colorByYUV.

cece70
cece70

double colorGetUChromanance(unsigned int colorCode);

cece70
cece70

Возвращает цветоразностный компонент U для выбранного цвета в системе YUV. См. также colorByYUV.

cece70
cece70

double colorGetVChromanance(unsigned int colorCode);

7a004b
cece70

Возвращает цветоразностный компонент V для выбранного цвета в системе YUV. См. также colorByYUV.

7a004b
cece70

void background(unsigned int colorCode);

cece70
cece70

Установить цвет фона. Начиная со следующего все кадры будут рисоваться на выбранном фоне. Также влияет на поведение функции clear.

7a004b
7a004b

Параметры:

7a004b
cece70

colorCode — код цвета.

cece70
cece70

void clear();

7a004b
cece70

Заполняет все пиксели цветом фона. См. также background.

7a004b
cece70

void fill(unsigned int colorCode);

7a004b
cece70

Установить цвет заливки. После вызова этой функции все фигуры будут заполняться выбранным цветом. См. также stroke, noFill и fillTexture.

7a004b
cece70

Параметры:

7a004b
cece70

colorCode — код цвета.

7a004b
cece70

void fillTexture(Animation animation, double x, double y, double width, diuble height, int fixed);

cece70
cece70

Установить заливку текстурой. После вызова этой функции все фигуры будут заполняться выбранной текстурой. Для заливки текстурой определяется базовый прямоугольник (по координатам x, y, width, height) в который будет смасштабировано изображение текстуры. Если текстура повторяющаяся, то её копии будут распространяться и за пределами базового прямоугольника. При помощи параметра fixed вы можете зафиксировать базовый прямоугольник текстуры в текущих координатах так, что на них в не будут влиять последующие трансформации перемещения (translate), вращения (rotate) и масштабирования (scale и zoom). См. также fill, noFill и раздел «Текстуры и анимация».

7a004b
7a004b

Параметры:

7a004b
cece70

animation — анимированная или статическая текстура;

cece70
x, y — координаты верхнего левого угла базового прямоугольника текстуры;
cece70
width — ширина базового прямоугольника текстуры;
cece70
height — ширина базового прямоугольника текстуры;
cece70
fixed — если TRUE (1 или любое другое число кроме 0), то фиксирует прямоугольник текстуры в текущих координатах — операции трансформации на него не влияют.

cece70
cece70

void noFill();

cece70
cece70

Отключить заливку фигур. После вызова этой функции все фигуры будут рисоваться без заполнения. См. также fill, fillTexture, saveState и restoreState.

cece70
cece70

void stroke(unsigned int colorCode);

cece70
cece70

Установить цвет контура. После вызова этой функции все фигуры будут рисоваться с контуром выбранного цвета. Также эта функция задаёт цвет рисования текста. См. также fill, noStroke. и раздел «Шрифты и текст».

cece70
cece70

Параметры:

cece70
cece70

colorCode — код цвета.

cece70
cece70

void strokeTexture(Animation animation, double x, double y, double width, diuble height, int fixed);

cece70
cece70

Установить заливку текстурой для контура. После вызова этой функции все фигуры будут заполняться выбранной текстурой. Для заливки текстурой определяется базовый прямоугольник (по координатам x, y, width, height) в который будет смасштабировано изображение текстуры. Если текстура повторяющаяся, то её копии будут распространяться и за пределами базового прямоугольника. При помощи параметра fixed вы можете зафиксировать базовый прямоугольник текстуры в текущих координатах так, что на них в не будут влиять последующие трансформации перемещения (translate), вращения (rotate) и масштабирования (scale и zoom). См. также stroke, noStroke и раздел «Текстуры и анимация».

cece70
cece70

Параметры:

cece70
cece70

animation — анимированная или статическая текстура;

cece70
x, y — координаты верхнего левого угла базового прямоугольника текстуры;
cece70
width — ширина базового прямоугольника текстуры;
cece70
height — ширина базового прямоугольника текстуры;
cece70
fixed — если TRUE (1 или любое другое число кроме 0), то фиксирует прямоугольник текстуры в текущих координатах — операции трансформации на него не влияют.

cece70
cece70

void noStroke();

cece70
cece70

Отключить рисование контура. После вызова этой функции все фигуры будут рисоваться без прорисовки контура. См. также stroke, strokeTexture, saveState и restoreState.

cece70
cece70

Важно: Так как текст рисуется цветом контура, эта функция полностью отключает вывод текста.

cece70
cece70

void strokeWidth(double width);

cece70
cece70

Установить толщину линий и контуров. После вызова этой функции все линии и контуры будут рисоваться с заданной толщиной. Изначально толщина равна 1.

cece70
cece70

Параметры:

cece70
cece70

width — толщина линии.

7a004b
7a004b

void moveTo(double x, double y);

7a004b
7a004b

Начать рисование новой фигуры, и задать начальное положение пера. Перед запуском этой функции убедитесь что вы завершили рисование предыдущей фигуры функцией closePath или strokePath.

7a004b
7a004b

Параметры:

7a004b
7a004b

x, y — координаты в которые будет помещено перо.

7a004b
7a004b

void lineTo(double x, double y);

7a004b
7a004b

Наметить линию от текущих координат пера до заданной точки, а также перевести перо в указанною точку. Настоящая линия будет нарисована позже при помощи функции closePath или strokePath. См. также функцию moveTo.

7a004b
7a004b

Важно: если положение пера не было задано, то линия не намечается, вместо этого просто задаётся начальное положение пера.

7a004b
7a004b

void resetPath();

7a004b
7a004b

Убрать все намеченные функцией lineTo или arcPath линии и отменить их рисование. Положение пера также забывается.

7a004b
7a004b

void closePath();

7a004b
7a004b

Завершить контур соединив начальную и конечную точки линией и нарисовать заполненную фигуру с контуром. Цвета заполнения и контура задаются функциями fill и stroke. См. также функции moveTo и lineTo. После вывода фигуры на экран положение пера и все намеченные линии забываются.

7a004b
7a004b

void strokePath();

7a004b
7a004b

Нарисовать ранее намеченные линии. В отличии от функции closePath, данная функция не соединяет начальную и конечную точки, а просто рисует только те линии которые были намечены. Цвет контура задаётся функцией stroke, а вот заполнение цветом не производится. После вывода намеченных линий на экран, их расположение и позиция пера забываются.

7a004b
7a004b

void rect(double x, double y, double width, double height);

7a004b
7a004b

Нарисовать прямоугольник. Цвета заполнения и контура задаются заранее функциями fill и stroke.

7a004b
7a004b

Параметры:

7a004b
7a004b

x, y — координаты левого верхнего угла прямоугольника;

7a004b
width — ширина прямоугольника;
7a004b
height — высота прямоугольника.

7a004b
cece70

void rectTextured(Animation animation, double x, double y, double width, double height);

cece70
cece70

Нарисовать прямоугольник и заполнить его выбранной текстурой. Цвет контура задаётся заранее функцией stroke. См. также функции rect, fillTexture, strokeTexture и раздел «Текстуры и анимация».

cece70
cece70

Параметры:

cece70
cece70

animation — анимированная или статическая текстура;

cece70
x, y — координаты левого верхнего угла прямоугольника;
cece70
width — ширина прямоугольника;
cece70
height — высота прямоугольника.

cece70
7a004b

void ellipse(double x, double y, double width, double height);

7a004b
788bd9

Нарисовать эллипс. Эллипс рисуется таким чтобы от вписался в ограничивающий прямоугольник (см. функцию rect). Следовательно для того чтобы нарисовать окружность нужно передать одинаковую ширину и высоту ограничивающего прямоугольника. Цвета заполнения и контура задаются заранее функциями fill и stroke. См. также circle.

7a004b
7a004b

Параметры:

7a004b
7a004b

x, y — координаты левого верхнего угла ограничивающего прямоугольника;

7a004b
width — ширина ограничивающего прямоугольника;
7a004b
height — высота ограничивающего прямоугольника.

7a004b
788bd9

void circle(double x, double y, double radius);

788bd9
788bd9

Нарисовать круг заданного радиуса с центром в указанной точке. Цвета заполнения и контура задаются заранее функциями fill и stroke. См. также ellipse.

788bd9
788bd9

Параметры:

788bd9
788bd9

x, y — координаты центра;

788bd9
radius — радиус.

788bd9
7a004b

void arc(double x, double y, double w, double h, double start, double stop);

7a004b
7a004b

Нарисовать дугу эллипса заданного ограничивающим прямоугольником. Дуга задаётся значением начального и конечного угла. Цвет линии задаётся функцией stroke.

7a004b
cece70

Параметры:

7a004b
7a004b

x, y — координаты левого верхнего угла ограничивающего прямоугольника;

7a004b
width — ширина ограничивающего прямоугольника;
7a004b
height — высота ограничивающего прямоугольника;
7a004b
start — начальный угол в градусах;
7a004b
end — конечный угол в градусах.

7a004b
7a004b

void arcPath(double x, double y, double w, double h, double start, double stop);

7a004b
7a004b

Наметить дугу эллипса заданного ограничивающим прямоугольником так как если бы она рисовалась функциями moveTo и lineTo. Дуга задаётся значением начального и конечного угла. Окончательное рисование будет выполнено после вызова функции closePath или strokePath.

7a004b
7a004b

Параметры:

7a004b
7a004b

x, y — координаты левого верхнего угла ограничивающего прямоугольника;

7a004b
width — ширина ограничивающего прямоугольника;
7a004b
height — высота ограничивающего прямоугольника;
7a004b
start — начальный угол в градусах;
7a004b
end — конечный угол в градусах.

7a004b
7a004b

void line(double x1, double y1, double x2, double y2);

7a004b
7a004b

Провести прямую линию от первой указанной точки до второй. Цвет линии задаётся функцией stroke.

7a004b
cece70

Параметры:

7a004b
7a004b

x1, y1 — координаты первой точки;

7a004b
x2, y2 — координаты второй точки.

7a004b
7a004b

void point(double x, double y);

7a004b
cece70

Нарисовать точку в указанных координатах. Цвет задаётся функцией stroke. Диаметр точки задаётся функцией strokeWidth.

7a004b
7a004b

Параметры:

7a004b
7a004b

x, y — координаты точки.

7a004b
7a004b

void regularPolygon(double x, double y, int sides, double size);

7a004b
7a004b

Нарисовать правильный многоугольник заданного размера с центром в указанной точке. Цвета заполнения и контура задаются функциями fill и stroke.

7a004b
cece70

Параметры:

7a004b
7a004b

x, y — координаты центра многоугольника;

7a004b
sides — количество сторон;
7a004b
size — размер многоугольника — диаметр описанной окружности.

7a004b
cece70

void translate(double x, double y);

cece70
cece70

Задать смещение системы координат. После вызова этой функции все объекты будут рисоваться с заданным смещением. Смещение производится относительно действующей в данный момент системы координат. См. также rotate, scale и noTransform.

cece70
cece70

void rotate(double angle);

cece70
cece70

Повернуть текущую систему координат на заданный угол (angle) в градусах. См. также translate, scale и noTransform.

cece70
cece70
cece70

void zoom(double z);

cece70
cece70

Смасштабировать текущую систему координат на заданный коэффициент (z). Эквивалентно вызову scale(z, z). См. также translate, rotate, scale и noTransform.

cece70
cece70

void scale(double x, double y);

cece70
cece70

Смасштабировать (растянуть) текущую систему координат на заданные коэффициенты по осям x и y. См. также translate, rotate и noTransform.

cece70
cece70

void noTransform();

cece70
cece70

Отменяет все преобразования системы координат заданные функциями translate, rotate, scale и zoom. См. также saveState и restoreState.

cece70
cece70

void clipRect(double x, double y, double width, double height);

cece70
cece70

Задаёт прямоугольник отсечения. Все последующие операции рисования будут выполнены только внутри заданного прямоугольника. Всё что было нарисовано ранее за его пределами останется неизменным. Повторный вызов функции заменяет (а не дополняет) ранее заданную область отсечения. Если вы знакомы с OpenGL, вам будет полезно знать, что данная функция просто задаёт четыре плоскости отсечения (glClipPlane). Область отсечения применяется со всеми действующими в момент вызова функции преобразованиями системы координат, таким образом она может быть на экране не прямоугольной, а, например, иметь форму параллелограмма. См. также noClip.

cece70
cece70

void noClip();

cece70
cece70

Отменяет область отсечения заданную функцией clipRect. См. также saveState и restoreState.

cece70
cece70

void resetState();

cece70
cece70

Сбрасывает состояние инструментов рисования к их начальным значениям. Эквивалентно вызову resetStateEx(STATE_ALL). См. также saveState и restoreState.

cece70
cece70

void resetStateEx(unsigned int flags);

cece70
cece70

Сбрасывает выбранные состояния инструментов рисования к их начальным значениям. Аргумент flags определяет перечень состояний которые необходимо сбросить. Значение для него можно вычислить объединив операцией побитового «или» (вертикальная черта: |) несколько флагов из следующего списка:

cece70
cece70
cece70
  
cece70
    STATE_FILL_COLOR
cece70
    цвет заполнения, см. fill
cece70
  
cece70
  
cece70
    STATE_FILL_TEXTURE
cece70
    текстура заполнения, см. fillTexture
cece70
  
cece70
  
cece70
    STATE_STROKE_COLOR
cece70
    цвет обводки, см. stroke
cece70
  
cece70
  
cece70
    STATE_STROKE_TEXTURE
cece70
    текстура обводки, см. strokeTexture
cece70
  
cece70
  
cece70
    STATE_STROKE_WIDTH
cece70
    толщина обводки, см. strokeWidth
cece70
  
cece70
  
cece70
    STATE_TEXT_ALIGN
cece70
    расположение текста, см. textAlign
cece70
  
cece70
  
cece70
    STATE_TEXT_SIZE
cece70
    размер шрифта, см. textSize
cece70
  
cece70
  
cece70
    STATE_TEXT_FONT
cece70
    шрифт, см. textFont
cece70
  
cece70
  
cece70
    STATE_TARGET_FRAMEBUFFER
cece70
    выбранный буфер кадра, см. target
cece70
  
cece70
  
cece70
    STATE_TARGET_VIEWPORT
cece70
    текущая область рисования, см. viewportByFramebuffer, viewportByWindow
cece70
  
cece70
  
cece70
    STATE_TARGET_PROJECTION
cece70
    текущая матрица проекции, см. projectionByViewport
cece70
  
cece70
  
cece70
    STATE_BACKGROUND
cece70
    цвет очистки экрана (цвет фона), см. baclground
cece70
  
cece70
  
cece70
    STATE_TRANSFORM
cece70
    преобразования системы координат, см. translate, rotate, scale, zoom
cece70
  
cece70
  
cece70
    STATE_CLIP
cece70
    область отсечения, см. clipRect
cece70
  
cece70
  
cece70
    
cece70
    
cece70
  
cece70
  
cece70
    STATE_FILL
cece70
    объединение флагов STATE_FILL_*
cece70
  
cece70
  
cece70
    STATE_STROKE
cece70
    объединение флагов STATE_STROKE_*
cece70
  
cece70
  
cece70
    STATE_TEXT
cece70
    объединение флагов STATE_TEXT_*
cece70
  
cece70
  
cece70
    STATE_TARGET
cece70
    объединение флагов STATE_TARGET_*
cece70
  
cece70
  
cece70
    STATE_ALL
cece70
    объединение всех флагов
cece70
  
cece70
cece70
cece70
cece70

void saveState();

cece70
cece70

Запоминает состояние всех инструментов рисования для того чтобы впоследствии к ним вернуться вызвав функцию restoreState. Функция может быть вызвана несколько раз чтобы запомнить несколько состояний, при этом позже необходимо будет выполнить соответствующее количество вызовов функции restoreState. Обращение в данной функции эквивалентно вызову saveStateEx(STATE_ALL). См. также resetState.

cece70
cece70

void saveStateEx(unsigned int flags);

cece70
cece70

Запоминает выбранные состояния инструментов рисования для того чтобы впоследствии к ним вернуться вызвав функцию restoreState. Функция может быть вызвана несколько раз, при этом позже необходимо будет выполнить соответствующее количество вызовов функции restoreState. Аргумент flags определяет перечень состояний которые необходимо запомнить. Значение для него можно вычислить объединив операцией побитового «или» (вертикальная черта: |) несколько флагов из списка представленного в описании функции resetState.

cece70
См. также saveState.

cece70
cece70

void restoreState();

cece70
cece70

Восстанавливает состояния инструментов рисования ранее сохранённые функцией saveState или saveStateEx. Если функция saveState (или saveStateEx) была вызвана несколько раз, то чтобы вернуться к первоначальному состоянию нужно вызвать restoreState аналогичное количество раз. См. также resetState.

cece70
cece70

Важно: следите за тем чтобы количество сохранений (saveState или saveStateEx) всегда совпадало с количеством восстановлений (restoreState).

7a004b
7a004b
7a004b
7a004b