CAOpenGLLayer отображение удаленного контекста - PullRequest
6 голосов
/ 08 ноября 2011

У меня есть подкласс CAOpenGLLayer class, который переопределяет drawInCGLContext, там я рисую прямоугольник с OpenGL. CAOpenGLLayer добавляется к CALayer и отображается.

Поэтому, когда я хотел бы нарисовать что-то, мне нужно было бы сделать это в drawInCGLContext с этой архитектурой.

Я хотел бы иметь своего рода контекст, используемый другим class для рисования, анимации или визуализации, но будет отображаться каждый раз, когда происходит drawInCGLContext.

Так что в основном единственное, что должен делать мой подкласс, - это отображение пульта (OpenGL)context, каков наилучший способ добиться этого? Или я должен рассмотреть другой подход?

* Не использовать CALayer не вариант.

1 Ответ

3 голосов
/ 02 января 2012

Рассматривали ли вы использование объекта буфера кадра (FBO)?Вы можете создать тот, который опирается на текстуру.Ваш «удаленный» класс рисования может рисовать в FBO, что заставит рисунок перейти к текстуре, которая его поддерживает.Затем вы можете использовать эту текстуру в другом месте, например, перенести ее на экран в вашем подклассе CAOpenGLLayer.См. эту ссылку , чтобы узнать, как использовать FBO.

...