GI.TextureLoadFromMemory
TextureLoadFromMemory (Общие функции текстур) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция загружает картинку из строки или буфера в текстуру с указанным именем и параметрами и возвращает ее уникальный номер.
Синтаксис
GI.TextureLoadFromMemory(<Тип текстуры (INT)>,<Строка, картинка или буфер (STRING,BUFFER,PICTURE)>,<Свойства текстуры (INT)>=0,<Ширина картинки (INT)>,<Высота картинки (INT)>,<Имя текстуры (STRING)>=""):<Уникальный номер текстуры (INT)>
Аргументы
<Тип текстуры (INT)>
- Аргумент задает тип загружаемой текстуры. Возможны следующие значения типа:- 0: 2D текстура.
- 1: 3D текстура.
- 2: 1D текстура.
- 3: 2D мультиэталонная текстура.
- 4: Текстура куба.
<Строка, картинка или буфер (STRING,BUFFER,PICTURE)>
- Аргумент задает объект буфера, объект картинки или строку ANSI, как источник данных для загрузки.<Свойства текстуры (INT)>
- (необязательный аргумент) Аргумент задает дополнительные свойства загружаемой текстуры и представляет собой битовую маску. На данный момент используются следующие биты:- бит 0: Использовать множественное уменьшение для этой текстуры (mipmaps).
- бит 1: Эта текстура будет сжата (compressed).
<Ширина картинки (INT)>,<Высота картинки (INT)>
- (необязательный аргумент)(возможен аргумент-переменная (ByRef)) Аргументы-переменные возвращают ширину и высоту загруженной картинки, если в этой информации есть необходимость.<Имя текстуры (STRING)>
- (необязательный аргумент) Аргумент задает текстовое имя текстуры. В дальшейнем по этому имени текстуры можно искать или удалять. Если аргумент не задан, текстуре будет присвоено пустое имя.
Возвращаемое значение
Возвращается числовое значение -- системный уникальный номер текстуры для использования в других функциях.
Примеры
... //Создадим картинку (пример взят из статьи Picture.Ellipse) randomize; аКартинка:=Picture.Create(500,500,toRgb(255,255,255),32); For i:=1 to 100 Do x:=random(500)+1; y:=random(500)+1; d:=random*5+0.2; alp:=random(360); b:=random(300)+1; a:=random(300)+1; alpha:=random(1001); a1:=random(45); a2:=random(90)+270; аКартинка.Ellipse(-a+x,-b+y,a+x,b+y,,toRgb(255,0,0),d,1,alpha,radians(alp),radians(a1),radians(a2)); EndDo; //Текстуры Шир:=0;Выс:=0; аТекст:=aGI.TextureLoadFromMemory(0,аКартинка,0,Шир,Выс); ... //Добавим текст на эту текстуру aGI.TextureUse(аТекст); aGI.TextWorldPerspective(1); //Выводим текст "Проверка" на текстуру, начиная с точки 10,10 в верхнем левом углу текстуры с зеленой "тенью" aGI.RenderText("Проверка","Arial,15,B,0000FF,,1",List.Create(1,аТекст,Шир,Выс),10,10,0.5,"1,1,00FF00,2"); //Сохраним тектуру в виде файла aGI.TextureSavePicture(аТекст,2,"c:\testtexture.png","PNG");