Могу ли я делиться шейдерами между контекстами с EAGLSharegroup? - PullRequest
3 голосов
/ 09 августа 2011

Мое приложение имеет несколько различных контекстов OpenGL, использующих один и тот же набор шейдеров. В настоящий момент он перекомпилирует, связывает и т. Д. Шейдеры несколько раз, по одному разу для каждого контекста. Я пытаюсь ускорить это, и наткнулся на EAGLSharegroup.

Документация для EAGLSharegroup гласит: «В настоящее время sharegroup управляет текстурами, буферами, буферами кадров и буферами рендеринга.», Но ничего не упоминает о шейдерных и программных объектах. Я не уверен, устарела ли документация, или разделение этих объектов просто не работает.

Согласно ответу на на этот вопрос , он работает, но я не могу найти ничего другого, чтобы поддержать это.

Я пробовал, и, похоже, он работает на симуляторе (еще не пробовал на реальном устройстве). Я испытываю случайность, или я могу положиться на это поведение? Я хотел бы иметь возможность полагаться на это, но не могу найти никакой официальной документации, которая говорит, что я могу.

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

У меня нет iExperience, но если совместное использование контекста работает как в настольном GL (что я предполагаю), то все ресурсы должны быть общими, включая шейдеры.

1 голос
/ 10 января 2012

Это работает для меня.Я компилирую и связываю свои шейдерные программы в отдельном потоке с отдельным контекстом.Этот отдельный контекст использует ту же группу, что и мой основной контекст.Шейдеры правильно работают в моем основном потоке, используя этот основной контекст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...