2012-06-06 113 views
1

我努力学习的OpenGL ES 2.0,以下基本教程正常工作seteglcontextclientversion(2)不支持OpenGL ES 2.0设备

http://www.droidnova.com/android-3d-game-tutorial-part-ii,328.html

这是我GLSurfaceView推导的构造

public FirstOpenGLSurfaceView(Context context){ 
     super(context); 
     // Set the Renderer for drawing on the GLSurfaceView 
     setEGLContextClientVersion(2); 
     _renderer = new FirstOpenGLRenderer(); 
     setRenderer(_renderer); 
    } 

经过一番实验后,我得出结论,如果发出调用seteglcontextclientversion(2)(注释掉这行代码和渲染工作),项目将无法正常运行。Logcat指示“调用未实现O penGL ES API“,无论何时试图运行上述方法。

我已经更新了清单,并遵循所有的建议在此张贴在这里...(包括manifest.xml中设置)

Android: GLES20: Called unimplemented OpenGL ES API

我听到的建议,这可能表明,OpenGL的ES 2.0在有问题的设备上不可用(或者正在使用模拟器)。在这种情况下,我不认为这是真的,因为当我运行下面的代码时...(在几个教程中找到,我相信此代码说实话)

// Check if the system supports OpenGL ES 2.0. 
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo(); 
final boolean supportsEs2 = configurationInfo.reqGlEsVersion >= 0x20000; 

supportsEs2的值是 '真',这适用于三个独立的设备,即

  • 三星Galaxy Tab 10.1 - 的Android 3.2内核2.6.36.4
  • 谷歌Nexus S - 安卓4.0.4 - 内核3.0.27
  • 三星Galaxy S3 - 安卓4.0.4与内核3.0.15

有没有人经历过这个?

+0

你有清单中的是否为gles?我不确定它是否有所作为,但是这种语言可能意味着没有这个设备将只支持1.0。我不确定是否是这种情况。 http://developer.android.com/guide/topics/manifest/uses-feature-element.html#glEsVersion – Tim

+0

@Tim <使用sdk android:targetSdkVersion =“10”android:minSdkVersion =“10”> 在清单中(也尝试过与SDK版本8,相同的结果) –

+0

我有问题,OpenGL 2.0不会运行后的OpenGL 1.0相同的应用。 – Zammbi

回答

0

我也面临着我的XOLO A500S同样的问题,并使用setEGLConfigChooser()解决我的问题:

myGLSurface.setEGLConfigChooser(5, 6, 5, 0, 24, 8); 
myGLSurface.setEGLContextClientVersion(2); 
myGLSurface.setRenderer(new MyGLRenderer()); 

我来自哪里得到的值setEGLConfigChooser(redSize, greenSize, blueSize, alphaSize, depthSize, stencilSize)

http://gfxbench.com/result.jsp