Инициализация OpenAL ухудшает производительность моей игры для iPhone - PullRequest
4 голосов
/ 20 августа 2011

У меня проблема с производительностью OpenAL в моей игре для iPhone.Моя игра работает со скоростью 60 кадров в секунду, но когда я инициализирую OpenAL, игра начинает дергаться.Это мой код инициализации:

    ALCdevice* device = alcOpenDevice(NULL);
    ALCcontext *context;

    if(device) {
        context = alcCreateContext(device, NULL);
        alcMakeContextCurrent(context);
    }

Я не создаю никаких OpenAL источников и не загружаю / не воспроизводит звуки.Дрожание (игра дергается постоянно) вызвано инициализацией OpenAL.Инструменты XCode говорят, что игра работает со стабильными 60 кадрами в секунду, но она явно дрожит (когда я не запускаю код выше, игра работает гладко).

Этого также не происходит на старом iPod Touch 2Gс iOS 3.1.3.На всех моих других устройствах с iOS 4 происходит дрожание, что тоже безумие.Я также пытался поместить материал OpenAL в отдельный поток, но это не помогает.

Кто-нибудь заметил подобное поведение?

1 Ответ

0 голосов
/ 19 февраля 2014

Попробуйте позвонить alcGetError() после настройки контекста, чтобы убедиться в его успешности.

Это сбой на симуляторе или на реальном телефоне?

Вы делаете что-нибудь со звуком после кодаВы отправили?В коде, который вы разместили, если alcOpenDevice потерпит неудачу, у вас не будет контекста, но вы также не вернетесь.

...