Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в glscene e грузить текстуры из ресурсов ? [Delphi, 5, Windows, РњР•]


Кен ©   (2003-01-23 02:00:00) 

Sphere1.Material.Texture.Image := ??? ;
Можно конечно создать специальный Sphere12345 в который загрузить текстуру, а потом cделать

Sphere1.Material.Texture.Image := Sphere12345.Material.Texture.Image;

Но такой способ почему то притормаживает. Да и с файлом ресурсов намного удобнее работать.


MRB_SPB   (2003-01-23 10:23:00) [1]

Вообще это делается так а GLScene сам прикрути

var ResStream : TResourceStream;

ResStream := TResourceStream.Create(hInstance,
PChar(copy(Filename, 1, Pos(".", Filename)-1)), "BMP");
ResStream.ReadBuffer(FileHeader,
SizeOf(FileHeader));
ResStream.ReadBuffer(InfoHeader,
SizeOf(InfoHeader));
PaletteLength := InfoHeader.biClrUsed;
SetLength(Palette, PaletteLength);
ResStream.ReadBuffer(Palette, PaletteLength);

Width := InfoHeader.biWidth;
Height := InfoHeader.biHeight;

BitmapLength := InfoHeader.biSizeImage;
if BitmapLength = 0 then
BitmapLength := Width * Height *
InfoHeader.biBitCount Div 8;

GetMem(pData, BitmapLength);
ResStream.ReadBuffer(pData^, BitmapLength);
ResStream.Free;

и.т.п это для BMP для остальных те же яйца только вид сбоку.

Например

ResStream := TResourceStream.Create(hInstance, PChar(copy(Filename, 1, Pos(".", Filename)-1)), "JPEG");
JPG.LoadFromStream(ResStream);
ResStream.Free;


Наверх

Титульная страница Поиск, карта сайта Написать письмо