2010-08-01 3 views
2

C'est ce que dit le Dalcik LogCat chaque fois que je décommente la dernière ligne, ci-dessous. Donc, quelque part sur le chemin, un contexte actuel n'est pas créé du tout. Pourquoi? Merci pour toute aide."appel à l'API OpenGL ES sans contexte actuel"

final EGL10 egl = (EGL10) EGLContext.getEGL(); 
final EGLDisplay eglDisplay = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); 
egl.eglInitialize(eglDisplay, version); 

int[] configSpec = { 
EGL10.EGL_NONE 
}; 

final EGLConfig[] config = new EGLConfig[1]; 
int num_configs[] = new int[1]; 
egl.eglChooseConfig(eglDisplay, configSpec, config, 1, num_configs); 

final EGLContext eglContext = egl.eglCreateContext(eglDisplay, config[0], EGL10.EGL_NO_CONTEXT, null); 
final GL10 gl = (GL10) eglContext.getGL(); 

int b[] = new int[w * (h)]; 
IntBuffer ib = IntBuffer.wrap(b); 
ib.position(0); 
gl.glReadPixels(w, 0, w, h, GL10.GL_RGB,GL10.GL_UNSIGNED_BYTE, ib); 

Répondre

4

Vous devez utiliser EGL.eglMakeCurrent avant d'appeler une fonction OpenGL. Cela rendra le contexte actuel dans le fil.

+1

Merci de votre aide. Matias. J'ai une question à ce sujet: Afin d'obtenir un argument 'window' à utiliser dans EGL.eglMakeCurrent, je dois obtenir la valeur 'window' retournée par eglCreateWindowSurface (display, config, native_window, attrib_list). Ma question est: qu'est-ce que native_window, et d'où puis-je l'obtenir? – user225626

+0

comment puis-je faire cela dans Android? – Maysam