OpenGL ES 2: Универсальные формы и атрибуты

Известно, что универсальная форма и атрибуты являются регистрами в GPU. И мой вопрос - то, что происходит, когда другая программа связала? Стандарт гарантирует, что ранее устанавливает универсальные формы и/или приписывают указатели, будет перезагружен, или я должен перезагрузить их вручную в любом случае? Я хочу создать кэширующуюся систему. Кажется для меня, что атрибуты не перезагружаются (да?), когда восстановление программы и что относительно универсальных форм? GL перезагрузка драйвера ES их значения для меня?

8
задан Nicol Bolas 4 April 2012 в 19:03
поделиться

1 ответ

Нет, не известно, что формы и атрибуты являются регистрами в GPU. На самом деле, это неверно, по крайней мере, в одном широко развернутом GPU OpenGL ES 2.0.

Униформа равна нулю, если она явно не инициализирована. Значения формы - это состояния, которые следуют за программным объектом. Другими словами, если вы установили униформу для данного программного объекта, вы можете рассчитывать на то, что это значение будет сохраняться при использовании одного и того же программного объекта, но вы не можете рассчитывать на то, что униформа в данном месте будет сохраняться при использовании нескольких программных объектов. Фактически, реализация OpenGL ES, которая делает это, будет нарушать спецификацию. Это не неопределенное поведение.

Указатели атрибутов являются глобальным состоянием контекста, и вы можете рассчитывать на то, что они будут сохраняться между вызовами одного и того же контекста OpenGL ES. То же самое относится к текущим значениям атрибутов (установленным через glVertexAttribute*-функции)

17
ответ дан 5 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

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