【问题标题】:Hiding the Cursor / Warp Mouse (SDL 1.3)隐藏光标/变形鼠标 (SDL 1.3)
【发布时间】:2011-02-15 02:32:51
【问题描述】:

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

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

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

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

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

有什么想法吗?

【问题讨论】:

  • 我相信你的意思是 SDL_OPENGL。我认为您不需要 SDL_WINDOW_SHOWN 是什么。至于您的经编代码,它与我的完全匹配。我不太确定可能出了什么问题。
  • 我想我应该注意我使用的是 SDL 1.3

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


【解决方案1】:

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

解决办法如下:

你想隐藏光标的地方,写这个:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-24
      • 1970-01-01
      • 2013-09-16
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      相关资源
      最近更新 更多