Какую версию OpenGL использовать в LWJGL? - PullRequest
1 голос
/ 26 октября 2019

Благодаря LWJGL (LightWeight Java Game Library) у меня есть доступ ко множеству статических классов OpenGL. Однако, я думаю, что я не понимаю, почему я должен использовать конкретную версию. В вики LWJGL 3 они говорят:

Статические классы GL11, GL12, GL13, GL20, GL21, GL22, ... могут использоваться как функции доступаопределенная версия GL, где GL11 будет соответствовать OpenGL 1.1, а GL20 будет соответствовать OpenGL 2.0

Я понимаю, что каждый класс - это отдельная версия OpenGL, но я часто вижу много учебных пособий, в зависимости от того, что ониВы будете использовать другой класс, переключаясь между GL11, GL13 и т. д. в той же функции. Разве не было бы безопаснее использовать один и тот же класс везде для согласованности? И зачем оставаться с GL11, когда доступен GL41? Разве это не может быть быстрее, так как это более свежая версия?

1 Ответ

1 голос
/ 26 октября 2019

Вики LWJGL устарела. В нем говорится, что:

Обратите внимание, что только функции, которые были добавлены в конкретной версии OpenGL, относятся к классу GLXX (например, функции в OpenGL 1.2, которые были в OpenGL 1.1, находятся в GL11, неGL12 )

Акцент добавлен. Это было верно для LWJGL 2.x. Это будет означать, что вам необходимо получить доступ к функции 1.1 через GL11, даже если для спецификации OpenGL эта функция будет доступна в версии 4.6.

Это по-прежнему технически true в LWJGL 3.x, в том смысле, что каждый класс GLXX определяет только функции, добавленные к этой конкретной версии. Однако в LWJGL 3.x все версионные классы наследуют от предыдущей версии. Таким образом, хотя функции 1.1 все еще определены в классе GL11, они доступны из любой более высокой версии.

...