2013-05-28 68 views
0

我正在使用TextureAtlas加載TextureRegions,並且需要爲每個加載的紋理生成位掩碼。我想擴展gdx代碼來生成該位掩碼。所以我需要在紋理加載到GPU之前找到代碼的一部分,但它可以從CPU中獲取。有人給我提示嗎?創建紋理的位掩模

(即掩碼應該告訴我以後如果像素透明。我想這可能是命中檢測一個很好的解決方案)

回答

2

TextureAtlas.load調用它採用FileTextureDataTexture file constructor。最終prepare將在FileTextureData對象上調用。這會加載一個新的文件內容PixmapPixmap將由Gdx2DPixmap支持,其(本地)load方法將實際讀取文件中的字節。

Pixmap是包含CPU可變字節的可見對象。

您可以試試這種方法:https://code.google.com/p/libgdx/issues/detail?id=515(從TextureRegion生成Pixmap),而不是嘗試修改Libgdx紋理加載系統以添加您的位掩碼紋理。它在運行時效率稍低,但代碼簡單快捷。另外,您不必爲整個地圖集頁面製作位圖遮罩,但可以爲各個紋理製作遮罩。

+0

謝謝!我將使用這種方法生成位掩碼並將它們存儲在一個文件中。我不想直接使用Pixmap的原因是我想減少內存使用量。我不需要顏色值,但只是一個布爾值。我想減少位掩碼的分辨率,因爲它不一定非常準確。 –