2

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

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

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

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

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

有任何想法吗?

4

2 回答 2

3

我知道这个问题很老,但它仍然是实际的。

这是解决方案:

在你想隐藏光标的地方,写下:

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);
于 2012-05-24T15:40:12.130 回答
1

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

由 SDL 开发人员 Sam Lantinga 引用;因此这个问题只是一个 SDL 错误(即将修复)。

于 2011-02-16T03:38:55.353 回答