0

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

(该位掩码稍后会告诉我像素是否透明。我认为这可能是命中检测的一个很好的解决方案)

4

1 回答 1

2

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

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

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

于 2013-05-28T14:48:12.313 回答