Цвет рамки буфера в металле для приложений Mac

Причина, по которой вам нужно @Override ни того, ни того и другого, связана с тем, как они взаимосвязаны с остальной частью API.

Вы обнаружите, что если вы поместите m1 в HashSet<MyCustomObject>, то это не contains(m2). Это непоследовательное поведение и может вызвать множество ошибок и хаоса.

Библиотека Java имеет множество функциональных возможностей. Чтобы заставить их работать для , вам нужно играть по правилам и убедиться, что equals и hashCode являются совместимыми, является одним из самых важных.

0
задан old_timer 19 March 2019 в 14:19
поделиться

1 ответ

Согласно спецификации языка шейдинга Metal ( https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf , комментарии в соответствии с таблицей 12)

[ 114] Для [[color(m)]] m используется для указания индекса цветового вложения при доступе (чтение или запись) нескольких цветовых вложения в функции фрагмента. Атрибут [[color(m)]] поддерживается только в iOS.

Это означает, что вы не можете выполнять повторное считывание пикселей (считывание уже отрисованных пикселей из прикрепленной текстуры за один проход визуализации).

Одним из способов избежать повторного считывания пикселей является запись и считывание пикселей за отдельные проходы рендеринга: вы рендерите то, что хотите, на первом проходе рендеринга, а затем присоединяете результат первого прохода рендеринга в качестве текстуры, которую вы можете взять в качестве образца. или просто прочитайте.

0
ответ дан Egor Shkorov 19 March 2019 в 14:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: