Difference between revisions of "GI.TextureLoadFromMemory"
1>Admin |
m (1 revision imported) |
(No difference)
| |
Latest revision as of 07:53, 22 January 2025
| 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");