По сути, мне нужно загрузить в память 4-цветную тайловую карту размером ровно 16 КБ, анимировать 2 тайла, может быть, 3 раза в секунду, и отобразить несколько тайлов в довольно маленькую коробку, я бы сказал, может быть, 100 или около того. пикселей в ширину и, возможно, 80 пикселей в высоту (очень грубо из памяти), которые будут отображаться в QML/Qt Quick, и я мог бы использовать свойство scale
, чтобы увеличить его в QML
В любом случае, я немного не понимаю, как это сделать, но я собираюсь предположить, что C ++ - лучший выбор для этого, что меня устраивает, и после изучения я вижу, что есть 2 основных варианта: QQuickItem и QQuickPaintedItem.
Теперь я понимаю, что QQuickPaintedItem старше и медленнее, потому что сначала он загружает процессор, а затем копирует его на видеокарту, поэтому это не лучшее решение. Наиболее рекомендуемый вариант — QQuickItem, который рендерится на видеокарте с OpenGL.
Но мне не нужно что-то лишнее, я имею в виду, что здесь я имею дело с ~ 100 x 80 пикселей, здесь нет операций с линиями или фигурами, нет шейдеров, ничего подобного. Это просто набор пикселей, поэтому мне интересно, не лучше ли просто использовать QQuickPaintedItem.
Однако может быть другое решение всего этого, о котором я не знаю, и в этом случае я хотел бы услышать его, может быть, есть гораздо более простой способ для всего этого.
Любая помощь в выяснении этого была бы отличной, спасибо заранее.
QSGNode
вместоQQuickItem
, потому чтоQQuickPaintedItem
наследуется отQQuickItem
. Возможно, это сообщение может вам немного помочь ? - person Amfasis   schedule 30.01.2020QQuickPaintedItem
, а затем использоватьsetRenderTarget(FramebufferObject)
. Этого должно быть достаточно для вашего варианта использования. - person reckless   schedule 30.01.2020