创建纹理的位掩码

时间:2013-05-28 08:47:13

标签: libgdx

我使用TextureAtlas加载TextureRegions,我需要为每个加载的纹理生成一个位掩码。我想扩展gdx代码来生成该位掩码。所以我需要在将纹理加载到GPU之前找到代码的一部分,但是可以从CPU访问它。有没有人给我提示?

(那个位掩码应该告诉我一个像素是否透明。我认为这可能是一个很好的点击检测解决方案)

1 个答案:

答案 0 :(得分:2)

TextureAtlas.load调用使用Texture file constructorFileTextureData。最终将在FileTextureData对象上调用prepare。这会加载带有文件内容的新PixmapPixmap将由Gdx2DPixmap支持,其(本机)load方法实际上将读取文件中的字节。

Pixmap是包含CPU可变字节的可见对象。

您可以尝试使用此方法,而不是尝试修改Libgdx纹理加载系统以添加位掩码纹理:https://code.google.com/p/libgdx/issues/detail?id=515(从Pixmap生成TextureRegion。它在运行时效率稍低,但代码快速而简单。另外,您不必为整个图册页面制作位图蒙版,但可以为单个纹理制作蒙版。