Можно ли рисовать на SurfaceTexture, прикрепленной к камере? - PullRequest
4 голосов
/ 21 декабря 2011

Я хочу нарисовать поверх SurfaceTexture, который подключен к Camera через setPreviewTexture.Я могу получить SurfaceTexture на SurfaceTextureListener.Но если я просто попытаюсь использовать eglCreateWindowSurface & eglMakeCurrent, то произойдет сбой из-за того, что поверхность уже подключена.

1) Можно ли вообще рисовать на этой поверхности?Или же привязка к камере делает это невозможным.

2) Если это невозможно.Может ли поверхность использоваться (или копироваться) быстро в текстуру OpenGL и использоваться на отдельной поверхности?Если да, то как?

3) Если нет, какой самый быстрый способ получить предварительный просмотр камеры из SurfaceTexture и в OpenGL?

Также обратите внимание, код, который дал мне ошибкуна то, что уже на связи был вдохновлен пост Ромена Гая здесь: http://groups.google.com/group/android-developers/browse_thread/thread/539457146a401cf1

1 Ответ

4 голосов
/ 03 января 2012

Да, это возможно, на самом деле весь смысл SurfaceTexture. Проблема была в том, что я думал о них задом наперед. Чтобы заставить их работать, вам нужно:

1) Create a texture through OpenGL.
2) Pass this texture to the constructor of new SurfaceTexture.
3) Give this new SurfaceTexture to the camera.
4) Make sure you are using OES_External (see documentation for
details).

Моя самая большая проблема заключалась в попытке выяснить, как сделать обратное. То есть создайте SurfaceTexture и передайте его в OpenGL. Но наоборот - правильный способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...