OpenGL ES 2.0的支持为Android? [英] OpenGL ES 2.0 Support for Android?

查看:314
本文介绍了OpenGL ES 2.0的支持为Android?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我见过多次发生在这个主题,其出发来迷惑我。我真的希望有人可以给我一个明确的答案! :)

I've seen multiple takes on this topic and its starting to confuse me. I really hope someone can give me a definitive answer! :)

我猜是直言不讳:做Android模拟器支持OpenGL ES 2.0的?我见过一些人说:是的,但你必须改变一些设置。而我也看到了不,不支持它,期限。这是我做了什么,试图纠正这个问题,包括我得到了一些错误信息。

I guess to be blunt: does the Android emulator support OpenGL ES 2.0? I've seen some people say "Yes, but you have to change a few settings." and I've also seen "No, it doesn't support it, period." Here's what I've done to try and correct the problem, including some error messages that I got.

首先,我修改了AndroidManifest.xml中包含下列code:

First, I modified the AndroidManifest.xml to contain the following code:

<uses-feature 
    android:glEsVersion="0x00020000" />

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="17" />

然后,当我想要我的实例GLSurfaceView,我用code的这个序列进行实例化:

Then, when I want to instantiate my GLSurfaceView, I use this sequence of code to instantiate it:

super(context);

setEGLContextClientVersion(2);

setRenderer(new MyRenderer());
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

然后,我到处看了看说,你必须进入AVD管理器,选择仿真器,进入硬件,增加了GPU仿真,并设置布尔为yes。但是,这里是我所看到的,当我看着我的:

Then, everywhere I looked said that you must go into the AVD Manager, select the emulator, go to "Hardware", add "GPU emulation" and set the boolean to "yes". However, here is what I see when I look at mine:

什么是奇特的是,我在我的AVD管理的另一个模拟器,其中我有硬件表:

What's peculiar is that I have another emulator in my AVD Manager of which I do have the "Hardware" table:

而只是为了你,我做什么显示,这里的一些code,做一些东西,我想在OpenGL ES 2.0的做(我主要是从Android的自身教程得到这个):

And just to show you exactly what I'm doing, here's some code that does some stuff I want to do in OpenGL ES 2.0 (I mainly got this from Android's own tutorials):

int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexShaderCode);
int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentShaderCode);

program = GLES20.glCreateProgram();
GLES20.glAttachShader(program, vertexShader);
GLES20.glAttachShader(program, fragmentShader);
GLES20.glLinkProgram(program);

我不想改变我的code回来的OpenGL ES 1.0的工作,因为这将需要大量的头痛,如果我能避免它,我会的。

I don't want to change my code back to work with OpenGL ES 1.0 because that will require a lot of headaches and if I can avoid it, I will.

最后,当我尝试运行我的程序,该程序的窗口关闭:不幸的是,已经停止。这就是LogCat中告诉我:

Finally, when I try running my program, the program closes with the window: "Unfortunately, has stopped." This is what LogCat told me:

12-05 06:16:27.165: E/AndroidRuntime(936): FATAL EXCEPTION: GLThread 81
12-05 06:16:27.165: E/AndroidRuntime(936): java.lang.IllegalArgumentException: No config chosen
12-05 06:16:27.165: E/AndroidRuntime(936):  at    android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:874)
12-05 06:16:27.165: E/AndroidRuntime(936):  at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:1024)
12-05 06:16:27.165: E/AndroidRuntime(936):  at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1401)
12-05 06:16:27.165: E/AndroidRuntime(936):  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

我会说我的的所有这方面的专家,这是我的OpenGL的第一次经历。如果有人有什么我可以做些什么来解决这个任何想法,我会永远感激。 :)谢谢!

I will say I am not an expert on this at all and this is my first experience with OpenGL. If anybody has any ideas of what I can do to fix this, I would be forever grateful. :) Thank you!

推荐答案

我可以对你的问题是。
Android模拟器支持OpenGL ES 2.0。
我创建了cocos2d-X 2节(使用的OpenGL ES 2.0)的应用程序。
我有同样的致命异常:GLThread 81误差相同的堆栈。
我加入解决了这个问题。

I can say Yes on your question. Android emulator supports OpenGL ES 2.0. I created an app with cocos2d-x v.2 (which uses OpenGL ES 2.0). I had same FATAL EXCEPTION: GLThread 81 error with same stack. I solved this issue by adding

gLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);

设置渲染setRenderer前:

before setting renderer setRenderer:

gLSurfaceView.setCocos2dxRenderer(new Cocos2dxRenderer());

现在我可以在Android模拟器上运行我的应用程序。

Now I can run my app on Android emulator.

请参阅我的问题和答案在 http://stackoverflow.com/a/13719983/307547
我的这个链接帖子包含的截图与AVD设置:

See my question and answer at http://stackoverflow.com/a/13719983/307547. My post on this link contains screenshot with AVD settings:

<一个href=\"http://www.cocos2d-x.org/boards/6/topics/12563?r=19274#message-19274\">http://www.cocos2d-x.org/boards/6/topics/12563?r=19274#message-19274

这篇关于OpenGL ES 2.0的支持为Android?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆