AlynxZhou / alynx-live-wallpaper

An android app that allows you choose a video as wallpaper.
https://livewallpaper.alynx.xyz/
Apache License 2.0
94 stars 37 forks source link

java.lang.RuntimeException: 0:5: P0003: Extension 'GL_OES_EGL_image_external' not supported #9

Closed jhwsx closed 4 years ago

jhwsx commented 4 years ago

报错日志:

05-22 18:22:14.573 14002-14402/com.koki E/AndroidRuntime: FATAL EXCEPTION: GLThread 9975
    Process: com.koki, PID: 14002
    java.lang.RuntimeException: 0:5: P0003: Extension 'GL_OES_EGL_image_external' not supported
    0:28: L0001: Expected token '{', found 'identifier'

        at com.koki.ui.previewvideo.Utils.compileShaderResourceGLES30(Utils.java:117)
        at com.koki.ui.previewvideo.GLES30WallpaperRenderer.onSurfaceCreated(GLES30WallpaperRenderer.java:159)
        at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1548)
        at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1286)

机型:在 5.x 的手机上出现。 在网上搜索,有说到判断 String str= GLES20.glGetString(GLES20.GL_EXTENSIONS); 是否支持扩展的,但是发现正常的机子也是返回 null 的。 没有弄过这块的东西,感觉没有头绪。

jhwsx commented 4 years ago

我刚刚测试了,5.x 的手机上,直接走

 glSurfaceView.setEGLContextClientVersion(2);
 renderer = new GLES20WallpaperRenderer(context);

这个分支,是正常的。没有出现上面的报错了。

AlynxZhou commented 4 years ago

机器问题吧,就是你这个机器虽然支持 GLES 3,但是却不支持这个扩展,但是在 GLES 2 下面又支持这个扩展,大概需要一个查询是否支持这个扩展的办法?

jhwsx commented 4 years ago

嗯嗯,谢谢。顺便问一下,这块东西从哪里入手开始学习呢?我现在只是用了你的代码,好多地方看不懂。

AlynxZhou commented 4 years ago

嗯嗯,谢谢。顺便问一下,这块东西从哪里入手开始学习呢?我现在只是用了你的代码,好多地方看不懂。

Android, OpenGL。然后剩下的各种坑主要靠 Google 和自己试错。