2011-02-15 181 views
1

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

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

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

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

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

任何想法?

+0

我相信你的意思SDL_OPENGL。我不认为你需要任何SDL_WINDOW_SHOWN。至于你的warp代码,它完全符合我的要求。我不完全确定什么是错的。 – TheBuzzSaw 2011-02-15 03:32:18

回答

1

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

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

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);