Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2009, 12:12   #1
sashonk
Форумчанин
 
Регистрация: 26.10.2009
Сообщений: 170
По умолчанию создание спрайтовой поверхности DirectDraw

Всем доброго времени суток!

я разрабатываю небольшую игру. Программирую на с++ в MSVS2008. Для работы с экраном использую директ-иксовый интерфейс IDirectDrawSurface. Концепция обычная: создаю первичную и вторичную поверхности ( с флиппингом) и спрайтовую поверхность, куда загружаю картинки. Отрисовку экрана делаю блиттигом области спрайтовой поверхности, содержащей нужный фрейм, и вторичной поверхности. Затем флип вторичной и первичной поверхности выводит изображение на экран. Но, почему-то, BltFast вторичной и спрайтовой поверхностей возвращает DDERR_SURFACEBUSY. На сколько мне известно, эта ошибка возникает при попытке доступа к поверхности, заблокированной другим потоком. Но в моем случае все операции с поверхностями проводятся в одном потоке. Более того, Lock() спрайтовой поверхности (с нужными параметрами) возвращает DDERR_INVALIDPARAMS. Возможно, я указал неверные параметры при создании спрайтовой поверхности. Код создания спрайтовой поверхности:

DDSURFACEDESC desc;
LPDIRECTDRAWSURFACE lpsurface;
lpsurface = NULL;
memset(desc, 0, sizeof(DDSURFACEDESC));
desc.dwSize = sizeof(DDSURFACEDESC);
desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
desc.dwHeight = height;
desc->dwWidth = width;
HRESULT rezult = lpDirectDraw->CreateSurface(&desc, &lpsurface, NULL);

знающие люди, подскажите в чем может быть ошибка

Последний раз редактировалось sashonk; 26.10.2009 в 18:21.
sashonk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с directdraw BuT@JL Общие вопросы Delphi 5 22.08.2009 18:33
DirectDraw - переключение видеобуферов. Ulex Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 24.02.2009 01:48
Assembler и DirectDraw Д'якон Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 23.10.2008 08:59
DirectDraw Kostia Gamedev - cоздание игр: Unity, OpenGL, DirectX 29 15.04.2008 22:35
подключение DirectDraw g@mbler Общие вопросы Delphi 1 09.11.2006 20:18