|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.10.2009, 12:12 | #1 |
Форумчанин
Регистрация: 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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с 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 |