strcat(s."\t"); //Вставка разделителя строк.

Conf - (char*) glGetString(GL_EXTENSIONS); //Получение строки расширений. strcat(s.Conf); int L - strlen(s); int j - 0;

for(int i«0;i<L;i++) //Вставка разделителей строк. if(j++>50 && s[i]-' ') {

j - 0; s[i]-'\f;
}

TIMESTRING(hWnd.-l.s); //Вывод диалогового окна со списком расширений.

Диалоговое окно выводится макросом TIMESTRING, текст которого можно найти в файле Utils.h. Перед созданием диалогового окна в строку вставляются символы табуляции, по которым макрос организует переход на новую строку. Фрагмент окна показан на рис. 22.4.

Если название расширения начинается символами GL_ARB, то спецификация расширения подготовлена комитетом ARB (Architecture Review Board). Префикс GL_EXT соответствует группе независимых разработчиков, прочие указывают конкретную фирму (GL_ATI, GL_SGIS, GL_NV и т. д.).

Инициализация библиотек и вывод примитивов

ATI Technologies Inc.

Ускоритель MOBILITY RADEON 9700 x86/SSE2

Версия 1.5.4458 WinXP Release GL_ARB_multitexture

GL_EXT__texture_env_add GL_EXT_compiled_vertex_array GL_S3_s3tc GL_ARB_depth Jextufe GL_ARBJragmenr prog ram GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_multisample GL__ARB_occlusion_query GL_ARB_pointj>arameters GL_ARB_shader_objects GL_ARB_shading_language_1 00 GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB__texture_border_clamp GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 G L_ARB_textu re_m I rro re d_re p e at G L_ARB_tra n s p о s e_m atrlx GL_ARB_vertex_blend GL_ARB__yertex_buffer__object GL__ARB_vertex_program

Рис. 22.4. Расширения OpenGL

Доступ к расширениям организован как вызов экспортируемых функций из явно загруженной DLL-библиотеки. Например, функция расширения gl AddSwapHi ntRectWINC int х, int y. iny Width, int Height), вызванная перед выполнением SwapBuffersC ), позволяет копировать в видимую страницу только часть области вывода, координаты верхнего левого угла и размеры которой заданы параметрами glAddSwapHintRectWINC ). Это позволяет ускорить переключение страниц, если изменяется только небольшая часть выведенного в окно изображения. Для вызова функции сначала объявляется указатель на функцию:


⇐ Предыдущая| |Следующая ⇒