В настоящее время я разрабатываю программу для отображения и управления анимированными спрайтами на рабочем столе.Теперь моя проблема - нарисовать их на экране.Пользователь по-прежнему должен иметь доступ к другим приложениям, если спрайт не препятствует ему.
Мои попытки ниже, и я надеюсь, что кто-то может указать мне правильное направление.Мне все равно, какую библиотеку мне нужно использовать, если производительность достаточно для примерно 20-30 анимированных спрайтов.
Мои попытки пока:
Моя первая попытка была с Qt.Я использовал QWidget с QLabel, чтобы показать растровое изображение объекта.Само растровое изображение имело альфа-канал, и я использовал метод QWidget "setMask (pixmap.mask ()", чтобы удалить все, что я не хочу показывать. Но этот метод нельзя использовать для быстро перемещающихся фигур, таких как движущиеся существаЕсли setMask вызывается через все 50-100 мс, чтобы сменить маску на следующую фазу движения, то нагрузка на процессор становится высокой с одновременным перемещением множества существ.
Моя секундаПопытка состояла в том, чтобы использовать один QWidget для всех существ. Таким образом, setMask вызывается только один раз, а не один раз для каждого существа. Можно перемещать больше существ таким образом, но экран мерцает, как ад, при наведении указателя мыши на существ.
Моей третьей попыткой были функции XShape из Xlib для изменения формы каждого существа, но производительность не намного лучше, чем setMask.
Я попробовал прозрачность в Qt, но если я использую QWidget по всему экрану, загрузка процессора X становится очень высокой при перемещении мыши.Я не знаю, смогу ли я сделать что-то лучше здесь.