Вам не нужно менять код приложения. Поскольку вы используете последовательные текстурные индексы, вы можете просто заменить три отдельных параметра одним параметром массива текстуры, привязанным к индексу 0, и привязки свяжут элементы массива с текстурами, которые вы предоставили из кода приложения. [115 ]
Другими словами, если вы объявляете массив текстур с размером 3 и привязанным к индексу текстуры 0, элементы массива берутся из индексов текстуры 0, 1 и 2.
Обновление для вашего отредактированного вопроса:
Вы путаете массив из текстур (также называемый массивом текстур) и текстуру массива. Терминология запутанно тонкая.
Вы использовали texture2d_array<...>
. Это текстура массива.
Для текстурного массива или массива текстур вы должны использовать array<texture2d<float, access::sample>, 3> clouds [[texture(0)]]
.
Для выборки из текстуры в массиве вы сначала индексируете массив, а затем вызываете функцию текстуры для этого элемента:
float4 color = clouds[params.index].sample(defaultSampler, float2(params.textureCoordinates)) * float4(1,0,0,1.0);
Вы (еще) не можете "слабо" зарегистрировать MBean в сервере, таким образом, ожидая, что это будет GCed, когда никакие другие ссылки на него не существуют.
Это сказанное, необходимо определенно прочитать некоторые сообщения Eamonn McManus на предмете.
Было предложено, чтобы API JMX мог иметь некоторую явную поддержку "Слабого MBeans" как это. Я не уверен, что существует достаточно использования для них для выравнивания по ширине включая их в API, и я также не уверен, на что был бы похож API общего назначения для Слабого MBeans. Но вышеупомянутые шоу, как можно создать собственный Слабый MBeans в случае необходимости.
"Слабый" MBeans. MBean часто управляет другим объектом Java, который является "ресурсом", который будет контролироваться или управляться. Но что, если единственная ссылка на тот ресурс от MBean? Мы могли так или иначе принять меры, чтобы MBean исчез, если на ресурс больше не ссылается никто больше?
Включение и выключение дорогого MBeans. Некоторый MBeans может экспортировать информацию, которая непрерывно выбирается, и это дорого для сбора. Вы не обязательно хотите, чтобы те MBeans работали все время. Специальные решения легки, например, setThreadContentionMonitoringEnabled метод в java.lang.management. ThreadMXBean. Но возможно могла быть более общая конвенция, такая как setDetailLevel (интервал) метод.