SDL_renderer становится нулевым при создании

У меня есть эта досадная проблема: когда я создаю SDL_renderer в одном из моих классов, он становится nullptr, но при создании другого в другом классе он функционирует нормально.

Создание рендерера в моем классе Engine работает нормально:

m_window = SDL_CreateWindow("Breakout",
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
m_window_width, m_window_height,
SDL_WINDOW_OPENGL);

m_renderer = SDL_CreateRenderer(m_window, -1,
SDL_RENDERER_ACCELERATED);

Создавая рендерер в моем классе DrawManager, рендерер становится nullptr:

bool DrawManager::Initialize(SDL_Window *window, int width, int height) {
m_renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

if(m_renderer == nullptr) {
return false;
};

return true;

};

Переменные m_renderer создаются в каждом заголовочном файле соответствующего класса.

Окно, созданное в классе Engine, отправляется в метод Initialize DrawManager, и окно не является nullptr, а только средством визуализации. Оба класса имеют одинаковые включения SDL.

У кого-нибудь есть идеи, что не так с кодом?

0

Решение

Вы хотите рисовать с OpenGL?

Если это так, вам не нужно рендерера. В противном случае, если вы хотите использовать простые функции рисования SDL, попробуйте удалить SDL_WINDOW_OPENGL флаг от SDL_CreateWindow(),

0

Другие решения

Ты звонишь SDL_CreateRenderer дважды? Если это так, попробуйте вызвать его только один раз и передать указатель.

0

По вопросам рекламы [email protected]