我目前坚持使用opengl ES2制作实时背景。
在我的渲染器中,我想从资源文件夹中访问纹理和着色器,但我找不到这样做的方法。
我目前对此的尝试只会导致崩溃。
return new SurfaceRenderer((Activity) this.getApplicationContext(), WallpaperService.this);
它是我在苦苦挣扎的 SurfaceRenderer 构造函数中的第一个参数!
稍后这些变量将用于访问如下文件:
final int resVertex = activity.getResources().getIdentifier(input+"_vertexshader","raw", activity.getPackageName());
int resID = activity.getResources().getIdentifier(path,"raw", activity.getPackageName());
InputStream inputStream = activity.getResources().openRawResource(resID);
ETC..
其中activity是SurfaceRenderer构造函数中的第一个参数,而ctx是第二个!
有什么解决办法吗?
编辑:尝试实施解决方案,但我仍然遇到问题!
这是我的渲染器构造函数:
public SurfaceRenderer(GLWallpaperService activity, Context ctx) {
this.activity = activity;
cc = activity;
shaderlib = new ShaderLib(activity, ctx);
}
用于将活动转发到我的着色器创建对象,最终运行:
inputStream = activity.getContext().getAssets().open(filename);
没有可用的 getcontext 函数,当我尝试创建一个时,我只得到一个空指针,在这个命令上,有什么解决方案吗?