Скрытие мыши курсора / деформации (SDL 1.3) - PullRequest
1 голос
/ 15 февраля 2011

Мне не удалось скрыть курсор мыши (правильно) с помощью 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 ]

2 голосов
/ 24 мая 2012

Я знаю, что этот вопрос старый, но он все еще актуален.

Вот решение:

Там, где вы хотите скрыть курсор, напишите это:

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 голос
/ 16 февраля 2011

* Да, курсоры еще не реализованы в SDL 1.3.Я вроде как намеренно оставляю их невыполненными в качестве напоминания о том, что 1.3 еще не готова.*

Цитата Сэма Лантинга, разработчика SDL ;поэтому этот вопрос - просто ошибка SDL (скоро будет исправлена).

...