Вниз
Скачать: CL | DM;

TDirectDrawSurface из DelphiX   Найти похожие ветки 

← →
ПсихЪ ©   (2004-03-09 02:00) [0]

Пишу спрайтовый движок. Решил использовать для отображения DelphiX. Написал класс для работы с потоками. В файл пишется потоком битмэп. Затем загружаю его в TGraphic. А из него загружаю на поверхность с помощью TDirectDrawSurface.LoadFromGraphic. Но возникает проблема обратного сохранения с поверхности в файл. Желательно для начала сохранить содержимое в TGraphic а затем уже в файл. Хотя можно было бы сразу отправить в поток. Но в классе TDirectDraw нет процедур сохранения, как то, SaveToFile, SaveToGraphic и SaveToStream. Как быть в этом случае?


← →
KilkennyCat ©   (2004-03-09 02:16) [1]

Вообще-то, может это как раз из-за использования ДелфиИкс... не знаю. Я его сразу бросил, увидев разницу между непосредственным обращением к библиотекам директикса и этим компонентом. При нормальной работе (без делфиикса) я могу без проблем сохранить весь экран, кусок экрана или вторичной поверхности...


← →
ПсихЪ ©   (2004-03-09 02:42) [2]

Просто используя DelphiX очень быстро можно создавать тулзы для движка. Например редактор игровых сцен, персонажей, спрайтов. Сначала я юзал стандартный TDXimageList. С его помощью можно было и выводить графику и сохранять её в файл, но это оказалось в последствии не удобно для отдельного использования спрйтового класс в других прогах. Поэтому решил от него отказаться в пользу TDirectDrawSurface, на котором он основан. Осталось только разобраться с сохранением в TGraphic. Расскажи поподробнее про то, как ты сохранял обычный IDDrawSurface(2,4,7) в файл или TBitmap. Может это мне чем-нибудь поможет...


← →
cyborg ©   (2004-03-09 09:06) [3]


Var
 hRet : Cardinal;
 desc : TDDSURFACEDESC2;
...
 FillChar(ddsd,SizeOf(ddsd),0);
 desc.dwSize:=SizeOf(desc);
 hRet := Surface.Lock(nil, desc, DDLOCK_WAIT, 0);
 desc.lpSurface - адрес графических данных, можно читать оттуда и писать туда
 hRet:=Surface.Unlock(nil);

Учитывай разряд цвета и ширину поверхности



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
1-1084119376
danver
2004-05-09 20:16
2004.05.23
String и утечка памяти


3-1083055177
Term
2004-04-27 12:39
2004.05.23
MIDAS..... помогите разобраться что я намудрил


3-1082961282
}|{yk
2004-04-26 10:34
2004.05.23
XML + FireBird


1-1084026172
t_killa
2004-05-08 18:22
2004.05.23
Позднее наследование


14-1083516596
Maxim Vetera
2004-05-02 20:49
2004.05.23
Заглядывая в будущее!




   Наверх