Тип указателя для каждой вводимой расширением функции

Следующим шагом, после проверки того, поддерживается ли данное расширение вашим графическим ускорителем и драйвером к нему (на самом деле поддержка расширений зависит не только от самого графического ускорителя, но и от установленного драйвера, поэтому всегда пользуйтесь последней версией драйвера для своего графического ускорителя), является получение нужных для работы адресов вводимых данным расширением функций. Для каждой вводимой расширением функции в соответствующем заголовочном файле (glext.h, wglext.h, glxext.h) содержится определение типа указателя на данную функцию. Так, для функции giFogCoordEXT, вводимой расширением GL_EXT_fog_coord, определяется следующий тип: typedef void (APIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); Таким образом, тип PFNGLFOGCOORDFEXTPROC является адресом указателя на функцию giFogCoordEXT.

Поэтому если ввести переменную giFogCoordEXT, определив ее следующим образом PFNGLFOGCOORDFEXTPROCglFogCoordfEXT ; и потом присвоить ей значение адреса этой функции, то обращение glFogCoordfEXT ( 0.5f ); будет корректным обращением к функции glFogCoordfEXT, вводимой данным расширением. Таким образом, для получения из программы доступа к функциям, вводимым тем или иным расширением, достаточно ввести набор переменных — указателей на эти функции и проинициализировать их соответствующими адресами. После этого можно обращаться к ним как к обычным функциям.

Категория: Понятие расширений OpenGL, их основные типы и особенности работы с ними под Windows и Linux

Таги: , ,

Приветствие!

Наш сайт создан для любителей и профессионалов, для тех кому не безинтересна система под названием Linux. На нашем сайте вы найдете статьи от установки до программирования на Linux'e, отзывы о системе, советы и поддержка начинающим пользователям. Для новичком, доступен раздел "Запускаем Linux", в котором рассказывается все от "упаковки", до первого включения системы.

Архивный календарь

Июль 2010
Пн Вт Ср Чт Пт Сб Вс
« Фев    
 1234
567891011
12131415161718
19202122232425
262728293031  


Статистика