Допустим, я хочу, чтобы внешняя программа применила некоторый эффект к изображению.Обязательно ли это исполняемая программа или это может быть просто набор инструкций OpenGL, которые видеоредактор может анализировать и, по сути, «передавать» в OpenGL.
Любая вещь работает.Однако в самом стандарте OpenGL нет такого понятия, как «инструкции OpenGL» или «коды операций».Но по крайней мере в системах на основе X11 с косвенным GLX это возможно, потому что GLX фактически определяет коды операций.И несколько X-клиентов могут работать в одном и том же контексте, если он косвенный.К сожалению, у вас не будет этой опции большую часть времени, так как вам, вероятно, нужен прямой контекст, потому что вы можете захотеть OpenGL3 (для которого не все операции имеют коды операций, определяющие, что делает косвенные невозможными для OpenGL-3), или потому что вы 'мы не используем GLX.
Так что следующий вариант заключается в том, что вы предоставляете другому процессу какой-либо запрос команды / интерпретатора для OpenGL.Если вы ленивы, я предлагаю вам просто встроить интерпретатор Python в вашу программу вместе с привязками Python OpenGL.Они работают в любом контексте, который активен в настоящее время, позволяя другой программе фактически отправлять некоторый скрипт Python для выполнения своих задач.
И, наконец, что не менее важно, вы можете предоставить OpenGL через некоторый интерфейс RPC.
Или вы предоставляете некоторую систему плагинов, где вы загружаете какую-то DLL, которая выполняет действия.