C # Эффективный способ сравнения текстур Texture2D? - PullRequest
0 голосов
/ 22 марта 2012

В моей программе у меня есть множество классов Entity с атрибутом Texture2D, которые добавляются в контейнер List <> для перебора их функций рисования.Я хочу сгруппировать сущности с одинаковыми текстурами, чтобы их можно было эффективно объединять в пакет SpriteBatch, чтобы он не вымывался всякий раз, когда предыдущие текстуры различаются.

Какой эффективный способ сравнения классов Texture2D друг с другом для моего метода сортировки?Мне нужен только логический результат относительно того, является ли это одной и той же текстурой.Я думал об использовании getData () для сравнения пикселей, но это кажется крайне неэффективным.Есть ли лучший способ?

1 Ответ

1 голос
/ 22 марта 2012

Как насчет использования SortedList с пользовательским IComparer с учетом используемого элемента текстуры (например, Name)?Таким образом, вы сможете сортировать все свои объекты по текстуре после добавления их в список.Только не забывайте, что вы можете рисовать определенные объекты перед другими, и строгая сортировка может оказаться не лучшим вариантом.

...