首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的OpenGL上下文仍然返回null?

为什么我的OpenGL上下文仍然返回null?
EN

Stack Overflow用户
提问于 2011-08-10 18:03:13
回答 1查看 1.5K关注 0票数 0

我正在尝试为android创建一个opengl-es的上下文,我对此感到有点困惑。我已经在一个完全独立的类中初始化了我的上下文,这个类与我的呈现器和我的启动活动完全不同。

代码语言:javascript
复制
import javax.microedition.khronos.egl.EGL11;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.egl.EGLContext;
import javax.microedition.khronos.egl.EGLDisplay;
import javax.microedition.khronos.egl.EGLSurface;
import javax.microedition.khronos.opengles.GL11;

public class Context {

public static GL11 gl;
EGLConfig[] configs = new EGLConfig[1];
EGLConfig config = configs[0];
EGLDisplay dpy;
int attribList;
EGLSurface surf;
static EGLContext glContext;


public Context() {

    int attribList [] =
    {
     EGL11.EGL_DEPTH_SIZE, 15,  // z-buffer
     EGL11.EGL_NONE
    }; 
    dpy =  ((EGL11) gl).eglGetDisplay(EGL11.EGL_DEFAULT_DISPLAY);
    EGLContext glContext = ((EGL11) gl).eglCreateContext(dpy, config, EGL11.EGL_NO_CONTEXT, attribList);
    gl = (GL11)glContext.getGL();


}

}

我的应用程序是一个简单的东西,它在启动时将两个方块吸引到屏幕上,一个是随机方向移动,另一个则是停留在现场旋转。从理论上讲,用户应该能够触摸屏幕,而固定的方格应该移动到屏幕上的位置。但是当我的UnProject方法(我需要转换坐标)被调用时,我的应用程序崩溃了,这可能是因为我的上下文

代码语言:javascript
复制
GL11 gl

(这是我的UnProject类的参数)返回null (当我的应用程序崩溃时抛出NullPointerException)。

我的上下文初始化得很糟糕,因此返回null,还是您认为问题在其他地方?

EN

回答 1

Stack Overflow用户

发布于 2011-08-12 03:22:27

我怀疑在代码中的任何地方都会调用上下文构造函数;如果调用了,它就会崩溃:

constructed)

  • Where

  • 您将gl转换为EGL11类型,而它没有实现该接口。在EGLContext glContext = ((EGL11) gl).eglCreateContext(dpy, config, EGL11.EGL_NO_CONTEXT, attribList);中使用config成员,而它没有初始化(它是空的,因为您的configs成员的条目不是指定的是gl吗?)从上下文类?

  • 外部使用gl成员,然后在gl = (GL11)glContext.getGL()

  • 中重新分配它。

简而言之,我不认为gl最初被分配了一个值,但是如果没有剩下的代码,很难判断。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7015570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档