Вообщем я знаю... спрашиваю глупый, наверное тупой вопрос.. Но прошу сразу прощения за это и хочу сказать что прочитал много тем на этом форуме и все равно ни чего до конца не понял... все таки это форум и он для того и нужен чтобы спрашивать вопросы ))....
Проблема такая... Я понимаю что OpenGL это графический АПИ, который предоставляет доступ к функциям видеокарты, через определенный уровень абстракции(драва)...
Для того чтобы пользоваться этим АПИ нужно подключить gl.h, opengl32 либ и длл... Новые функции которых нет в данном АПИ но есть в новых видеокартах, легко загружаются через соответствующие расширения.. Тут все логично и понятно...
Теперь что конкретно непонятно... Очень часто встречаю информацию о OpenGL 2 и OpenGL 3, но не могу понять что это.... Т.е. где то есть gl2.h и gl3.h, соответственно opengl_2_32 либ ?? Подключив которые, появляется новое АПИ, где старые расширения внесены как обычные функции ???.... , если да, то почему то я их не могу найти... И какой в этом смысл... типо обычные расширения тормозят что ли ??
правильно, форум для того, чтобы спрашивать, а не говорить насколько по-вашему тупой и глупый этот вопрос.
наверняка, никому не интересно отвечать на тупые и глупые вопросы. я бы за такие названия тем расстреливал из баномёта.
gribok
тебе точно никто не ответит, ты даже ничитал об OpenGL, а уже начинаеш спрашивать что и так расписанно на офф сайте.
P.S. GooGle.ru в помощь
тт.. странно делать вывод что я ничего не читал об OpenGL... да и наверное 90% чего тут спрашивают где-нибудь да написано ;)... и это можно найти в гугле..
2PlatinumKiller если вы такой умный, разве не лучше было вместо строчки обсерания, написать строчку ответа...
bool
> никому не интересно отвечать на тупые и глупые вопросы
+1
gribok
> если вы такой умный, разве не лучше было вместо строчки обсерания, написать строчку ответа...
не лучше бы тебе сначала зайти на www.opengl.org
)) омг.. спс... все такие добрые )....
gribok
Незнаю что у вас у сишников за хидеры, но скорее всего, все функции не статические (акромя OGL1.0 или даже OGL1.1), а подгружаются динамически, одновременно с этим определяется, какие из расширений доступны. В своей же программе, ты используешь нужный функционал расширений, только если они доступны, если они не доступны, используешь алтернатывные пути решения или отказываешься от части функционала совсем.
В новых хидерах содержится весь функционал старых (ну может за исключением deprecated функций), все также загружается динамически и ты все также проверяешь наличие нужных расширений, перед их использованием.
Хотя есть вероятность, что часть функций ядра OpenGL линкуется статически, например все до OGL1.5, в таком случае, ты, как бэ, сознательно отказываешься от поддержки своим приложением стареньких видюшечек (вылезет ошибка, что не могу найти точку входа в процедуру) и используешь весь функционал OGL1.5 без лишних проверок. Как это сделано в твоих хидерах я не знаю.
Вобщем как то так.
gribok
Сложно описать в двух словах, но я попробую не углубляясь в тонкости...
Версия ОпенГЛ - это набор функций включённых в стандарт (в ядро)... Соответственно если дрова говорят о поддержке версии 2.0, то поддерживается всё то, что является функционалом этой версии... Остальные расширения не обязательны для 2.0 будут...
Инициализация ничем не отличается, нет никаких gl2.h, opengl2_32.lib и т.п.
Простой пример, есть расширение GL_EXT_MY, есть функция glMyDoEXT()...
Проходит время, выходит очередная версия ОпенГЛ и решают, что расширение важное и всем нужное, поэтому его включают в стандарт... Это означает, что теперь нет нужды смотреть наличия расширения, так как расширение находится в ядре и достаточно проверить версию ОпенГЛ... Да и смысла в проверке расширение GL_EXT_MY нет никакого, так как функционал может несколько отличаться от этого расширения, да и названия функций будут уже другие...
Вот появляется в glext.h строчки аля GL_VERSION_N_M, и там появляется новая функция glMyDo(), уже без постфикса...
Это один из вариантов того, как может быть, на самом деле может быть иначе, просто если я буду расписывать все вариации и тонкости, то будет много букв... Я и так думаю написал мало, что может не совсем понятно будет что к чему... Читай вики, спеки и прочее...
gribok
То, что тебе никто сразу не стал отвечать, а послали в гугл, это оправдано, потому как, найти нужную информацию, бывает гораздо проще, чем сочинять текст вопроса, хотя опять таки нужно знать, как спросить у гугла.
Собсно вчера был день программиста, вот наверно наотмечались, кто-то злой ходит, кто-то еще не протрезвел.
И никогда не пиши, что вопрос глупый, так ты сам к себе не уважительно относишься и не жди поэтому, помощи от других, по серьезному врядли кто ответит.
В платформ сдк для виндовс есть opengl.lib датированый еще 95(96) годом и gl.h такой же давности. Это opengl 1.0
Все последующие версии можно получить добавляя расширения. Из-за полной совместимости всех версий opengl эта старая версия остается актуальной до сих пор.
gl2.h нету, opengl 2 это opengl 1.0 + куча расширений. gl3.h есть черновой вариант, для спецификации opengl 3.1. Скачать можно отсюда - http://www.opengl.org/registry/api/gl3.h
з.ы. надеюсь внятно обьяснил. Реакция "добрых людей" поразила...
ок спс... т.е. если я правильно понял, то glext.h постоянно обновляется и те функции которые перешли в ядро теряют префикс в новых версиях glext.h. Не совсем понял зачем тогда gl3.h ?
gribok
>gl3.h
Его подключают вместо gl.h. В нем отсутствуют deprecated-функции и т.п.
gribok
> ок спс... т.е. если я правильно понял, то glext.h постоянно обновляется и те
> функции которые перешли в ядро теряют префикс в новых версиях glext.h.
Ну чтото вроде того...
> А зачем тогда gl3.h ?
Убран устаревший для ОпенГЛ 3 функционал...
Da Man
> opengl 2 это opengl 1.0 + куча расширений
Ну не совсем так...
Спецификация OpenGL 2.0 это конкретная версия данного API с заданным функционалом.
А механизм расширений позволяет не менять версии API каждый месяц с появлением новых функций, а тестировать их, и уже потом по мере необходимости добавлять в новую версию API. Или наоборот, устаревший функционал не выбрасывается на корню, а переводится в из стандартного функционала в расширение, как например поступили в OpenGL 3.1 и 3.2 весь старый функционал доступен через расширение.
Тема в архиве.