Главная страница
    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.45 MB
Время: 0.036 c
4-1132453919
hed
2005-11-20 05:31
2006.01.29
Системная директория Windows


6-1129800785
Bazi
2005-10-20 13:33
2006.01.29
Проблема с TClientSocket. "Непонятные" явления.


3-1132923178
tamroF
2005-11-25 15:52
2006.01.29
MS SQL сервер - это Microsoft SQL?


15-1136384621
iamdanil
2006-01-04 17:23
2006.01.29
красивые компоненты


4-1131122552
YuRock
2005-11-04 19:42
2006.01.29
Toner levels для HP, Canon, Lexmark





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