Быстрая перерисовка текстуры после блита в Кивах - PullRequest
1 голос
/ 19 октября 2019

Документация Kivy читается так, что для прямоугольника с текстурой, созданной и удаленной из массива пикселей, например:

pixels = bytearray([0x00, 0x00, 0x00] * (256 * 192))
texture = kivy.graphics.texture.Texture.create(size=(256, 192),
                                               colorfmt='rgb')
texture.blit_buffer(pixels, colorfmt='rgb', bufferfmt='ubyte')

, его можно обновить с помощью вызова ask_update() для любогосвязанный холст.

Проблема в том, что, несмотря на то, что вызовы blit_buffer() выполняются в одно мгновение, следующий ask_update() кажется очень дорогим с точки зрения производительности, так что, скажем, с вызовом обновления вместо FPSпадает примерно с 8000 до 60 на моей машине. Для сравнения с Cairo изменение массива пикселей cairo.ImageSurface вызывает перерисовку изображения без дополнительных вызовов и, кажется, работает очень быстро.

Вопрос в том, существует ли более быстрый способ перерисовки скрытых пикселей в Kivy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...