Вам придется использовать внеэкранный рендеринг. libcinder
кажется просто оболочкой для OpenGL
в плане графики, поэтому вы можете использовать код OpenGL
для достижения этой цели.
Поскольку OpenGL
не имеет встроенного механизма рендеринга за пределами экрана, вам придется использовать расширение. Учебное пособие по использованию такого расширения, называемого Framebuffer Rendering, можно найти здесь . Вам придется изменить renderer.cpp
, чтобы использовать команды этого расширения.
Альтернативой использованию такого расширения является использование Mesa 3D
, который является реализацией OpenGL
с открытым исходным кодом. Mesa
имеет программный механизм рендеринга, который позволяет выполнять рендеринг в память без использования видеокарты. Это означает, что вам не нужна видеокарта, но, с другой стороны, рендеринг может быть медленным. Mesa
содержит пример рендеринга в буфер памяти в src/osdemos/
в файле Demos zip
. Это решение, вероятно, потребует от вас написания полного Renderer
класса, похожего на Renderer2d
и RendererGl
, который будет использовать вторжения Mesa
вместо Windows
или Mac
.