我想改變我的應用程序與窗口的大小:是否可以vsync SDL_SetVideoMode?
mysurface = SDL_SetVideoMode(width, height, 32, SDL_OPENGL);
雖然我使用VSYNC swapbuffers(在駕駛員的xorg-視頻-ATI),我可以看到閃爍的窗口大小改變時(我想一個或多個黑幀):
void Video::draw()
{
if (videoChanged){
mysurface = SDL_SetVideoMode(width, height, 32, SDL_OPENGL);
scene->init(); //Update glFrustum & glViewPort
}
scene->draw();
SDL_GL_SwapBuffers();
}
所以,請有人知道,如果...
的SDL_SetVideoMode不vsync'ed爲是SDL_GL_SwapBuffers()?
或者是破壞窗口並創建另一個緩衝區是黑色的?
有人知道一個工作代碼來做到這一點?也許在freeglut中?
我試過SDL2並且閃爍仍然存在......但我現在認爲閃爍是Xorg功能還是radeon功能......我查找了glxgears源代碼,並且在發生調整大小時立即執行重繪...所以fps保持vsync'ed,但閃爍發生,我不能理解...... :( –
也許這是導致許多程序,包括我的閃爍:background-pixmap - >「服務器自動瓷磚區域與窗口的背景除非窗口背景爲無「 –
我將背景像素從glxgears和chaged background pixmap中刪除爲None。現在glxgears沒有閃爍,但是我的SDL窗口仍然有,如果我可以禁用它,我會問另一個問題。非常感謝你! –