GI.TextureUse

From SunFlurry wiki
Revision as of 08:53, 22 January 2025 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  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");