gpt4 book ai didi

android - 在android中初始化GLview的问题

转载 作者:行者123 更新时间:2023-11-30 04:47:05 26 4
gpt4 key购买 nike

我编写了以下代码来初始化 android 中的 GLview。我对 android 应用程序开发比较陌生。我想使用获取屏幕截图的代码。

这是我写的代码:

public class MainActivity extends Activity{

/** Called when the activity is first created. */

private EGL10 egl;
private EGLDisplay display;
private EGLConfig config;
Display disp ;
private EGLContext eglContext;
private GL10 gl ;
private EGLSurface surface;

@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// ToDo add your GUI initialization code here
setContentView(R.layout.main);

disp = getWindowManager().getDefaultDisplay();

egl = (EGL10) EGLContext.getEGL();
display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
int[] ver = new int[2];
egl.eglInitialize(display, ver);
int[] configSpec = {EGL10.EGL_NONE};
EGLConfig[] configOut = new EGLConfig[1];
int[] nConfig = new int[1];
egl.eglChooseConfig(display, configSpec, configOut, 1, nConfig);
config = configOut[0];
eglContext = egl.eglCreateContext(display, config, EGL10.EGL_NO_CONTEXT, null);

SurfaceView view = new SurfaceView(this);
setContentView(view);

SurfaceHolder holder = view.getHolder();
holder.setType(SurfaceHolder.SURFACE_TYPE_NORMAL);
try{
surface = egl.eglCreateWindowSurface(display,config, holder , null);
}catch(Exception e)
{
e.printStackTrace();
}
egl.eglMakeCurrent(display, surface, surface, eglContext);
gl = (GL10) eglContext.getGL();




savePNG(0,0,disp.getWidth(), disp.getHeight(),"testpicture.png",gl);


}

但是应用程序终止于

      try{
surface = egl.eglCreateWindowSurface(display,config, holder , null);
}catch(Exception e)
{
e.printStackTrace();
}

它正在给出异常

 IlligalArgument exception: Must use SurfaceHolder or SurfaceView  with proper format. not a valid surface.

请纠正这个问题。

谢谢。

最佳答案

GLSurfaceView类提供了一种使用 OpenGL 的简单方法。有教程here

关于android - 在android中初始化GLview的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4623400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com