OpenGL в Linux: dlopen libGL.so

Большинство приложений (и библиотек), использующих OpenGL в Linux, загружают libGL.so во время выполнения, используя dlopen API, вместо динамического связывания с это.

Почему они это делают?

Единственная причина, по которой я могу представить, это то, что это ' s, потому что любой поставщик графических драйверов предоставляет другую libGL , и две разные libGL могут быть несовместимы с ABI. (Ну, гм, почему они должны быть несовместимы с ABI? И даже если они есть, почему загрузка их через dlopen может решить эту проблему?)

В любом случае, если для этого есть веская причина, я Я бы тоже хотел это сделать. Есть ли у кого-нибудь ссылка на код C / C ++ с открытым исходным кодом, который загружает все функции OpenGL через dlopen , которые я могу включить в свой проект, не требуя особых настроек?

10
задан peoro 15 November 2010 в 16:09
поделиться