Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android上发布ShaperEnder beahavior_Android_User Interface_Libgdx_Rendering_Z Index - Fatal编程技术网

在android上发布ShaperEnder beahavior

在android上发布ShaperEnder beahavior,android,user-interface,libgdx,rendering,z-index,Android,User Interface,Libgdx,Rendering,Z Index,我正在使用ShaperEnder在遮罩纹理下绘制某种圆形指示器。在桌面上,一切工作都很完美,正如预期的那样,但在android上运行相同的代码时,形状渲染始终处于顶部。另一个奇怪的区别是,所有形状渲染函数调用看起来都是反向的,因此第一个形状是在顶部绘制的。 我在2020年6月的libgdx夜间构建和2020年9月20日的夜间构建中重现了这个问题 代码如下: myConstructor(){ sr=新的ShaperEnder(); 高级比例(1+1.1f*GUI.ZOOM\u比率,1+1.1f*G

我正在使用ShaperEnder在遮罩纹理下绘制某种圆形指示器。在桌面上,一切工作都很完美,正如预期的那样,但在android上运行相同的代码时,形状渲染始终处于顶部。另一个奇怪的区别是,所有形状渲染函数调用看起来都是反向的,因此第一个形状是在顶部绘制的。 我在2020年6月的libgdx夜间构建和2020年9月20日的夜间构建中重现了这个问题

代码如下:

myConstructor(){
sr=新的ShaperEnder();
高级比例(1+1.1f*GUI.ZOOM\u比率,1+1.1f*GUI.ZOOM\u比率,0f);
}
绘制(批次g,浮动参数){
g、 end();//我之前有一些批处理渲染
sr.begin(形状类型填充);
sr.setColor(颜色为青色);
高级圆圈(indX、indY、指示器W+GUI.FIT2密度(2));
高级设置颜色(颜色为深灰色);
高级弧(indX,indY,指示器W,0f,度);
sr.end();
g、 begin();
g、 设置颜色(1f、1f、1f、1f);
g、 绘制(coolDownIndic,indX-coolDownIndic.getWidth()/2-GUI.fit2Density(2),
indY-冷却指示值getHeight()/2);
}
在桌面上,我看到纹理在弧线上渲染,弧线在圆上渲染。这个顺序在android上正好相反,你可以在这里看到预期的行为,在这里看到不正确的行为(顶部的紫色云是一个与问题无关的粒子发射器效果)

我猜这是一个bug,请注意,我在shaperender上使用scale方法,不确定它是否相关


非常感谢您的帮助。

您不需要在形状渲染器上设置投影矩阵吗?无论如何,请尝试设置`Gdx.gl.glDepthMask(true);Gdx.gl.glDisable(GL20.gl_DEPTH_TEST)`在调用
begin()
之前,以防您在其他地方更改了这些设置。感谢您的帮助。投影矩阵是不需要的,但你是对的gl20属性解决了这个问题。这里没有bug,我有一个在android上没有启用的后处理3D渲染过滤器,它似乎可以解释不同的行为。