Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Media";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.032 c
9-1074531726
Sos
2004-01-19 20:02
2004.05.23
Во время движения персонаж мигает как фонарь =)


1-1084129036
kas-t
2004-05-09 22:57
2004.05.23
Экономия ресурсов системы...


3-1083320576
Однако
2004-04-30 14:22
2004.05.23
про RzDBLookupComboBox, модальное окно и кнопку Cansel


4-1080914939
mbgmz
2004-04-02 18:08
2004.05.23
NtQuerySystemInformation


1-1083926224
Vadim S
2004-05-07 14:37
2004.05.23
Где живет TBrowseInfo?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский