Her GLSurfaceView
, her bir EGLContext ile üretilmiştir. Aynı dokuya erişim sağlamak için birden fazla GLSurfaceViews
aynı bağlamı kullanarak tüm GPU'larda (here gösterildiği gibi) çalışmaz gibi görünüyor.Android: Ayrı EGL İçeriğinde GLSurfaceViews Arasındaki Dokuları Paylaşın
Sorum şu ki, GL_TEXTURE_EXTERNAL_OES
dokusunu birden çok GLSurfaceViews
numaralı belgede varsayılan, ayrı bağlamlarla paylaşmanın bir yolu olup olmadığını soruyor. Varsayılan olarak, yalnızca GL_TEXTURE_EXTERNAL_OES
'u oluşturan iş parçacığı, dokuya erişebilirdi, ancak diğer dokuların ayrı EGL bağlamlarında bu dokudan okunmasına ve daha sonra ayrı ayrı GLSurfaceViews
'a işlemesine izin vermenin bir yolunu arıyorum.
Herhangi bir rehberlik takdir edilecektir. Teşekkür ederim.
Harika, teşekkürler Fadden! İlk kez 'GLSurfaceViews' kullanmayı denedim, ancak bu kodun yerleşik bir API desteği olmadığı için kod gerçekten dağınıktı. Sıradan 'SurfaceView' yaklaşımı ile devam edeceğim. Bu arada, benzer bir şey yapan herhangi bir açık kaynaklı projeden (yani, bir SurfaceView ile bir EGLContext oluşturmaktan) haberdar mısınız? En benzer Grafika'nın sunduğu yer https://github.com/google/grafika/blob/master/src/com/android/grafika/HardwareScalerActivity.java – Michael
Grafika'nın, SurfaceView'e GLES ile işleyen çok sayıda etkinliği vardır. Tüm com.android.grafika.gles paketini kaldırmanızı öneririm; Dış dokular ile çalışıyorsanız, muhtemelen diğer bitlerin bir kısmını da isteyeceksiniz. "kameradan doku" ve "GL uygulamasını kaydet" diğer örneklerdir. – fadden