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

Вниз

DirectDraw. Поверхности большого размера.   Найти похожие ветки 

 
Pinochet   (2005-08-17 23:20) [0]

Такая тема. Есть у меня 2d игра с которой я уже вожусь немало времени. Игра ента отменно работает на хороших, быстрых, современных копьютерах. Но! При попытке запуска её на Pentium 233MMX c 4Mb Video игрушка приказывает долго жить. Опытным путем было установлено, что косяк происходит при создании поверхности (IDIRECTDRAWSURFACE7) из bitmap"a, геометрический размер которого привышает разрешение экрана (скажем установлено разрешение 640x480, а пытаюсь загрузить картинку 50x1000). Сразу скажу что все внеэкранные поверхности у меня создаются в системной памяти:
ddsCaps.dwCaps:=DDSCAPS_OFFSCREENPLAIN+DDSCAPS_SYSTEMMEMORY;
Кроме того, самое интересное, что до момента загрузки подобной картинки у меня создается аж 2 поверхности, размеры которых многократно привышают размеры экрана, только на них не загружается ничего, они на данном этапе пустые...
  Почему? Где беспредел :). (Грешу на нехватку оперативки, их там всего 32Mb, но как же диспетчер виртуальной памяти....)


 
Sapersky   (2005-08-18 14:01) [1]

Для начала нужно определить, что всё-таки глючит - создание поверхности (что возвращает CreateSurface?) или создание/загрузка битмапа.
Если битмап - например, GDI не в состоянии создать handle - грузить картинку вручную.
После загрузки освобождать битмап/промежуточный буфер для экономии памяти. Или при создании поверхности указать ей, чтобы использовала память битмапа (если форматы совпадают - в SDK это называется client memory surfaces).


 
A22 ©   (2005-08-18 19:49) [2]

а зачем вообще ориентироваться на 233ммх с 4мб видео? такое сейчас и найти-то трудно...


 
Pinochet ©   (2005-08-18 22:17) [3]

>а зачем вообще ориентироваться на 233ммх с 4мб видео? такое сейчас и найти-то трудно...

Дело принципа. Интересно знать почему, может это какие-то аппаратные особенности, которые я незнаю, или еще что.


 
Сергей (аноним)   (2005-08-19 20:47) [4]

Могу ошибаться, но вроде как с некоторыми видюхами связано ограничение на размер создаваемой поверхности равное разрешению экрана.


 
Grell ©   (2005-08-19 20:54) [5]


> Могу ошибаться, но вроде как с некоторыми видюхами связано
> ограничение на размер создаваемой поверхности равное разрешению
> экрана.

Да, так и есть, Краснов об этом писал помнится. Но автор утверждает что


> Кроме того, самое интересное, что до момента загрузки подобной
> картинки у меня создается аж 2 поверхности, размеры которых
> многократно привышают размеры экрана, только на них не загружается
> ничего, они на данном этапе пустые...



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

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

Наверх





Память: 0.46 MB
Время: 0.035 c
3-1133197691
Mmmaloy
2005-11-28 20:08
2006.01.29
ADO, Access 2000, Delphi 6, и Windows 95


8-1122285790
Масяня
2005-07-25 14:03
2006.01.29
Громкость и эквалайзер


5-1123525324
Michael5
2005-08-08 22:22
2006.01.29
А как, создав компонент, и добавив туда еще один, использовать


1-1134938366
ZLOFENIX
2005-12-18 23:39
2006.01.29
Помогите перевести на Delphi


1-1135417918
NailMan
2005-12-24 12:51
2006.01.29
Глюк Дельфи с записью строковой переменной





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский