SDL と C++ を使用してゲームを作成していますが、ビットマップをレンダリングしようとすると、実行時に「OpenGL がアクティブです。SDL_GL_SwapBuffers() を使用してください」というエラーが表示されます。しかし問題は、私は SDL_GL_SwapBuffers() を使っているということです。コードは次のとおりです。
描画機能:
bool d2Sprite::Draw(SDL_Surface *dest, SDL_Surface *src, int x, int y)
{
if(dest == NULL || src == NULL)
{
cout << "Unable draw sprite! " << SDL_GetError() << endl;
return false;
}
SDL_Rect destR;
destR.x = x;
destR.y = y;
SDL_BlitSurface(src, NULL, dest, &destR);
return true;
}
ゲーム ループ: void d2Main::GameLoop() { cout << "ゲーム ループ実行中!" << endl;
d2Main::Load();
while(d2Main::gameRunning)
{
while(SDL_PollEvent(&event))
{
d2Main::HandleEvents(&event);
}
d2Main::Update();
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
d2Main::Render();
SDL_UpdateRect(screen, 0, 0, 0, 0);
glPopMatrix();
SDL_GL_SwapBuffers(); // <-- I AM USING IT
SDL_Delay(0.8);
}
SDL_Quit();
}