隐藏光标/变形鼠标(SDL 1.3)

时间:2011-02-15 02:32:52

标签: c++ opengl mouse sdl ubuntu-10.10

我无法使用SDL隐藏鼠标光标(正确)。我正在使用Ubuntu 10.10并且一直在使用以下内容:

SDL_ShowCursor( SDL_DISABLE ); 
SDL_WarpMouse( x, y ); 

两者都没有正常运作;它似乎没有视觉效果,但是文档声明了触发的鼠标移动事件,但鼠标不会移动到屏幕上或者在屏幕上消失。

创建SDL窗口(通过SDL_CreateWindow),标志为SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN。全屏对结果没有影响。

在全屏模式下以低分辨率运行窗口(例如640x480),确实提供了所需的命令效果;但光标从底层窗口渗透。 在1024x768左右,它有一个完全不同的光标图标。 随着我的分辨率越来越高,它会停止流血,就像它的窗口(Gnome光标)一样。没有上述命令的影响。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我知道这个问题已经过时了,但它仍然存在。

以下是解决方案:

如果要隐藏光标,请写下:

SDL_Cursor *cursor; /* Make this variable visible in the point
                       where you exit the program */
int32_t cursorData[2] = {0, 0};
cursor = SDL_CreateCursor((Uint8 *)cursorData, (Uint8 *)cursorData, 8, 8, 4, 4);
SDL_SetCursor(cursor);

退出计划的地方:

SDL_FreeCursor(cursor);

答案 1 :(得分:1)

*是的,游标尚未在SDL 1.3中实现。我有点故意让他们没有实现作为提醒,1.3尚未准备好。 *

Quote by Sam Lantinga, an SDL Developer;因此,这个问题只是一个SDL错误(很快就会修复)。