我想創建一個SurfaceTexture與我可以管理的OpenGL紋理,在類似於this answer設置。 (這裏引用:)Android:是否可以在沒有SurfaceView的情況下創建SurfaceTexture?
- 通過OpenGL的
- 創建紋理通過這個紋理新表面紋理的構造。
- 將此新SurfaceTexture賦予相機。
- 確保您使用的是OES_External(請參閱文檔 的詳細信息)。
然而,創建一個OpenGL質地(如在回答的步驟1)中,需要一個EGL上下文,這需要進行電流的EGLSurface,這需要一個表面紋理。看起來創建EGL上下文的唯一方法是創建一個SurfaceView(或具有SurfaceTexture的另一個視圖),並使用它來初始化EGLSurface,然後使EGLContext處於最新狀態。
我的目標是創建一個EGLContext並使其在後臺線程中處於當前狀態,以在相機預覽圖像上執行一些離屏計算(主要使用NDK)。我想創建一個庫,並儘可能獨立於UI。兩個相關的問題:
在Java方面,是否有可能創建一個EGLContext,而無需事先創建SurfaceTexture?
在NDK方面,曾經有一個私人API調用來創建本機窗口android_createDisplaySurface()
,但它不再工作,而且它是一個私有API。有沒有用NDK創建曲面的方法?
我很新的使用EGL,我不明白爲什麼你需要一個EGLContext來進行電流的EGLSurface。在iOS中,可以首先創建EAGLContexts,然後可以根據需要創建幀緩衝區。使用EGL似乎你總是需要一個本地窗口。
非常感謝。我一直在使用ANativeWindow_fromSurface(),它工作的很好,但它仍然需要Java方面的Surface。我會嘗試使用pbuffer選項。我在另一個問題中讀到Pbuffers不適用於所有設備,是對的嗎? – user1906
我不知道pbuffers的問題。 – fadden
@ user1906:你有沒有得到這個工作? –