Difference between revisions of "GI.TextureUse"
1>Admin |
m (1 revision imported) |
(No difference)
| |
Latest revision as of 07:53, 22 January 2025
| TextureUse (Общие функции текстур) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция активирует или деактивирует использование указанной текстуры при выполнении дальнейшего графического вывода, либо делает ее приемником для этого вывода.
Синтаксис
GI.TextureUse(<Уникальный номер текстуры или 0 (INT)>,<Способ использования (INT)>=0,<Тип текстуры (INT)>=0)
Аргументы
<Уникальный номер текстуры или 0 (INT)>- Аргумент задает уникальный номер текстуры, чтобы активировать ее использование, либо ноль, если необходимо деакивировать использование текстуры.<Способ использования (INT)>- (необязательный аргумент) Аргумент задает способ использования. Возможны следующие значения:- 0 (по умолчанию) -- привязать текстуру к рабочему графическому буферу (или экрану), чтобы последующий графический вывод проиходил на нее.
- 1 или более -- активизировать текстуру для функций, работающих с текстурами (для OpenGL, к примеру,
glTexCoord) с номером "канала" соответствующим значению этого аргумента минус один (для OpenGL см.glActiveTexture).
<Тип текстуры (INT)>- (необязательный аргумент) Аргумент задает тип текстуры (так как текстура может быть загружена не функциями системы, последней необходима такая информация. К примеру, для OpenGL см. функциюglBindTexture). Возможны следующие значения типа:- 0: 2D текстура.
- 1: 3D текстура.
- 2: 1D текстура.
- 3: 2D мультиэталонная текстура.
- 4: Текстура куба.
Примеры
//Создать невидимое окно 200x200
aGI:=GI.Init(,,200,200);
//Создать пустую текстуру 200x200
аТекст:=aGI.TextureAddBlank(0,0,200,200);
//Используем новую текстуру для последующего вывода (вместо самого окна)
aGI.TextureUse(аТекст);
//Белый фон
aGI.glClearColor(1.0,1.0,1.0,1.0);
aGI.glClear(aGI.GL_COLOR_BUFFER_BIT or aGI.GL_DEPTH_BUFFER_BIT);
//Текстовая перспектива
aGI.TextWorldPerspective(1);
//Выводим текст "Проверка" на текстуру, начиная с точки 10,10 в верхнем левом углу текстуры с зеленой "тенью"
aGI.RenderText("Проверка","Arial,15,B,0000FF,,1",List.Create(1,аТекст,200,200),10,10,0.5,"1,1,00FF00,2");
//Сохраним тектуру в виде файла
aGI.TextureSavePicture(аТекст,2,"c:\testtexture.png","PNG");