@frilix
Иногда "творю"

Создать библиотеку расширений OpenGL?

Доброго дня. В вузе поставили задачу создать динамическую или статическую библиотеку расширений и подключить ее к проекту с OpenGL, чтобы оттуда брать функции для работы с ними.

Так звучит задание:
b6f8d7d4b9494820932b7ea2e6041035.png

Собственно ссылки которые были даны:

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. Возможно я еще глуп и ничего не понимаю в жизни и программировании
  • Вопрос задан
  • 233 просмотра
Решения вопроса 1
Olej
@Olej
инженер, программист, преподаватель
Возможно я еще глуп и ничего не понимаю в жизни и программировании

Скорее всего, именно так оно и есть...

Что автор задания имеет ввиду под созданием расширений?

Поскольку это учебное задание для пЫанЭров, то автор, скорее всего, имел в виду просто создать обёртку для OpenGL 3.3 ...

В вузе поставили задачу создать динамическую или статическую библиотеку расширений и подключить ее к проекту с OpenGL, чтобы оттуда брать функции для работы с ними.

... чтобы через собственную транзитную библиотеку осуществлять оригинальные вызовы OpenGL. И не все 400 штук, а только те 2 или 3 вызова, которые осуществляет ваше вызывающее приложение.

С целью, всего лишь, показать, что вы понимаете вообще что такое библиотеки и умеете их создавать.

Если вы осилите это дело в Linux, то вот вам достаточо детальное описание техники библиотек - Разработка программных проектов в Linux.
Если же вы предпочитаете Windows ... то почитайте Джефри Рихтера.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы