Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> структура WAVEFORMATEX, проблемы с WAVEFORMATEX 
:(
    Опции темы
chaplin
Дата 16.10.2005, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 12.9.2005

Репутация: нет
Всего: нет



Привет всем.
Я создаю программу с 3d-эффектами в DirectSound. Проблема в том, что не удается создать интерфейс IDirectSound3DListener и IDirectSound3DBuffer. Вот код:

Код

IDirectSound *DS;
IDirectSoundBuffer *DSBuffer;
IDirectSound3DBuffer *DS3DBuffer;
IDirectSound3DListener *DS3DListener;
IDirectSoundNotify *DSNotify;
WAVEFORMATEX wfx;
DSBUFFERDESC desc;
DSBPOSITIONNOTIFY dsp[1];
void *ptr;
DWORD size;
DWORD readed;
wfx.wFormatTag = WAVE_FORMAT_PCM;
wfx.nChannels = 1;
wfx.nSamplesPerSec = 11025;
wfx.nBlockAlign = 1;
wfx.nAvgBytesPerSec = 11025;
wfx.wBitsPerSample = 8;
wfx.cbSize = 0;
DirectSoundCreate(Guid, &DS, NULL);
DS->SetCooperativeLevel(Handle, CLevel);
desc.dwSize = sizeof(desc);
desc.dwFlags = DSBCAPS_CTRL3D | DSBCAPS_CTRLFREQUENCY | DSBCAPS_CTRLDEFAULT | DSBCAPS_CTRLPOSITIONNOTIFY | DSBCAPS_GETCURRENTPOSITION2 | DSBCAPS_STATIC;
desc.dwBufferBytes = BufferBytes;
desc.lpwfxFormat = &wfx;
desc.dwReserved = 0;
DS->CreateSoundBuffer(&desc, &DSBuffer, NULL);
if(FAILED(DSBuffer->QueryInterface(IID_IDirectSound3DBuffer, (void**) &DS3DBuffer))) MessageBoxA(NULL, "Не удается создать IDirectSound3DBuffer", "Ошибка", MB_OK + MB_ICONERROR);
if(FAILED(DSBuffer->QueryInterface(IID_IDirectSound3DListener, (void**) &DS3DListener)))MessageBoxA(NULL, "Не удается создать IDirectSound3DListener", "Ошибка", MB_OK + MB_ICONERROR);
if(FAILED(DSBuffer->QueryInterface(IID_IDirectSoundNotify, (void**) &DSNotify))) MessageBoxA(NULL, "Не удается создать IDirectSoundNotify", "Ошибка", MB_OK + MB_ICONERROR);


если химичить с WAVEFORMATEX, то иногда удается создать интерфейс IDirectSound3DBuffer, но с IDirectSound3DListener - глухо. Пробовал устанавливать значения структуры WAVEFORMATEX и до объявления в DSBUFFERDESC и после, одно и то же, при создании IDirectSound3DBuffer возвращает ошибку "Неверный параметр". Что надо сделать, чтобы параметр был верным? Компилятор использую BCB6.
PM MAIL   Вверх
chaplin
Дата 16.10.2005, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 12.9.2005

Репутация: нет
Всего: нет



все, вник: IDirectSound3DListener работает только с первичными буфферами, а я походу создаю вторичный...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0407 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.