2010-10-20 7 views
1

Я работаю над некоторым GP-GPU-кодом на платформе OMAP 3530, и меня затушевывает отсутствие функции glGetTexImage в openGL ES 2.0. Поскольку платформа использует встроенную память для GPU, мне было интересно, есть ли какой-нибудь хак, который я могу сделать, чтобы получить указатель непосредственно на выделенную текстуру в памяти. Таким образом, я мог бы читать свои данные, не проталкивая их через фреймбуфер, который отбрасывает много данных.Возможно ли получить доступ к текстурной памяти OpenGL ES 2.0 непосредственно на встроенной платформе?

ответ

2

Насколько я знаю, нет способа сделать то, что вы описали. Самый близкий и эффективный способ сделать это - это рендеринг для FBO, таким образом можно связать текстуру в виде цветового буфера и использовать glReadPixels, чтобы вернуть пиксели. Это все еще требует считывания Framebuffers из-за glReadPixels api. Есть несколько преимуществ использования кО по сравнению с другими методами, хотя:

  1. вы можете создать и использовать несколько FBOs в том же EGLContext (нет необходимости переключения контекста, если вы должны были использовать пиксельный буфер, например)
  2. вы можете поделиться цвет (и глубины/трафарета) буфера через кО
  3. вы можете прикрепить текстуры непосредственно к FBO без необходимости делать операцию копирования

 Смежные вопросы

  • Нет связанных вопросов^_^