Во время инициализации моей программы я вызываю SDL_SetVideoMode () сразу после SDL_Init (), и она вешает мою программу.При выполнении программы, если я нажму Ctrl-C во время зависания, она продолжится как обычно, и все будет работать нормально.
Очевидно, что необходимость каждый раз прерывать SDL_SetVideoMode () не идеальна!У кого-нибудь есть идеи, что это может быть?
Вот простой тестовый код, который я использую:
main.cpp
int main(int argc, char* argv[])
{
Presentation* p = new Presentation(); //Presentation is used to display JPEGs
p->Initialise();
while (p->hasSlides())
{
p->DisplayNextSlide();
sleep(5);
}
return 0;
}
Presentation.cpp
Presentation::Initialise()
{
SDL_Init(SDL_INIT_VIDEO);
m_pScreen = SDL_SetVideoMode(1280,720,16, SDL_DOUBLEBUF | SDL_FULLSCREEN);
if (!m_pScreen)
{
//error handling...
}
SDL_ShowCursor(SDL_DISABLE);
initialised = true;
}
SDL_Surface* m_pImage;
Presentation::DisplayNextSlide()
{
m_pImage = IMG_Load(filename);
if(!m_pImage)
{
//error handling...
}
SDL_BlitSurface(m_pImage,0,m_pScreen,0);
SDL_Flip(m_pScreen);
}