Версия Opentk Opengl

У меня есть приложение Windows C #, которое использует OpenTK. Приложение выполняет относительно простой рисунок, но также вызывает библиотеку, разработанную на C ++, для дополнительного рисования / рендеринга openGL.

Приложение и c ++ dll были разработаны для openGL версии 1.1, поэтому, когда я изменил создание OpenTK GLControl с версии 1.1 на версию 3.0, как показано:

Из

private OpenTK.GLControl m_OpenGLDisplay = new OpenTK.GLControl(new OpenTK.Graphics.GraphicsMode(32, 24, 8, 0), 1, 1, OpenTK.Graphics.GraphicsContextFlags.Default);

To

private OpenTK.GLControl m_OpenGLDisplay = new OpenTK.GLControl(new OpenTK.Graphics.GraphicsMode(32, 24, 8, 0), 3, 0, OpenTK.Graphics.GraphicsContextFlags.ForwardCompatible);

Я ожидал, что у меня возникнут бесконечные проблемы. К сожалению, приложение, похоже, не отличается от того, какую версию я ввожу - до 4.0 (включая статус ошибки из GL.GetError).

Приветствуются любые объяснения.


person Lee Baker    schedule 07.03.2018    source источник


Ответы (1)


С чего бы возникать проблемы? OpenGL обратно совместим, поэтому код, написанный для одной версии, будет выполняться в более поздней версии.

Единственный раз, когда OpenGL нарушил совместимость, было различие между профилями ядра и совместимости, а профили ядра всегда были включены. Но основные профили также являются единственными обязательными реализациями. То есть, если реализация предлагает ядро ​​3.2, она может или не может обеспечивать совместимость с 3.2. Обратное не допускается; если он предлагает совместимость с 3.2, он должен также предлагать ядро ​​3.2.

person Nicol Bolas    schedule 07.03.2018