Главная страница
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.045 c
1-1135767790
ASMiD
2005-12-28 14:03
2006.01.29
Экспорт данных в Excel


2-1136973884
Nafania
2006-01-11 13:04
2006.01.29
SOS!!!


2-1136898570
GEN++
2006-01-10 16:09
2006.01.29
Какпрограммно удалить каталог


2-1136139076
SpyBoy
2006-01-01 21:11
2006.01.29
Memo цветной


4-1131972338
Суслик
2005-11-14 15:45
2006.01.29
Вопрос про GetKeyState