我正在使用 TextureAtlas 加载 TextureRegions,我需要为每个加载的纹理生成一个位掩码。我想扩展 gdx 代码以生成该位掩码。所以我需要在纹理加载到 GPU 之前找到代码的一部分,但它可以从 CPU 访问。有人给我提示吗?
(该位掩码稍后会告诉我像素是否透明。我认为这可能是命中检测的一个很好的解决方案)
我正在使用 TextureAtlas 加载 TextureRegions,我需要为每个加载的纹理生成一个位掩码。我想扩展 gdx 代码以生成该位掩码。所以我需要在纹理加载到 GPU 之前找到代码的一部分,但它可以从 CPU 访问。有人给我提示吗?
(该位掩码稍后会告诉我像素是否透明。我认为这可能是命中检测的一个很好的解决方案)
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
)。它在运行时效率稍低,但代码快速简单。另外,您不必为整个图集页面制作位图遮罩,但可以为各个纹理制作遮罩。