Как запретить приложению OpenGL рисовать?
-
28-09-2019 - |
Вопрос
Как я могу запретить внешнему приложению OpenGL (источники недоступны) рисовать так, как это может быть сделано gDEBugger?
Проблема в Dassault Catia, которая открывает сложные модели в течение пяти (!) часов, потому что они визуализируются во время процесса загрузки.
Когда нажимается граница этого приложения и удерживается нажатой кнопка мыши, процесс рендеринга останавливается, так что файл модели открывается в 10 раз быстрее - он завершается в течение двадцати минут.
Я был бы очень благодарен за любую подсказку (язык программирования не имеет значения).
С наилучшими пожеланиями,
Дэвид
Решение
Я думаю, что gDEBugger использует пользовательскую версию opengl32.dll.Приложение загружает его, потому что оно находится в его стартовом каталоге (или перехватывает вызов LoadLibrary).Каждая функция в этой библиотеке может выполнять дополнительный код перед выполнением вызова standard opengl32.dll, это обеспечивает полный контроль над приложением.Но если вы собираетесь создать такую прокси-библиотеку, вы должны реализовать все стандартные функции OpenGL (все записи должны быть на месте), хотя большинство из них будут простыми оболочками.
Другие советы
Я думаю, что делают различные GL-отладчики, состоит в том, чтобы заменить OpenGL-DLL, чтобы перехватить вызовы OpenGL. Я предполагаю, что вы могли бы предоставить свой собственный «фигурную» OpenGL-DLL, в которой все рутины в основном «нет-OPS».
Если вы на Win32, возьмите копию Глинанс. Отказ Это может иметь опцию заглушки уже; Если это не так ли не должно быть слишком сложно, чтобы добавить.