Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.29;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
15-1136617814
begin...end
2006-01-07 10:10
2006.01.29
С Днём рождения! 7 января


6-1130125898
Exorcist
2005-10-24 07:51
2006.01.29
Номера соединений у TSeverSocket


15-1136932339
Andy BitOff
2006-01-11 01:32
2006.01.29
Ветка "Начинающим" - читай как орешник


5-1123438797
Michael5
2005-08-07 22:19
2006.01.29
Как добавить в свой визуальный компонент другой (тоже визуальный)


2-1137064344
Practicant
2006-01-12 14:12
2006.01.29
Узнать ширину текста...