Я использую библиотеку, которая предоставляет мне фреймы, которые я должен перетаскивать на экран. Я выделяю буфер, и эта библиотека пишет прямо в этот буфер. Когда мне нужно, я должен перетаскивать указанную часть этого буфера на экран. Я рендеринг с использованием Qt с движком рисования OpenGL / ES.
Вопрос в том, какой самый быстрый способ подняться на экран? В настоящее время я загружаю буфер в QImage, используя конструктор, который принимает указатель на данные. Это должно избежать любой копии. Затем я использую метод drawImage в QPainter, чтобы перетащить на экран правильную область. Я предполагаю, что этот метод загружает копию области в память графического процессора и затем перетаскивает на экран, используя текстуру OpenGL.
Можно ли избежать этой копии, чтобы ускорить процесс? Можно ли, например, рисовать непосредственно в текстуре OpenGL, чтобы мне не пришлось переходить на GPU? Я читаю объекты буфера пикселей. Может ли это быть решением? Могу ли я использовать для этой цели объект QGLFramebufferObject?