SDL鼠标范围调整大小

时间:2012-08-23 15:23:08

标签: linux sdl

我正在Ubuntu上开发SDL OpenGL应用程序,并注意到设置新窗口大小时鼠标范围有问题。我的应用程序的初始大小是600x400,鼠标范围(x,y)反映了这一点。但是,当用户将屏幕更改为任何其他大小(使用给定的预定义大小)时,鼠标范围仍然只反映600x400的屏幕大小,并导致鼠标位置功能出现问题。

要设置新分辨率,我打电话: SDL_SetVideoMode(Width, Height, 32, SDL_OPENGL);据我所知,应该处理鼠标范围调整大小,但在Linux中似乎没有这样做。谁能给我一个解决这个问题的方法呢?

注意:可能的hack似乎是退出SDL并使用SDL_Init(SDL_INIT_EVERYTHING);重新初始化

2 个答案:

答案 0 :(得分:1)

经过一番挖掘后,我发现问题是我在更改尺寸之后稍后调用了SDL_GetMouseState(0,0)这显然是在干扰重新计算鼠标范围。但是,我已经完成了SDL源代码,但我无法确定这将如何影响它。似乎有一些鼠标状态切换可能导致它。

答案 1 :(得分:0)

我随时调整窗口大小,执行以下操作来刷新视口:

m_ParentWindow = SDL_SetVideoMode( m_width, m_height, m_depth, m_SDL_Vid_Flags );

glViewport(0,0,m_width,m_height);

Clear();

清除电话的地方:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();