2011-02-15 292 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);