Причина, по которой вам нужно @Override
ни того, ни того и другого, связана с тем, как они взаимосвязаны с остальной частью API.
Вы обнаружите, что если вы поместите m1
в HashSet<MyCustomObject>
, то это не contains(m2)
. Это непоследовательное поведение и может вызвать множество ошибок и хаоса.
Библиотека Java имеет множество функциональных возможностей. Чтобы заставить их работать для , вам нужно играть по правилам и убедиться, что equals
и hashCode
являются совместимыми, является одним из самых важных.
Согласно спецификации языка шейдинга Metal ( https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf , комментарии в соответствии с таблицей 12)
[ 114] Для[[color(m)]]
m используется для указания индекса цветового вложения при доступе (чтение или запись) нескольких цветовых вложения в функции фрагмента. Атрибут[[color(m)]]
поддерживается только в iOS.blockquote>
Это означает, что вы не можете выполнять повторное считывание пикселей (считывание уже отрисованных пикселей из прикрепленной текстуры за один проход визуализации).
Одним из способов избежать повторного считывания пикселей является запись и считывание пикселей за отдельные проходы рендеринга: вы рендерите то, что хотите, на первом проходе рендеринга, а затем присоединяете результат первого прохода рендеринга в качестве текстуры, которую вы можете взять в качестве образца. или просто прочитайте.