2012-07-01 30 views
2

我已经浏览了stackoverflow上的解决方案,它们都不能解决我的问题。我已经包含了API在我的清单文件:libEGL称为未实现的OpenGL ES Api Android

<uses-sdk android:minSdkVersion="10" /> 
<uses-feature android:required="true" android:glEsVersion="0x00020000"/> 
<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".HidderActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

和我的包装的代码是:

class GLSurface extends GLSurfaceView 
{ 
    final renderer r; 
    public GLSurface(Context context) 

    { 
     super(context); 

     setEGLContextClientVersion(2); 
     r = new renderer(); 
     setRenderer(r); 
     setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY); 
    } 
} 

这是错误。

调用未实现的OpenGL ES API

+0

你测试使用何种设备和Android版本开始一个很好的例子? –

+0

T959 Galaxy 2 T-Mobile和2.3.5 Android版本, –

回答

1

看起来有一些事情与使用OpenGL ES的2.0 persion,从设备上工作的阻碍它的机器人会的能力。为了解决这个问题,我取消注释

setEGLContextClientVersion(2); 

行和它的工作。然而,这似乎把该版本(1.1?)。取决于你想做什么,这可能不是一个好的解决方案,但对于我制作2D游戏来说,这并不重要。

+0

这不是一个真正的解决方案,因为该设备应该支持2.0版本 – Maysam

+0

这是2岁。如果我没有记错,它会默认为1.x版本。 –

3

更改:

mGLView.setEGLContextClientVersion(2); - > mGLView.setEGLContextClientVersion(1);

它为我工作。

0

这可能是因为您正在使用GL10实例作为Renderer实现中onSurfaceCreated(),onSurfaceChanged()和onDrawFrame()中的参数。既然你打算使用OpenGL ES 2.0,我们可以也可能不使用这个实例,而是使用替代方法。有替代品!这就是我们在网络中看到这些参数名称和未使用或类似代码的原因!

它确实没有被记录的最佳方式!

这种方式可能是你可以探索更多基于3D的OpenGL。

这里是如何开始使用OpenGL ES 2.0的

http://androidbook.com/item/4254