Вызовы функций не передаются по контексту.Только предметы.И только некоторые объекты.
Как правило, объекты, к которым предоставлен общий доступ, - это объекты, которые, очевидно, было бы непозволительно создавать заново в другом контексте.Либо из-за хранения большого количества данных, либо относительно длительного времени установки.
Если вам нужен список, вы можете использовать следующие объекты:
- Отображать списки
- Текстуры
- Renderbuffers
- Буферные объекты
- Шейдеры и программы
Известные объекты, которые не являются общими:
- Объекты массива вершин (входящие в них буферные объекты являются общими, но не сам объект)
- Объекты кадрового буфера (как и в VAO, только те объекты, которые входят в них, являются общими)
Общий объект означает, что он поддерживает все состояния в разных контекстах.Поэтому, если вы измените состояние из одного контекста, вы увидите его в другом.Однако это также означает, что вы должны синхронизировать ваш доступ к общим объектам GL, если вы используете несколько потоков.В противном случае могут возникнуть условия гонки и другие неприятности.