Android打开了20个渲染问题

时间:2015-09-21 16:26:42

标签: java android opengl-es rendering opengl-es-2.0

我最近在Android Google Play商店创建了一款游戏。我发布它后发现它在大部分下载设备上都没有呈现任何内容。我问了几个朋友是否可以测试它,其中一个不能播放。他有一个运行Android 4.4.2的三星Galaxy S5 mini,今天我和他见面连接我的电脑并试图找到错误。但一切似乎都正常。游戏进入了它的更新循环,其中包含所有正确的渲染值。它正在分配内存(虽然我不确定它是否在OpenGL线程上分配了所有内存)。 我的手机运行Android 4.4,是三星Galaxy S4 mini,一切都很完美 我现在完全迷失了,迫切需要指导。 我所有的GL调用都是针对GLES 20 API的,可能与它有关 我有一个自定义的配置选择器。

package com.honeycomb.touchtycube.testapp.OEngine;

import android.opengl.GLSurfaceView;


import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.egl.EGLDisplay;



class OEConfigChooser implements GLSurfaceView.EGLConfigChooser {

@Override
public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
    int attribs[] = {
            EGL10.EGL_LEVEL, 0,
            EGL10.EGL_RENDERABLE_TYPE, 4,  // EGL_OPENGL_ES2_BIT
            EGL10.EGL_COLOR_BUFFER_TYPE, EGL10.EGL_RGB_BUFFER,
            EGL10.EGL_RED_SIZE, 8,
            EGL10.EGL_GREEN_SIZE, 8,
            EGL10.EGL_BLUE_SIZE, 8,
            EGL10.EGL_DEPTH_SIZE, 16,
            EGL10.EGL_SAMPLE_BUFFERS, 1,
            EGL10.EGL_SAMPLES, 4,  // This is for 4x MSAA.
            EGL10.EGL_NONE
    };
    EGLConfig[] configs = new EGLConfig[1];
    int[] configCounts = new int[1];
    egl.eglChooseConfig(display, attribs, configs, 1, configCounts);

    if (configCounts[0] == 0) {
        // Failed! Error handling.
        return null;
    } else {
        return configs[0];
    }
}

}

我想添加这个配置choser几乎完全来自互联网,除了启用MSAA之外,我对它实际做的事情没有任何想法。

在这些设备上进行渲染的方式是否存在差异,这可能导致这种情况?

最好的问候//

1 个答案:

答案 0 :(得分:1)

检查着色器编译中的失败。

在某些设备上运行的着色器将无法在其他设备上进行编译 - 某些设备在接受的内容上不够宽松。

相关问题