Документация 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.