Я новичок в OpenGL, так что это может быть глупый вопрос. Кажется, я упускаю что-то очевидное. Я не понимаю, как новые классы OpenGL должны быть полезным.
- QOpenGLFunctions_1_0
- QOpenGLFunctions_1_1
- QOpenGLFunctions_1_2
- QOpenGLFunctions_1_3
- QOpenGLFunctions_1_4
Я предполагаю, что это будет что-то вроде следующего:
- запросите видеокарту и спросите, какие версии OpenGL она поддерживает.
- создать копию класса для самой высокой версии, поддерживаемой с помощью QOpenGLContext::versionFunctions()
Итак, как мне написать код, используя этот класс? Я не могу предсказать, какой объект я получу во время выполнения, не зная точно, на каком оборудовании он будет работать. Базовый класс не содержит методов, поскольку они разные для каждого производного класса. Я мог бы написать гигантский переключатель, но это кажется шагом назад по сравнению с использованием QOpenGLFunctions или простым получением адресов функций вручную.