Evet, tabi ki.
Önce bir iş parçacığı bir bağlam oluşturmak gerekir:
EGLint contextAttrs[] =
{
EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE
};
if (m_Context == 0)
{
LOG_ERROR("m_Context wasn't initialized for some reason");
}
// create a shared context for this thread
m_LocalThreadContext = eglCreateContext(m_Display, m_Config, m_Context, contextAttrs);
Elbette olması gerekir:
EGLint contextAttrs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE
};
LOG_INFO("creating context");
if (!(m_Context = eglCreateContext(m_Display, m_Config, 0, contextAttrs)))
{
LOG_ERROR("eglCreateContext() returned error %d", eglGetError());
return false;
}
Sonra diğer dizisindeki böyle bir ortak bağlam oluşturmak GLES ile yapmak istediğiniz güncellemeleri senkronize etmek için bazı mutex/semaphores. Mesela sen Sonra iplik
Merhaba birinden vb dokular, yük gölgelendiricileri oluşturabilir
çağırabilir diğer parçacığı önce iplik içinde
yapmanız gereken, ben 2 opengl iplik senkronizasyonundan acı çekiyorum. MakeCurrent'ın yanı sıra, başkalarının neye dikkat etmeliyim? Bu noktayı sunan bazı makaleler var mı? – dragonfly
Tam bir örnek için şu kaynak koduna bakabilirsiniz: https://github.com/klhurley/EffectsManager/blob/master/src/Android/Renderer.cpp –