[英]OPENGL ES not working : no Current context
我嘗試了如OpenGL ES2 for Android中所示的程序,但它不能正常工作!
我在Odroid E,三星s3,三星y,三星之星測試過!!
the gl version suported returns 2, but i get
11-22 15:09:45.804: E/oGl-es v(9047): 2.0:131072
11-22 15:09:45.804: E/libEGL(9047): call to OpenGL ES API with no current context (logged once per thread)
11-22 15:09:45.804: E/unable to(9047): createShader
11-22 15:09:45.804: E/libEGL(9047): call to OpenGL ES API with no current context (logged once per thread)
11-22 15:09:45.804: E/unable to(9047): createShader
11-22 15:09:45.804: E/libEGL(9047): call to OpenGL ES API with no current context (logged once per thread)
11-22 15:09:45.804: E/Error creating(9047): GL programObject
11-22 15:09:45.812: E/render(9047): set
11-22 15:09:46.062: E/Results of validating program:(9047): 0
11-22 15:09:46.062: E/Results of validating program:(9047): Log:
以下是我的代碼
public class Main_OGLT1 extends Activity {
MySurface mGLSurfaceView;
private boolean renderSet;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGLSurfaceView = new MySurface(this);//(this); //instantiation
ActivityManager actMan = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
ConfigurationInfo mConfigInfo = actMan.getDeviceConfigurationInfo();
boolean isES2Compat = (mConfigInfo.reqGlEsVersion >= 0x20000);
Log.e("oGl-es v",mConfigInfo.getGlEsVersion()+":"+ mConfigInfo.reqGlEsVersion);
if(isES2Compat){
renderSet = true;
Log.e("render","set");
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main__oglt1, menu);
return true;
}
@Override
protected void onResume()
{
// The activity must call the GL surface view's onResume() on activity onResume().
super.onResume();
mGLSurfaceView.onResume();
}
@Override
protected void onPause()
{
// The activity must call the GL surface view's onPause() on activity onPause().
super.onPause();
mGLSurfaceView.onPause();
}
}
MySurface類:
public class MySurface extends GLSurfaceView{
public MySurface(Context context) {
super(context);
// TODO Auto-generated constructor stub
setEGLContextClientVersion(2);
setRenderer(new MyTestRenderer(getContext()));
}
}
問題出在glSurfaceView上,因為它不能在OpenGL線程上運行。 glSurfaceView應該在主要的android線程上。
在這里您可以找到有關它的其他信息
希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.