Клонирование и общий доступ (Direct3D 9)
Параметры клонирования
Клонирование имеет следующие ограничения.
- Клоны наследуют пул исходного эффекта. См. раздел Параметры общего доступа.
- Клоны наследуют методы, проходы, параметры и заметки исходного эффекта (включая все заметки, добавленные с помощью ID3DXEffect).
- Клоны наследуют динамически добавленные заметки исходного эффекта.
- Клонирование на новое устройство завершится ошибкой, если пул исходного эффекта не имеет значения NULL и исходный эффект содержал общий параметр, зависящий от устройства (например, текстуру или шейдер).
Параметры общего доступа
Пул — это буфер, который совместно использует параметры эффектов между различными эффектами. Чтобы добавить параметры в пул, укажите общее использование при создании эффекта.
Пул имеет следующие ограничения.
- Параметр добавляется в пул при первом добавлении в пул эффекта, содержащего этот (общий) параметр.
- Пул получает начальные значения из первого общего параметра; параметры, к которым предоставлен общий доступ, впоследствии получают свои значения из пула.
- Параметр удаляется из пула при освобождении всех ссылок эффектов на общий параметр.
- Все эффекты в пуле, содержащие один и тот же (общий) зависимый от устройства параметр, должны иметь одно и то же устройство.
Значение NULL можно использовать для указания отсутствия пула, в этом случае общие параметры не используются. Это почти эквивалентно указанию уникального пула только для этого эффекта. Единственное отличие заключается в том, что при клонировании эффекта клон не будет совместно использовать свои общие параметры с исходным.
Связанные темы