我使用TextureAtlas加载TextureRegions,我需要为每个加载的纹理生成一个位掩码。我想扩展gdx代码来生成该位掩码。所以我需要在将纹理加载到GPU之前找到代码的一部分,但是可以从CPU访问它。有没有人给我提示?
(那个位掩码应该告诉我一个像素是否透明。我认为这可能是一个很好的点击检测解决方案)
答案 0 :(得分:2)
TextureAtlas.load
调用使用Texture
file constructor的FileTextureData
。最终将在FileTextureData
对象上调用prepare
。这会加载带有文件内容的新Pixmap
。 Pixmap
将由Gdx2DPixmap
支持,其(本机)load
方法实际上将读取文件中的字节。
Pixmap
是包含CPU可变字节的可见对象。
您可以尝试使用此方法,而不是尝试修改Libgdx纹理加载系统以添加位掩码纹理:https://code.google.com/p/libgdx/issues/detail?id=515(从Pixmap
生成TextureRegion
。它在运行时效率稍低,但代码快速而简单。另外,您不必为整个图册页面制作位图蒙版,但可以为单个纹理制作蒙版。