Как предотвратить рисование приложения OpenGL? - PullRequest
0 голосов
/ 08 октября 2010

Как я могу предотвратить рисование внешнего приложения OpenGL (нет доступных источников), как это может сделать GDebugger?

Проблема в Dassault Catia, которая открывает сложные модели в течение пяти (!) Часов, поскольку они отображаются во время загрузки.

Когда щелкают границу этого приложения и удерживают кнопку мыши, процесс рендеринга останавливается, и файл модели открывается в 10 раз быстрее - он заканчивается в течение двадцати минут.

Буду очень признателен за любую подсказку (язык программирования не имеет значения).

С уважением,

David

Ответы [ 3 ]

1 голос
/ 08 октября 2010

Я думаю, что GDebugger использует пользовательскую версию opengl32.dll.Приложение загружает его, потому что оно находится в своем начальном каталоге (или перехватывает вызов LoadLibrary).Каждая функция в этой библиотеке может делать дополнительный код перед выполнением вызова стандартного opengl32.dll, это обеспечивает полный контроль над приложением.Но если вы собираетесь создать такую ​​прокси-библиотеку, вы должны реализовать все стандартные функции OpenGL (все записи должны быть на месте), хотя большинство из них будут простыми обертками.

0 голосов
/ 08 октября 2010

Если вы используете win32, получите копию GLIntercept . Возможно, у него уже есть заглушка; если нет, то добавить его не должно быть слишком сложно.

0 голосов
/ 08 октября 2010

Я думаю, что различные GL-отладчики делают замену OpenGL-dll для перехвата вызовов OpenGL.Я полагаю, вы могли бы предоставить свой собственный "фиктивный" OpenGL-dll, в котором все процедуры в основном "без операций".

...