Войти
ПрограммированиеФорумГрафика

glext.lib

Страницы: 1 2 Следующая »
#0
18:30, 27 авг. 2007

не работает функция
IsExtensionSupported
подключал glext.h, бесполезно..
wtf?
возможно, нету glext.lib, но в инете его не нашел...


#1
19:47, 27 авг. 2007

ты нас в гроб загонишь...... он ненужен.....
ты инициализировал расширения? если нет ту кури бамбук...
и еще.... IsExtentionSupported  НЕ стандартная функция!!!

в твоем случае или ты забил на libExt.h или LibExt.cpp  я так понял ты его используешь.... или код в студию.
хоть я сам недалеко (относительно) ушел.. но поиск рулит

#2
7:24, 28 авг. 2007

libext.h
требует наличия
wglext.h....
кстати, как инициализировать расширения?

#3
8:41, 28 авг. 2007

Есть же стандартная функция OpenGL -- проверять поддержку расширения. Зачем всякий изврат с подключением кучи лишних библиотек использовать?

Вот статья http://www.gamedev.ru/articles/?id=20100
И вообще почитайте статьи из раздела -- все доступно, понятно, к тому же на русском написано!!

Прошло более 7 лет
#4
14:44, 21 окт. 2014

Alex_MIPT
Согласен здесь ппц путаница.
И я не понимаю людей которые так злятся, когда я был менее опытным программистом и спрашивал про OpenGL.
Короче, начнем
Для того чтобы использовать новый функционал OpenGL надо:
1) поставить драйвера OpenGL к твоей видеокарте (чтобы можно было юзать новые функции)
2) Visual Studio поддерживает только OpenGL 1.2, т.е. там есть только gl.h, glu.h и opengl32.lib (который по сути импортирует функции из opengl32.dll, которая находится уже в системе Windows наравне с kernel32.dll ) В случае gl.h и opengl32.lib происходит т.н. статическая линковка
3) Система Windows умеет своим API динамически линковать, т.е импортировать функции прямо во время выполнения программы!
Делается это функцией GetProcAddress, которая возвращает указатель на функцию а принимает Handle (тоже виндовая фишка, целое число, идентификатор чего-либо в винде) dll'ки (которая подгружается к твоей программе если вначале вызвать функцию LoadLibrary) и текстовую строку с названием функции.
Винда так устроена, что к примеру вместо LoadLibrary можно вызвать любую другую функцию, подгружающую модуль к вашей программе (подозреваю что так можно даже подгрузить COM компонеты)
А вместо GetProcAddres можно вызывать любую другую функцию возвращающую указатель на ту функцию которую хотим "импортировать"
Одна из таких - wglGetProcAddress, это тоже WinAPI'шная, она принимает только текстовую строку, ей даже не надо хендл на подгружаемый модуль!
В описании написано: The wglGetProcAddress function returns the address of an OpenGL extension function for use with the current OpenGL rendering context.
4) То есть всего лишь навсего надо:
-подключить инклуд glext.h
-написать лабуду типа PFNGLBUFFERDATAPROC glBufferData; в глобальной области видимости, обычно сразу после подключения инклуда. Лабуду смотреть в glext.h Вот это PFNGLBUFFERDATAPROC - это тип указателя на функцию, аргументы и возвращаемое значение которого совпадает с функцией glBufferData в спецификации OpenGL. А у тебя glBufferData это будет указатель на функцию. Разницы нет, так как синтаксис использования абсолютно одинаковый. Единственное - это то что если например сделаешь вот так glBufferData(GL_ARRAY_BUFFER, sizeof(data), data, GL_STATIC_DRAW); а сам указатель glBufferData будет равняться какому-нибудь мусору, то вылезет какой нибудь seg fault или violation во время выполнения, поэтому до начала надо инициализировать указатель:
-инициализировать указатель glBufferData строчкой
glBufferData = (PFNGLACTIVETEXTUREARBPROC)wglGetProcAddress("glBufferDataARB");
Видишь в wglGetProcAddress передаем строчку glBufferDataARB. Просто возможно в системе искомая функция называется с окончанием ARB, как бы говоря нам, что это  расширенная из OpenGL 1.5
Ты должен после этой строчки проверить указатель glBufferData, он не должен равняться нулю (nullptr)
Если нулю равняется, то либо wglGetProcAddress сфейлила, либо скорее всего функции glBufferDataARB нету в "current rendering context".
Попробуй убрать ARB
http://msdn.microsoft.com/ru-ru/library/windows/desktop/dd374386(v=vs.85).aspx - описание wglGetProcAddress
юзать можно, как только указатель после вызова wglGetProcAddress будет ненулевым

#5
15:55, 21 окт. 2014

Golden Shovel Award?

#6
17:54, 21 окт. 2014

Я так понимаю, вы хотите использовать мою библиотеку libExt - зайдите ко мне на сайт steps3d.narod.ru - там есть исходный код для нужных вам функций.
Или возьмите библиотеку GLEW - она поддерживает все последние расширения.

#7
18:00, 21 окт. 2014

steps3d
Добрый вечер! Какие люди на форуме. Постоянно захожу на ваш сайт.
Только в последнее время перестали описывать какие-нибудь технологии визуализации, писать статьи о практическом применении чего-либо.
Больше стало копипаст новостей. Жаль.

#8
18:04, 21 окт. 2014

steps3d
Ух ты! Он настоящий!

#9
19:12, 21 окт. 2014

steps3d
А вот я хотел бы паапрасить компенсацию! While мои сверстники ходили по клубам и дефченкам, я просижывал вечера на вашем сайте! Теперь я знаю огл, но я стар и одинок... Немного денег на мой кошелек скрасили бы мои холодные вечера. Потрачу честно на хорошее пиво, шоб мне на плюсах все остатку жизни писать, если вру!

#10
19:27, 21 окт. 2014

Zloten
Бомжевание пробовал?

#11
19:30, 21 окт. 2014

Blew_zc
Рекомендуешь по своему опыту? ;)

#12
19:35, 21 окт. 2014

Zloten
> Рекомендуешь по своему опыту? ;)
Возможно, смотря с какой стороны посмотреть :)

#13
19:43, 21 окт. 2014

скрипт генерящий различные h+cpp под разные версии opengl 1.x-4.x
https://bitbucket.org/alfonse/glloadgen/overview

#14
23:13, 21 окт. 2014

Некропост, товарищи, некропост. Топикстартер покинул венды уж года три как.

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.