Поддержка мультитекстурирования

Таги: , ,

Сейчас поддержка мультитекстурирования входит в стандарт OpenGL (начиная с версии 1.2.1), и только под Windows (так как Microsoft по-прежнему поддерживает лишь OpenGL версии 1.1) приходится работать с мультитекстурированием через соответствующее расширение. Для проверки поддержки данного расширения можно использовать функцию isExtensionSupported, рассмотренную в главе 1. Если isExtensionSupported ( «GL_ARB_multitexture» ) возвращает значение true, то данное расширение [...]

Расширение ARB_multitexture

Таги: , ,

Для получения ряда визуальных эффектов (карты освещенности, туман, микрофактурные текстуры и т. п.) часто возникает необходимость наложения на грань не одной, а сразу нескольких текстур, причем зачастую с разными законами наложения. К сожалению, стандартный OpenGL позволяет накладывать только одну текстуру за раз (проход), что приводит к необходимости реализовывать для вывода граней несколько проходов. При этом [...]

Функции файла libExt.h

Таги: , ,

Функция lsExtensionSupported уже рассматривалась нами, она просто проверяет, поддерживается ли данное расширение (при этом проверяется поддержка как общих расширений, так и расширений, специфичных для конкретной платформы). Функция assertExtensionsSupported позволяет проверить поддержку сразу нескольких расширений. На вход ей передается строка с именами расширений (разделенных пробелами или запятыми). Если хотя бы одно расширение из переданного списка не [...]

Файл libExt.h

Таги: , ,

Фрагмент заголовочного файла libExt.h библиотеки, содержащий описание вводимых этим расширением функций (функции, вводимые различными расширениями, здесь намеренно не приводятся из-за их большого количества).
#ifdef_WIN32# include #else¦define GLX_GLXEXT_LEGACY#endif#mclude#mclude#mclude» . . /glext. h»#ifdef_WIN32#mclude» . . /wglext. h»#else#mclude#mclude#endifbool lsExtensionSupported ( const char * ext );void mitExt ens ions();void printfInfo();void assertExtensionsSupported ( const char * extList );
Для удобства [...]

Формирование кроссплатформенного кода

Таги: , ,

Для удобства дальнейшей работы с расширениями все необходимые операции можно записать в небольшую библиотеку, причем желательно инкапсулировать всю платформозависимую часть. Для формирования кроссплатформенного кода изменяющуюся часть (получение адреса функции) лучше вынести в отдельную функцию: static void * getProcAddress ( const char * name ){#ifdef _WIN32return wglGetProcAddress ( name );#elsereturn (void *)glXGetProcAddressARB ((const GLubyte *)name ); [...]

Работа с GLX-расширениями

Таги: , ,

Под Linux также существует функция, возвращающая список всех поддерживаемых GLX-расширений. Однако она не является расширением и непосредственно доступна пользователям. Вот пример ее описания: const char * glXQueryExtensionsString ( Display * dpy, int screen ); После того как при помощи этой функции был получен список всех GLX-расширений, достаточно рассмотренным ранее способом проверить наличие в этой [...]

Работа с WGL-расширениями

Таги: , ,

Поскольку эти расширения специфичны только для Windows, то проверка их поддержки непосредственно введенной ранее функцией isExtensionSupported не возможна, поскольку используемая там строка не содержит расширений платформы Windows. Поэтому нужно получить строку со всеми поддерживаемыми расширениями, специфичными для Windows. Для этого сначала следует стандартным образом проверить поддержку расширения WGLARBextensions, и в случае его поддержки ПОЛУЧИТЬ указатель [...]

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

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

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

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


Статистика