В настоящее время я пытаюсь работать как с textureView, так и с OpenGL, и моей целью является чтение буфера из SurfaceTexture.После долгих поисков я нашел grafika , но не смог найти подходящий пример, использующий textureview. (И по какой-то причине мне пришлось использовать textureView)
Я пытался, что ясоздал текстуру и попытался установить textureView для ее использования:
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(null);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_textureview);
displayTextureView=(TextureView) findViewById(R.id.camera_textureview);
mEglCore = new EglCore(null, EglCore.FLAG_RECORDABLE);
mOffscreenSurface=new OffscreenSurface(mEglCore,VIDEO_WIDTH,VIDEO_HEIGHT);
mOffscreenSurface.makeCurrent();
mFullFrameBlit = new FullFrameRect(
new Texture2dProgram(Texture2dProgram.ProgramType.TEXTURE_EXT));
mTextureId = mFullFrameBlit.createTextureObject();
mCameraTexture = new SurfaceTexture(false);
mCameraTexture.attachToGLContext(mTextureId);
displayTextureView.setSurfaceTextureListener(mSurfaceTextureListener);
displayTextureView.setSurfaceTexture(mCameraTexture);
mHandler = new MainHandler(this);
Initialized=true;
}
Но тогда это вызывает у меня ошибку:
GLConsumer уже присоединен к контексту
Я также нашел this , но после того, как я попробовал описанный здесь метод, я получил полностью из glReadPixels метод, поэтому я полагаю, что SurfaceTexture должен быть присоединен к GLcontext для чтения пикселей.
Кто-нибудь может мне помочь?