Cyp*_*eld 13 android opengl-es android-emulator opengl-es-3.0
我知道模拟器在SDK工具17和Android 4.0.3中支持OpenGL ES 2.0,但这是在2012年4月推出的.
Android模拟器是否支持OpenGL ES 3.0,还是我们还在等待?
如果没有,是否有任何其他第三方仿真器/模拟器(例如Genymotion)支持OpenGL ES 3.0?
Jam*_*son 10
最新的Android Emulator现在支持OpenGL ES 3.0.要使用OpenGL ES 3.0,您的开发机器需要一个主机GPU图形卡,在Microsoft®Windows®或Linux上支持OpenGL 3.2或更高版本.
请参阅:https: //android-developers.googleblog.com/2017/05/android-studio-3-0-canary1.html
来自NDK 的gles3jni示例应用程序是一个很好的选择来尝试它.
如果它失败了:
java.lang.RuntimeException: createContext failed: EGL_BAD_CONFIG
Run Code Online (Sandbox Code Playgroud)
也尝试先在主机上运行:
echo "GLESDynamicVersion = on" >> ~/.android/advancedFeatures.ini
Run Code Online (Sandbox Code Playgroud)
由于开发人员目前将支持的主机GPU列入白名单,并且覆盖它,请参阅:https://issuetracker.google.com/issues/68496715
Android Emulator和系统映像以及Genymotion目前都不支持OpenGL ES 3.0版.
在我写这篇文章时,Android 5.1.1(API 22)的最新(Rev.1)ARM和x86系统映像报告它们支持OpenGL ES 2.0版而不是3.0版.
同样,Genymotion的Nexus 5 Android 5.1.0 API 22虚拟设备仅报告OpenGL ES 2.0版支持.
您可以使用以下代码检查未来系统映像和模拟器下的支持:
package com.example.opengltest;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.content.pm.ConfigurationInfo;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class OpenGLESVersionActivity extends Activity {
private static final String TAG = "OpenGLESVersionActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final ActivityManager activityManager =
(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final ConfigurationInfo configurationInfo =
activityManager.getDeviceConfigurationInfo();
String versionText = "Device Supported OpenGL ES Version = " + configurationInfo.getGlEsVersion();
Toast.makeText(this, versionText, Toast.LENGTH_LONG).show();
Log.d(TAG, versionText);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10807 次 |
| 最近记录: |