Главная страница
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.034 c
15-1136735854
antonn
2006-01-08 18:57
2006.01.29
Делаю MUI, есть пара вопросов


3-1133388279
P.V.
2005-12-01 01:04
2006.01.29
транзакции


15-1136322446
!Han!
2006-01-04 00:07
2006.01.29
Библя Делфи


6-1129925944
Navi
2005-10-22 00:19
2006.01.29
В локальной сети TSocketClient не работает.


15-1136481169
jack128
2006-01-05 20:12
2006.01.29
На Украине нашли месторождение алмазов