Проблема в том, что библиотека OpenGL не экспортирует функцию glGenBuffers. Чтобы загрузить эту функцию, нам нужно использовать wglGetProcAddress, но для этого требуется контекст рендеринга.
Вот пример кода, который успешно загружает функцию glGenBuffers:
В более новых версиях Delphi (например, XE6 и выше) есть единица OpenGLExt, которая включает функциональность OpenGL 4.3, в том числе glGenBuffers. Чтобы использовать эту единицу, вам нужно явно вызвать InitOpenGLext, который делает несколько вызовов wglGetProcAddress.
Вот пример кода, который использует GLFW вместе с единицами OpenGL и OpenGLExt:
uses Winapi.OpenGL, Winapi.OpenGLExt,
glfw; //The glfw unit name may be different, depending where you obtained it.
var
window: pGLFWwindow;
begin
glfwInit; //Returns 0 if it fails.
window := glfwCreateWindow(640, 480, pchar(utf8encode('My Test Window')),
nil, nil); //Returns nil if it fails.
glfwMakeContextCurrent(window);
// Next line assigns function pointers for extension functions, so glGenBuffers will work.
InitOpenGLext;
// Add any other setup and your rendering loop here, and clean up after the loop.
// ...
end;
Примечание: Обязательно добавьте ошибки проверки в свой код и убедитесь, что вы правильно очищаете ресурсы после завершения работы.
Пользователь спрашивает о решении проблемы загрузки OpenGL glGenBuffers в Delphi на Windows.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.