2013-05-28 73 views
3

当拨打texSubImage2D时,我似乎正在获取位于中央位置的三星Galaxy S3/Galaxy Note 2和位于三星Galaxy S2上的左上角的位图。Android texSubImage2D - 在不同的设备上有不同的行为吗?

它让我完全的纹理靠不住的S3/Galaxy Note的2

有人可以证实确实是有这个方法是如何抵消了位图这种差异,在这些设备之间?

如何确保texSubImage2D在所有设备上的一致性?

+2

该功能至少*应该*跨设备保持一致。因此,查看您的实际代码以及您可能做错了什么(如果有的话)可能会更有帮助。 –

+0

@Christian Rau,你是否在Galaxy S2和S3上获得了这种方法的相同行为? – Navigateur

+0

我对任何事情都没有任何行为。 –

回答

3

texSubImage2D的行为一致,我猜测你正在从资源中加载纹理,与S2(hdpi)相比,它们在note 2/S3(都是xhdpi设备)上放大,因此可能会使用固定大小的纹理一个区别。

+0

但是这不会发生在S4上,尽管它是一个xhdpi设备。我没有从资源中加载纹理,我通过'Canvas'的'draw ...'方法直接将它们绘制到'Bitmap',然后通过'GLUtils.texSubImage2D'将它上传到GPU。 – Navigateur

+0

S4是xxhdpi设备(所以也存在密度差异),然后发布一些代码(首先,你如何创建你的位图,维度是硬编码等)。我可以向你保证,glTexSubImage2D能正常工作,所以问题在别的地方。 – arcone1

+0

我不是在说直接调用'glTexSubImage2D',而是'GLUtils.texSubImage2D'。您是否使用我描述的方式在S2和S3上测试了这种方法?我创建每个位图上传通过'Bitmap.createBitmap(宽度,高度,Bitmap.Config.ARGB_8888)',然后通过'新的画布(位图).draw ...绘制到它的方法 - 绘图显示罚款所有的情况下,当我调用'GLUtils.texSubImage2D'时,只有偏移量是不同的(在S2和S4的左​​上角位置,而在S3的中心位置)。 – Navigateur

相关问题