Доброго дня. В вузе поставили задачу создать динамическую или статическую библиотеку расширений и подключить ее к проекту с OpenGL, чтобы оттуда брать функции для работы с ними.
Так звучит задание:
Собственно ссылки которые были даны:
www.opengl.org/registry/doc/glspec33.core.20100311.pdf
https://www.opengl.org/sdk/docs/man/
Собственно вопрос:
Что автор задания имеет ввиду под созданием расширений? Неужто он хочет чтобы я сам написал работу функций входящих в стандарт opengl 3.3 и потом сделал собственную динамическую библиотеку? Или он имел что-то другое ввиду?
Собственно пример который был приведен в методичке:
if (SDL_GL_LoadLibrary("libGL.so") == -1) {
SDL_LogCritical(SDL_LOG_PRIORITY_CRITICAL, "Unable to load OpenGL library: %s", SDL_GetError());
}
typedef void ( * PFNGLCLEARCOLORPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
typedef void ( * PFNGLCLEARPROC)(GLbitfield );
PFNGLCLEARPROC glClear;
PFNGLCLEARCOLORPROC glClearColor;
// Получаем адреса функций
glClear = (PFNGLCLEARPROC)SDL_GL_GetProcAddress("glClear");
glClearColor = (PFNGLCLEARCOLORPROC)SDL_GL_GetProcAddress("glClearColor");
Автор говорит "сделать для этого куска кода библиотеку", только не для 2 функций, а для 400. Второй вопрос, а возможно ли это сделать? Как мне создать библиотеку, которая будет как видно из примера требовать SDL_GL_LoadLibrary("libGL.so") и загружать другую библиотеку и в чем профит ее использования, ведь получается "рекурсия" использовать одну библиотеку, чтобы грузить функции другой библиотеки, не лучше тогда просто скопировать libGL.so переименовать и создать header c этими адресами?
P.S. Возможно я еще глуп и ничего не понимаю в жизни и программировании