2

我查看了 stackoverflow 上的解决方案,但似乎都没有解决我的问题。我已在清单文件中包含 API:

<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

4

3 回答 3

3

改变:

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

它对我有用。

于 2013-01-27T15:03:32.387 回答
1

看起来 Android 使用 OpenGL ES 的 2.0 版本的能力存在一些问题,这阻碍了它在设备上的工作。为了解决这个问题,我取消了注释

setEGLContextClientVersion(2);

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

于 2012-07-02T00:00:09.837 回答
0

这可能是因为您在 Renderer 实现中使用了 GL10 实例作为 onSurfaceCreated()、onSurfaceChanged() 和 onDrawFrame() 中的参数。由于您打算使用 OpenGL ES 2.0,我们可以也可能不使用该实例,而是使用替代方案。还有其他选择!这就是我们在网上看到那些参数名称和 unUsed 或类似代码的原因!

它肯定没有以最好的方式记录下来!

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

这是一个关于如何开始使用 OpenGL ES 2.0 的好例子

http://androidbook.com/item/4254

于 2014-12-27T17:30:50.603 回答