Таги: ASCIIZ, строка, цепочка байтов
Функция для получения адреса вводимых расширением функций под Linux выглядит несколько иначе: void * glXGetProcAddressARB ( const GLubyte * name ); Обратите внимание, что аргументом этой функции является не строка (constchar *), а цепочка байтов, хотя и содержащая имя интересующей нас функции в виде ASCIIZ-строки. Поэтому необходимо приведение типа из строки в цепочку байтов. В [...]
Таги: Application, HbGL, документ
Рассмотрим теперь, каким образом осуществляется работа с расширением для платформы Linux. Работа с библиотекой OpenGL под управлением операционной системы Linux определяется OpenGL ABI {OpenGL Application Binary Interface for Linux(OpenGL ABI)). Этот документ можно найти в Интернете по адресу http://oss.sgi.com/projects/ogl-sample/ABI/index.html Поскольку в русскоязычной литературе информация по работе с OpenGL под Linux практически отсутствует, далее рассматриваются несколько [...]
Таги: include, Microsoft, рендеринг
Рассмотрим теперь, как по имени функции получить ее адрес. К сожалению, это сильно зависит от используемой платформы. Поэтому мы сначала рассмотрим, как это делается для платформы Microsoft Windows, а потом перейдем к платформе Linux. Для того чтобы под Windows получить адрес определенной, вводимой каким-либо расширением, функции служит функция wglGetProcAddress. PROC wglGetProcAddress(LPCSTR IpszProc); Она по имени [...]
Таги: wglext.h, поддержка, расширение
Следующим шагом, после проверки того, поддерживается ли данное расширение вашим графическим ускорителем и драйвером к нему (на самом деле поддержка расширений зависит не только от самого графического ускорителя, но и от установленного драйвера, поэтому всегда пользуйтесь последней версией драйвера для своего графического ускорителя), является получение нужных для работы адресов вводимых данным расширением функций. Для каждой [...]
Таги: GLUT, isExtensionSupported, проверка
Далее приводится исходный текст функции, выполняющей такую проверку. bool isExtensionSupported ( const char * ext ){const char * extensions = (const char *)glGetStrmg ( GL_EXTENSIONS ) ; const char * start= extensions; const char * ptr; while ( ( ptr = strstr ( start, ext ) ) != NULL ){// we’ve found, ensure // name [...]
Таги: FX, giGetstring, значение NULL
Обратите внимание на внушительный размер списка расширений для этого довольно старого графического ускорителя. Аналогичный список для ускорителя серии GeForce FX занял бы несколько страниц. Заметьте также, что для получения этой строки необходимо сперва проинициализировать OpenGL, иначе функция giGetstring возвращает значение NULL.
Теперь для проверки того, поддерживается ли данное расширение или нет, достаточно просто получить строку со [...]
Таги: GeForce, MX, пример
Далее приводится пример подобной строки для графического ускорителя GeForce 2 MX.
GL_ARB_imaging GL_ARB_multitexture GL_ARB_point_parameters GL_ARB_point_spriteGL_ARB_shader_ob]ects GL_ARB_shading_language_100GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_addGL_ARB_texture_env_cambine GL_ARB_texture_env_dot 3 GL_ARB_texture_mirrored_repeatGL_ARB_transpose_matгIX GL_ARB_vertex_buf f er_ob;iect GL_ARB_vertex_programGL_ARB_vertex_shader GL_ARB_window_pos GL_S3_s3tc GL_EXT_texture_env_addGL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmaxGL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_compiled_vertex_arrayGL_EXT_Cg_shader GL_EXT_draw_range_e1ements GL_EXT_fog_coordGL_EXT_mu11i_draw_arrays GL_EXT_packed_pixels GL_EXT_paletted_textureGL_EXT_pixel_buffer_ob]ect GL_EXT_pomt_parameters GL_EXT_rescale_normalGL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shared_texture_paletteGL_EXT_stencil_wrap GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_mapGL_EXT_texture_edge_clamp GL_EXT_texture_env_cambine GL_EXT_texture_env_dot 3GL_EXT_texture_filter_amsotropic GL_EXT_texture_lod GL_EXT_texture_lod_biasGL_EXT_texture_ob]ect GL_EXT_vertex_array GL_IBM_rasterpos_clipGL_IBM_texture_mirrored_repeat GL_KTX_buffer_region GL_NV_blend_square GL_NV_fenceGL_NV_fog_distance GL_NV_light_max_exponent GL_NV_packed_depth_stencilGL_NV_pixel_data_range GL_NV_pomt_sprite [...]