C#比较纹理2D纹理的有效方法?

C#比较纹理2D纹理的有效方法?,c#,batch-file,drawing,sprite,C#,Batch File,Drawing,Sprite,在我的程序中,我有许多带有Texture2D属性的实体类,它们被添加到列表容器中,以迭代它们的绘图函数。我希望将具有相同纹理的实体分组在一起,以便在我的SpriteBatch中有效地对它们进行批处理,而无需在之前的纹理不同时刷新 对于我的排序方法,什么是比较Texture2D类的有效方法?我只需要一个布尔结果,它是否是相同的纹理。我曾考虑使用getData()来比较像素,但这似乎效率极低。有更好的方法吗?考虑到正在使用的纹理成员(例如,通过名称),如何使用带有自定义的?这样,在将对象添加到列表中

在我的程序中,我有许多带有Texture2D属性的实体类,它们被添加到列表容器中,以迭代它们的绘图函数。我希望将具有相同纹理的实体分组在一起,以便在我的SpriteBatch中有效地对它们进行批处理,而无需在之前的纹理不同时刷新


对于我的排序方法,什么是比较Texture2D类的有效方法?我只需要一个布尔结果,它是否是相同的纹理。我曾考虑使用getData()来比较像素,但这似乎效率极低。有更好的方法吗?

考虑到正在使用的纹理成员(例如,通过
名称
),如何使用带有自定义的?这样,在将对象添加到列表中时,您应该能够按纹理对所有对象进行排序。请不要忘记,您可能希望在其他人面前绘制特定的实体,而严格排序可能不是最佳选择。

如何获得多个相同的纹理?听起来你应该有一个TextureID,它可以让你有效地比较它们,然后是一种获取任何纹理ID的纹理的方法。例如,如果我多次渲染同一个敌人精灵,或者如果我通过在增加透明度的情况下多次渲染同一精灵来创建轨迹效果。我明白你说的从一个纹理抓取的意思了。