int checkGfx() { QueryExtension("Print"); int r, g, b, a, ar, ag, ab, aa, d, s; GLboolean db,st, aux; glGetIntegerv(GL_RED_BITS, &r); glGetIntegerv(GL_GREEN_BITS, &g); glGetIntegerv(GL_BLUE_BITS, &b); glGetIntegerv(GL_ALPHA_BITS, &a); glGetIntegerv(GL_ACCUM_RED_BITS, &ar); glGetIntegerv(GL_ACCUM_GREEN_BITS, &ag); glGetIntegerv(GL_ACCUM_BLUE_BITS, &ab); glGetIntegerv(GL_ACCUM_ALPHA_BITS, &aa); glGetIntegerv(GL_DEPTH_BITS, &d); glGetIntegerv(GL_STENCIL_BITS, &s); glGetBooleanv(GL_DOUBLEBUFFER, &db); glGetBooleanv(GL_STEREO, &st); glGetBooleanv(GL_AUX_BUFFERS, &aux); cerr << "Window Attributes" << endl; cerr << "-----------------" << endl; cerr << "color: " << r + g + b + a << " bits"; cerr << " (" << r << "," << g << "," << b << "," << a << ")" << endl; cerr << "accum: " << ar+ag+ab+aa << " bits"; cerr << " (" << ar << "," << ag << "," << ab << "," << aa << ")" << endl; cerr << "depth: " << d << " bits" << endl; cerr << "stencil: " << s << " bits" << endl; cerr << "double: "; if(db) cerr << "YES" << endl; else cerr << "NO" << endl; cerr << "aux: "; if(aux) cerr << "YES" << endl; else cerr << "NO" << endl; cerr << "stereo : "; if(st) cerr << "YES" << endl; else cerr << "NO" << endl; cerr << "-----------------" << endl; if(QueryExtension("GL_ATI_fragment_shader")) { cerr << "PLATFORM: ATI Radeon 8000 series" << endl; return (int)GPATI8K; } if(QueryExtension("GL_NV_texture_shader")) { cerr << "PLATFORM: nVidia GeForce 3" << endl; return (int)GPNV20; } return 0; }
void CGeomEntity::OnFlowgraphActivation(EntityId entityId, IFlowNode::SActivationInfo* pActInfo, const class CFlowGameEntityNode* pNode) { if (CGeomEntity* pGeomEntity = QueryExtension(entityId)) { if (IsPortActive(pActInfo, eInputPorts_LoadGeometry)) { pGeomEntity->GetEntity()->LoadGeometry(0, GetPortString(pActInfo, eInputPorts_LoadGeometry)); ActivateOutputPort(entityId, eOutputPorts_Done, TFlowInputData(true)); } } }
int main(int argc, char **argv) { GLenum type; glutInit(&argc, argv); Args(argc, argv); type = GLUT_RGB; type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; glutInitDisplayMode(type); glutInitWindowSize(300, 300); glutCreateWindow("Texture Test"); if (texObj && !QueryExtension("GL_EXT_texture_object")) { fprintf(stdout, "Warning: texture object extension not found.\n"); fprintf(stdout, " Disabling texture objects.\n"); texObj = GL_FALSE; } images[0] = rgbImageLoad(texFiles[0]); if (images[0] == NULL) { printf("Bad texture file.\n"); exit(1); } if (multTex) { int i; for (i = 1; i < NUM_TEXTURES; i++) { images[i] = rgbImageLoad(texFiles[i]); if (images[i] == NULL) { printf("Bad texture file.\n"); exit(1); } } } Init(); glutReshapeFunc(Reshape); glutKeyboardFunc(Key); glutSpecialFunc(SpecialKey); glutDisplayFunc(Draw); glutMainLoop(); }
void getNV20() { #ifdef GL_NV_register_combiners if(QueryExtension("GL_NV_register_combiners")) { cerr << "GL_NV_register_combiners is available!" << endl; glCombinerParameterfvNV = (PFNGLCOMBINERPARAMETERFVNVPROC)wglGetProcAddress("glCombinerParameterfvNV"); glCombinerParameterfNV = (PFNGLCOMBINERPARAMETERFNVPROC)wglGetProcAddress("glCombinerParameterfNV"); glCombinerParameterivNV = (PFNGLCOMBINERPARAMETERIVNVPROC)wglGetProcAddress("glCombinerParameterivNV"); glCombinerParameteriNV = (PFNGLCOMBINERPARAMETERINVPROC)wglGetProcAddress("glCombinerParameteriNV"); glCombinerInputNV = (PFNGLCOMBINERINPUTNVPROC)wglGetProcAddress("glCombinerInputNV"); glCombinerOutputNV = (PFNGLCOMBINEROUTPUTNVPROC)wglGetProcAddress("glCombinerOutputNV"); glFinalCombinerInputNV = (PFNGLFINALCOMBINERINPUTNVPROC)wglGetProcAddress("glFinalCombinerInputNV"); glGetCombinerInputParameterfvNV = (PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)wglGetProcAddress("glGetCombinerInputParameterfvNV"); glGetCombinerInputParameterivNV = (PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)wglGetProcAddress("glGetCombinerInputParameterivNV"); glGetCombinerOutputParameterfvNV = (PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)wglGetProcAddress("glGetCombinerOutputParameterfvNV"); glGetCombinerOutputParameterivNV= (PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)wglGetProcAddress("glGetCombinerOutputParameterivNV"); glGetFinalCombinerInputParameterfvNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)wglGetProcAddress("glGetFinalCombinerInputParameterfvNV"); glGetFinalCombinerInputParameterivNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)wglGetProcAddress("glGetFinalCombinerInputParameterivNV"); if(!glCombinerParameterfvNV) { cerr << "*********************************" << endl; cerr << "wglGetProcAddress(\"GL_NV_register_combiners\") failed!" << endl; cerr << "GetLastError(): " << GetLastError() << endl; cerr << "*********************************" << endl; } } else cerr << "GL_NV_register_combiners is NOT available" << endl; #endif //------------------------------------------------------------------- }
// // Constructor // CExtensionRegistryGLX::CExtensionRegistryGLX(): CRegistry( true ) { ARB_fbconfig_float = QueryExtension( "GLX_ARB_fbconfig_float" ); ARB_get_proc_address = QueryExtension( "GLX_ARB_get_proc_address" ); ARB_multisample = QueryExtension( "GLX_ARB_multisample" ); EXT_fbconfig_packed_float = QueryExtension( "GLX_EXT_fbconfig_packed_float" ); EXT_framebuffer_sRGB = QueryExtension( "GLX_EXT_framebuffer_sRGB" ); EXT_import_context = QueryExtension( "GLX_EXT_import_context" ); EXT_texture_from_pixmap = QueryExtension( "GLX_EXT_texture_from_pixmap" ); EXT_visual_info = QueryExtension( "GLX_EXT_visual_info" ); EXT_visual_rating = QueryExtension( "GLX_EXT_visual_rating" ); NV_float_buffer = QueryExtension( "GLX_NV_float_buffer" ); NV_swap_group = QueryExtension( "GLX_NV_swap_group" ); NV_video_out = QueryExtension( "GLX_NV_video_out" ); SGI_video_sync = QueryExtension( "GLX_SGI_video_sync" ); SGI_swap_control = QueryExtension( "GLX_SGI_swap_control" ); SGIX_fbconfig = QueryExtension( "GLX_SGIX_fbconfig" ); SGIX_pbuffer = QueryExtension( "GLX_SGIX_pbuffer" ); }
// // Constructor // CExtensionRegistryWGL::CExtensionRegistryWGL(): CRegistry( true ) { ARB_buffer_region = QueryExtension( "WGL_ARB_buffer_region" ); ARB_extensions_string = QueryExtension( "WGL_ARB_extensions_string" ); ARB_make_current_read = QueryExtension( "WGL_ARB_make_current_read" ); ARB_multisample = QueryExtension( "WGL_ARB_multisample" ); ARB_pbuffer = QueryExtension( "WGL_ARB_pbuffer" ); ARB_pixel_format = QueryExtension( "WGL_ARB_pixel_format" ); ARB_pixel_format_float = QueryExtension( "WGL_ARB_pixel_format_float" ); ARB_render_texture = QueryExtension( "WGL_ARB_render_texture" ); ATI_pixel_format_float = QueryExtension( "WGL_ATI_pixel_format_float" ); ATI_render_texture_rectangle = QueryExtension( "WGL_ATI_render_texture_rectangle" ); EXT_extensions_string = QueryExtension( "WGL_EXT_extensions_string" ); EXT_framebuffer_sRGB = QueryExtension( "WGL_EXT_framebuffer_sRGB" ); EXT_pixel_format_packed_float = QueryExtension( "WGL_EXT_pixel_format_packed_float" ); EXT_swap_control = QueryExtension( "WGL_EXT_swap_control" ); NV_float_buffer = QueryExtension( "WGL_NV_float_buffer" ); NV_render_depth_texture = QueryExtension( "WGL_NV_render_depth_texture" ); NV_render_texture_rectangle = QueryExtension( "WGL_NV_render_texture_rectangle" ); }
// // Constructor // CExtensionRegistry::CExtensionRegistry(): CRegistry( false ) { OpenGL_1_1 = QueryVersion( 1, 1 ); OpenGL_1_2 = QueryVersion( 1, 2 ); OpenGL_1_3 = QueryVersion( 1, 3 ); OpenGL_1_4 = QueryVersion( 1, 4 ); OpenGL_1_5 = QueryVersion( 1, 5 ); OpenGL_2_0 = QueryVersion( 2, 0 ); OpenGL_2_1 = QueryVersion( 2, 1 ); OpenGL_3_0 = QueryVersion( 3, 0 ); AMD_performance_monitor = QueryExtension( "GL_AMD_performance_monitor" ); AMDX_vertex_shader_tesselator = QueryExtension( "GL_AMDX_vertex_shader_tesselator" ); ARB_color_buffer_float = QueryExtension( "GL_ARB_color_buffer_float" ); ARB_depth_texture = QueryExtension( "GL_ARB_depth_texture" ); ARB_draw_buffers = QueryExtension( "GL_ARB_draw_buffers" ); ARB_fragment_program = QueryExtension( "GL_ARB_fragment_program" ); ARB_fragment_program_shadow = QueryExtension( "GL_ARB_fragment_program_shadow" ); ARB_fragment_shader = QueryExtension( "GL_ARB_fragment_shader" ); ARB_half_float_pixel = QueryExtension( "GL_ARB_half_float_pixel" ); ARB_imaging = QueryExtension( "GL_ARB_imaging" ); ARB_map_buffer_range = QueryExtension( "GL_ARB_map_buffer_range" ); ARB_matrix_palette = QueryExtension( "GL_ARB_matrix_palette" ); ARB_multisample = QueryExtension( "GL_ARB_multisample" ); ARB_multitexture = QueryExtension( "GL_ARB_multitexture" ); ARB_occlusion_query = QueryExtension( "GL_ARB_occlusion_query" ); ARB_pixel_buffer_object = QueryExtension( "GL_ARB_pixel_buffer_object" ); ARB_point_parameters = QueryExtension( "GL_ARB_point_parameters" ); ARB_point_sprite = QueryExtension( "GL_ARB_point_sprite" ); ARB_shader_objects = QueryExtension( "GL_ARB_shader_objects" ); ARB_shading_language_100 = QueryExtension( "GL_ARB_shading_language_100" ); ARB_shadow = QueryExtension( "GL_ARB_shadow" ); ARB_shadow_ambient = QueryExtension( "GL_ARB_shadow_ambient" ); ARB_texture_border_clamp = QueryExtension( "GL_ARB_texture_border_clamp" ); ARB_texture_compression = QueryExtension( "GL_ARB_texture_compression" ); ARB_texture_cube_map = QueryExtension( "GL_ARB_texture_cube_map" ); ARB_texture_env_add = QueryExtension( "GL_ARB_texture_env_add" ); ARB_texture_env_combine = QueryExtension( "GL_ARB_texture_env_combine" ); ARB_texture_env_crossbar = QueryExtension( "GL_ARB_texture_env_crossbar" ); ARB_texture_env_dot3 = QueryExtension( "GL_ARB_texture_env_dot3" ); ARB_texture_float = QueryExtension( "GL_ARB_texture_float" ); ARB_texture_mirrored_repeat = QueryExtension( "GL_ARB_texture_mirrored_repeat" ); ARB_texture_non_power_of_two = QueryExtension( "GL_ARB_texture_non_power_of_two" ); ARB_texture_rectangle = QueryExtension( "GL_ARB_texture_rectangle" ); ARB_transpose_matrix = QueryExtension( "GL_ARB_transpose_matrix" ); ARB_vertex_blend = QueryExtension( "GL_ARB_vertex_blend" ); ARB_vertex_buffer_object = QueryExtension( "GL_ARB_vertex_buffer_object" ); ARB_vertex_program = QueryExtension( "GL_ARB_vertex_program" ); ARB_vertex_shader = QueryExtension( "GL_ARB_vertex_shader" ); ARB_window_pos = QueryExtension( "GL_ARB_window_pos" ); ATI_draw_buffers = QueryExtension( "GL_ATI_draw_buffers" ); ATI_element_array = QueryExtension( "GL_ATI_element_array" ); ATI_envmap_bumpmap = QueryExtension( "GL_ATI_envmap_bumpmap" ); ATI_fragment_shader = QueryExtension( "GL_ATI_fragment_shader" ); ATI_map_buffer_object = QueryExtension( "GL_ATI_map_buffer_object" ); ATI_meminfo = QueryExtension( "GL_ATI_meminfo" ); ATI_separate_stencil = QueryExtension( "GL_ATI_separate_stencil" ); ATI_shader_texture_lod = QueryExtension( "GL_ATI_shader_texture_lod" ); ATI_texture_compression_3dc = QueryExtension( "GL_ATI_texture_compression_3dc" ); ATI_texture_env_combine3 = QueryExtension( "GL_ATI_texture_env_combine3" ); ATI_texture_float = QueryExtension( "GL_ATI_texture_float" ); ATI_texture_mirror_once = QueryExtension( "GL_ATI_texture_mirror_once" ); ATI_vertex_array_object = QueryExtension( "GL_ATI_vertex_array_object" ); ATI_vertex_attrib_array_object = QueryExtension( "GL_ATI_vertex_attrib_array_object" ); ATI_vertex_streams = QueryExtension( "GL_ATI_vertex_streams" ); EXT_abgr = QueryExtension( "GL_EXT_abgr" ); EXT_bgra = QueryExtension( "GL_EXT_bgra" ); EXT_bindable_uniform = QueryExtension( "GL_EXT_bindable_uniform" ); EXT_blend_color = QueryExtension( "GL_EXT_blend_color" ); EXT_blend_equation_separate = QueryExtension( "GL_EXT_blend_equation_separate" ); EXT_blend_func_separate = QueryExtension( "GL_EXT_blend_func_separate" ); EXT_blend_minmax = QueryExtension( "GL_EXT_blend_minmax" ); EXT_blend_subtract = QueryExtension( "GL_EXT_blend_subtract" ); EXT_Cg_shader = QueryExtension( "GL_EXT_Cg_shader" ); EXT_clip_volume_hint = QueryExtension( "GL_EXT_clip_volume_hint" ); EXT_compiled_vertex_array = QueryExtension( "GL_EXT_compiled_vertex_array" ); EXT_depth_bounds_test = QueryExtension( "GL_EXT_depth_bounds_test" ); EXT_draw_buffers = QueryExtension( "GL_EXT_draw_buffers" ); EXT_draw_buffers2 = QueryExtension( "GL_EXT_draw_buffers2" ); EXT_draw_instanced = QueryExtension( "GL_EXT_draw_instanced" ); EXT_draw_range_elements = QueryExtension( "GL_EXT_draw_range_elements" ); EXT_fog_coord = QueryExtension( "GL_EXT_fog_coord" ); EXT_framebuffer_blit = QueryExtension( "GL_EXT_framebuffer_blit" ); EXT_framebuffer_multisample = QueryExtension( "GL_EXT_framebuffer_multisample" ); EXT_framebuffer_object = QueryExtension( "GL_EXT_framebuffer_object" ); EXT_framebuffer_sRGB = QueryExtension( "GL_EXT_framebuffer_sRGB" ); EXT_geometry_shader4 = QueryExtension( "GL_EXT_geometry_shader4" ); EXT_gpu_shader4 = QueryExtension( "GL_EXT_gpu_shader4" ); EXT_multi_draw_arrays = QueryExtension( "GL_EXT_multi_draw_arrays" ); EXT_packed_depth_stencil = QueryExtension( "GL_EXT_packed_depth_stencil" ); EXT_packed_float = QueryExtension( "GL_EXT_packed_float" ); EXT_packed_pixels = QueryExtension( "GL_EXT_packed_pixels" ); EXT_paletted_texture = QueryExtension( "GL_EXT_paletted_texture" ); EXT_pixel_buffer_object = QueryExtension( "GL_EXT_pixel_buffer_object" ); EXT_point_parameters = QueryExtension( "GL_EXT_point_parameters" ); EXT_rescale_normal = QueryExtension( "GL_EXT_rescale_normal" ); EXT_secondary_color = QueryExtension( "GL_EXT_secondary_color" ); EXT_separate_specular_color = QueryExtension( "GL_EXT_separate_specular_color" ); EXT_shadow_funcs = QueryExtension( "GL_EXT_shadow_funcs" ); EXT_stencil_two_side = QueryExtension( "GL_EXT_stencil_two_side" ); EXT_stencil_wrap = QueryExtension( "GL_EXT_stencil_wrap" ); EXT_timer_query = QueryExtension( "GL_EXT_timer_query" ); EXT_texture_3D = QueryExtension( "GL_EXT_texture_3D" ); EXT_texture_array = QueryExtension( "GL_EXT_texture_array" ); EXT_texture_buffer_object = QueryExtension( "GL_EXT_texture_buffer_object" ); EXT_texture_compression_latc = QueryExtension( "GL_EXT_texture_compression_latc" ); EXT_texture_compression_rgtc = QueryExtension( "GL_EXT_texture_compression_rgtc" ); EXT_texture_compression_s3tc = QueryExtension( "GL_EXT_texture_compression_s3tc" ); EXT_texture_cube_map = QueryExtension( "GL_EXT_texture_cube_map" ); EXT_texture_edge_clamp = QueryExtension( "GL_EXT_texture_edge_clamp" ); EXT_texture_env_add = QueryExtension( "GL_EXT_texture_env_add" ); EXT_texture_env_combine = QueryExtension( "GL_EXT_texture_env_combine" ); EXT_texture_env_dot3 = QueryExtension( "GL_EXT_texture_env_dot3" ); EXT_texture_filter_anisotropic = QueryExtension( "GL_EXT_texture_filter_anisotropic" ); EXT_texture_integer = QueryExtension( "GL_EXT_texture_integer" ); EXT_texture_lod = QueryExtension( "GL_EXT_texture_lod" ); EXT_texture_lod_bias = QueryExtension( "GL_EXT_texture_lod_bias" ); EXT_texture_mirror_clamp = QueryExtension( "GL_EXT_texture_mirror_clamp" ); EXT_texture_object = QueryExtension( "GL_EXT_texture_object" ); EXT_texture_rectangle = QueryExtension( "GL_EXT_texture_rectangle" ); EXT_texture_shared_exponent = QueryExtension( "GL_EXT_texture_shared_exponent" ); EXT_transform_feedback = QueryExtension( "GL_EXT_transform_feedback" ); EXT_vertex_array = QueryExtension( "GL_EXT_vertex_array" ); EXT_vertex_shader = QueryExtension( "GL_EXT_vertex_shader" ); HP_occlusion_test = QueryExtension( "GL_HP_occlusion_test" ); IBM_rasterpos_clip = QueryExtension( "GL_IBM_rasterpos_clip" ); IBM_texture_mirrored_repeat = QueryExtension( "GL_IBM_texture_mirrored_repeat" ); KTX_buffer_region = QueryExtension( "GL_KTX_buffer_region" ); NV_blend_square = QueryExtension( "GL_NV_blend_square" ); NV_conditional_render = QueryExtension( "GL_NV_conditional_render" ); NV_copy_depth_to_color = QueryExtension( "GL_NV_copy_depth_to_color" ); NV_depth_buffer_float = QueryExtension( "GL_NV_depth_buffer_float" ); NV_depth_clamp = QueryExtension( "GL_NV_depth_clamp" ); NV_fence = QueryExtension( "GL_NV_fence" ); NV_float_buffer = QueryExtension( "GL_NV_float_buffer" ); NV_fog_distance = QueryExtension( "GL_NV_fog_distance" ); NV_fragment_program = QueryExtension( "GL_NV_fragment_program" ); NV_fragment_program2 = QueryExtension( "GL_NV_fragment_program2" ); NV_fragment_program_option = QueryExtension( "GL_NV_fragment_program_option" ); NV_framebuffer_multisample_coverage = QueryExtension( "GL_NV_framebuffer_multisample_coverage" ); NV_geometry_program4 = QueryExtension( "GL_NV_geometry_program4" ); NV_gpu_program4 = QueryExtension( "GL_NV_gpu_program4" ); NV_half_float = QueryExtension( "GL_NV_half_float" ); NV_light_max_exponent = QueryExtension( "GL_NV_light_max_exponent" ); NV_multisample_filter_hint = QueryExtension( "GL_NV_multisample_filter_hint" ); NV_occlusion_query = QueryExtension( "GL_NV_occlusion_query" ); NV_packed_depth_stencil = QueryExtension( "GL_NV_packed_depth_stencil" ); NV_parameter_buffer_object = QueryExtension( "GL_NV_parameter_buffer_object" ); NV_pixel_data_range = QueryExtension( "GL_NV_pixel_data_range" ); NV_point_sprite = QueryExtension( "GL_NV_point_sprite" ); NV_primitive_restart = QueryExtension( "GL_NV_primitive_restart" ); NV_register_combiners = QueryExtension( "GL_NV_register_combiners" ); NV_register_combiners2 = QueryExtension( "GL_NV_register_combiners2" ); NV_texgen_reflection = QueryExtension( "GL_NV_texgen_reflection" ); NV_texture_compression_vtc = QueryExtension( "GL_NV_texture_compression_vtc" ); NV_texture_env_combine4 = QueryExtension( "GL_NV_texture_env_combine4" ); NV_texture_expand_normal = QueryExtension( "GL_NV_texture_expand_normal" ); NV_texture_rectangle = QueryExtension( "GL_NV_texture_rectangle" ); NV_texture_shader = QueryExtension( "GL_NV_texture_shader" ); NV_texture_shader2 = QueryExtension( "GL_NV_texture_shader2" ); NV_texture_shader3 = QueryExtension( "GL_NV_texture_shader3" ); NV_transform_feedback = QueryExtension( "GL_NV_transform_feedback" ); NV_vertex_array_range = QueryExtension( "GL_NV_vertex_array_range" ); NV_vertex_array_range2 = QueryExtension( "GL_NV_vertex_array_range2" ); NV_vertex_program = QueryExtension( "GL_NV_vertex_program" ); NV_vertex_program1_1 = QueryExtension( "GL_NV_vertex_program1_1" ); NV_vertex_program2 = QueryExtension( "GL_NV_vertex_program2" ); NV_vertex_program2_option = QueryExtension( "GL_NV_vertex_program2_option" ); NV_vertex_program3 = QueryExtension( "GL_NV_vertex_program3" ); NV_vertex_program4 = QueryExtension( "GL_NV_vertex_program4" ); NVX_conditional_render = QueryExtension( "GL_NVX_conditional_render" ); S3_s3tc = QueryExtension( "GL_S3_s3tc" ); SGIS_generate_mipmap = QueryExtension( "GL_SGIS_generate_mipmap" ); SGIS_texture_lod = QueryExtension( "GL_SGIS_texture_lod" ); SGIX_depth_texture = QueryExtension( "GL_SGIX_depth_texture" ); SGIX_shadow = QueryExtension( "GL_SGIX_shadow" ); #ifdef _WIN32 WindowSystem = new CExtensionRegistryWGL(); #elif defined (__linux__) WindowSystem = new CExtensionRegistryGLX(); #endif // _WIN32 }
void getATI8K() { #ifdef GL_ATIX_envmap_bumpmap //------------------- GL_ATIX_envmap_bumpmap ------------------------ glTexBumpParameterivATIX = 0; glTexBumpParameterfvATIX = 0; glGetTexBumpParameterivATIX = 0; glGetTexBumpParameterivATIX = 0; if(QueryExtension("GL_ATIX_envmap_bumpmap")) { cerr << "GL_ATIX_envmap_bumpmap is available!" << endl; glTexBumpParameterivATIX= (PFNGLTEXBUMPPARAMETERIVATIXPROC)wglGetProcAddress("glTexBumpParameterivATIX"); glTexBumpParameterfvATIX= (PFNGLTEXBUMPPARAMETERFVATIXPROC)wglGetProcAddress("glTexBumpParameterfvATIX"); glGetTexBumpParameterivATIX= (PFNGLGETTEXBUMPPARAMETERIVATIXPROC)wglGetProcAddress("glGetTexBumpParameterivATIX"); glGetTexBumpParameterfvATIX= (PFNGLGETTEXBUMPPARAMETERFVATIXPROC)wglGetProcAddress("glGetTexBumpParameterfvATIX"); if((!glTexBumpParameterivATIX)||(!glTexBumpParameterfvATIX)|| (!glGetTexBumpParameterivATIX)||(!glGetTexBumpParameterfvATIX)) { cerr << "*********************************" << endl; cerr << "wglGetProcAddress(\"GL_ATIX_envmap_bumpmap\") failed!" << endl; cerr << "GetLastError(): " << GetLastError() << endl; cerr << "NOTE: You may need to get a new driver from ATI/NVIDIA" << endl; cerr << (int)glTexBumpParameterivATIX << " " << (int)glTexBumpParameterfvATIX << endl; cerr << (int)glGetTexBumpParameterivATIX << " " << (int)glGetTexBumpParameterivATIX << endl; cerr << "*********************************" << endl; } else { //see what the capabilites are int matsz; glGetTexBumpParameterivATIX(GL_BUMP_ROT_MATRIX_SIZE_ATIX, &matsz); cerr << " -Bump rot matrix size = " << matsz << endl; int numtex; glGetTexBumpParameterivATIX(GL_BUMP_NUM_TEX_UNITS_ATIX, &numtex); cerr << " -Number of available texture units = " << numtex << endl; int texunits[32]; glGetTexBumpParameterivATIX(GL_BUMP_TEX_UNITS_ATIX, texunits); cerr << " -Texture unit ids:" << endl; for(int i=0; i<numtex; ++i) { if(texunits[i] == GL_TEXTURE0_ARB) cerr << " GL_TEXTURE0_ARB" << endl; if(texunits[i] == GL_TEXTURE1_ARB) cerr << " GL_TEXTURE1_ARB" << endl; if(texunits[i] == GL_TEXTURE2_ARB) cerr << " GL_TEXTURE2_ARB" << endl; if(texunits[i] == GL_TEXTURE3_ARB) cerr << " GL_TEXTURE3_ARB" << endl; if(texunits[i] == GL_TEXTURE4_ARB) cerr << " GL_TEXTURE4_ARB" << endl; if(texunits[i] == GL_TEXTURE5_ARB) cerr << " GL_TEXTURE5_ARB" << endl; } } } else cerr << "GL_ATIX_envmap_bumpmap is NOT available!" << endl; #endif //end radeon #ifdef GL_ATI_fragment_shader //------------------- GL_ATI_fragment_shader ------------------------ glGenFragmentShadersATI = 0; glBindFragmentShaderATI = 0; glDeleteFragmentShaderATI = 0; glBeginFragmentShaderATI = 0; glEndFragmentShaderATI = 0; glPassTexCoordATI = 0; glSampleMapATI = 0; glColorFragmentOp1ATI = 0; glColorFragmentOp2ATI = 0; glColorFragmentOp3ATI = 0; glAlphaFragmentOp1ATI = 0; glAlphaFragmentOp2ATI = 0; glAlphaFragmentOp3ATI = 0; glSetFragmentShaderConstantATI = 0; if(QueryExtension("GL_ATI_fragment_shader")) { cerr << "GL_ATI_fragment_shader is available" << endl; glGenFragmentShadersATI = (PFNGLGENFRAGMENTSHADERSATIPROC)wglGetProcAddress("glGenFragmentShadersATI"); glBindFragmentShaderATI = (PFNGLBINDFRAGMENTSHADERATIPROC) wglGetProcAddress("glBindFragmentShaderATI"); glDeleteFragmentShaderATI= (PFNGLDELETEFRAGMENTSHADERATIPROC) wglGetProcAddress("glDeleteFragmentShaderATI"); glBeginFragmentShaderATI = (PFNGLBEGINFRAGMENTSHADERATIPROC) wglGetProcAddress("glBeginFragmentShaderATI"); glEndFragmentShaderATI = (PFNGLENDFRAGMENTSHADERATIPROC) wglGetProcAddress("glEndFragmentShaderATI"); glPassTexCoordATI = (PFNGLPASSTEXCOORDATIPROC) wglGetProcAddress("glPassTexCoordATI"); glSampleMapATI = (PFNGLSAMPLEMAPATIPROC) wglGetProcAddress("glSampleMapATI"); glColorFragmentOp1ATI = (PFNGLCOLORFRAGMENTOP1ATIPROC) wglGetProcAddress("glColorFragmentOp1ATI"); glColorFragmentOp2ATI = (PFNGLCOLORFRAGMENTOP2ATIPROC) wglGetProcAddress("glColorFragmentOp2ATI"); glColorFragmentOp3ATI = (PFNGLCOLORFRAGMENTOP3ATIPROC) wglGetProcAddress("glColorFragmentOp3ATI"); glAlphaFragmentOp1ATI = (PFNGLALPHAFRAGMENTOP1ATIPROC) wglGetProcAddress("glAlphaFragmentOp1ATI"); glAlphaFragmentOp2ATI = (PFNGLALPHAFRAGMENTOP2ATIPROC) wglGetProcAddress("glAlphaFragmentOp2ATI"); glAlphaFragmentOp3ATI = (PFNGLALPHAFRAGMENTOP3ATIPROC) wglGetProcAddress("glAlphaFragmentOp3ATI"); glSetFragmentShaderConstantATI = (PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) wglGetProcAddress("glSetFragmentShaderConstantATI"); } else { cerr << "GL_ATI_fragment_shader is NOT available!" << endl; } #endif }
void getOGL12() { glTexImage3DEXT = 0; if(QueryExtension("GL_EXT_texture3D")) { cerr << "3D Texture is available!" << endl; if(!(glTexImage3DEXT = (PFNGLTEXIMAGE3DPROC)wglGetProcAddress("glTexImage3DEXT"))) { cerr << "*********************************" << endl; cerr << "wglGetProcAddress(\"glTexImage3DEXT\") failed!" << endl; cerr << "GetLastError(): " << GetLastError() << endl; cerr << "*********************************" << endl; } } else if((glTexImage3DEXT = (PFNGLTEXIMAGE3DPROC)wglGetProcAddress("glTexImage3D"))) cerr << "OGL1.2 3D texture is available" << endl; else cerr << "3D texture is NOT available" << endl; //------------------------------------------------------------------- // blending #ifdef GL_EXT_blend_minmax glBlendEquationEXT = 0; if(!(glBlendEquationEXT = (PFNGLBLENDEQUATIONEXTPROC)wglGetProcAddress("glBlendEquationEXT"))) { cerr << "*********************************" << endl; cerr << "wglGetProcAddress(\"glBlendEquationEXT\") failed!" << endl; cerr << "GetLastError(): " << GetLastError() << endl; cerr << "*********************************" << endl; } #endif //------------------------------------------------------------------- //-------------------- palated textures ----------------------------- #ifdef GL_EXT_color_table glColorTableEXT = 0; if(QueryExtension("GL_EXT_color_table")) { cerr << "Color Table is available" << endl; glColorTableEXT = (PFNGLCOLORTABLEEXTPROC)wglGetProcAddress("glColorTableEXT"); if(!glColorTableEXT) { cerr << "*********************************" << endl; cerr << "wglGetProcAddress(\"glColorTableEXT\") failed!" << endl; cerr << "GetLastError(): " << GetLastError() << endl; cerr << "*********************************" << endl; } } else cerr << "Color Table is not available" << endl; #endif //HEY MOFO, THIS DOESN"T GO HERE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" //HEY MOFO, THIS DOESN"T GO HERE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" #ifdef GL_EXT_pixel_texture glPixelTexGenEXT = 0; if(QueryExtension("GL_EXT_pixel_texture")) { cerr << "Pixel texture is available" << endl; } else cerr << "Pixel Texture is NOT available" << endl; #endif //------------------------------------------------------------------- //-------------------- Multi-texture -------------------------------- #ifdef GL_ARB_multitexture glActiveTexture = 0; glClientActiveTexture = 0; glMultiTexCoord1fARB = 0; glMultiTexCoord1fvARB = 0; glMultiTexCoord2fARB = 0; glMultiTexCoord2fvARB = 0; glMultiTexCoord3fARB = 0; glMultiTexCoord3fvARB = 0; if(QueryExtension("GL_ARB_multitexture")) { cerr << "ARB multitexture is available!" << endl; glActiveTexture = (PFNGLACTIVETEXTUREARBPROC)wglGetProcAddress("glActiveTextureARB"); glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREARBPROC)wglGetProcAddress("glClientActiveTextureARB"); glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC)wglGetProcAddress("glMultiTexCoord1fARB"); glMultiTexCoord1fvARB = (PFNGLMULTITEXCOORD1FVARBPROC)wglGetProcAddress("glMultiTexCoord1fvARB"); glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC)wglGetProcAddress("glMultiTexCoord2fARB"); glMultiTexCoord2fvARB = (PFNGLMULTITEXCOORD2FVARBPROC)wglGetProcAddress("glMultiTexCoord2fvARB"); glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC)wglGetProcAddress("glMultiTexCoord3fARB"); glMultiTexCoord3fvARB = (PFNGLMULTITEXCOORD3FVARBPROC)wglGetProcAddress("glMultiTexCoord3fvARB"); if ((!glActiveTexture)||(!glClientActiveTexture)||(!glMultiTexCoord1fARB)|| (!glMultiTexCoord1fvARB)||(!glMultiTexCoord2fARB)|| (!glMultiTexCoord2fvARB)||(!glMultiTexCoord3fARB)|| (!glMultiTexCoord3fvARB)) { cerr << "*********************************" << endl; cerr << "wglGetProcAddress(\"glARBmultitexture\") failed!" << endl; cerr << "GetLastError(): " << GetLastError() << endl; cerr << "NOTE: You may need to get a new driver from ATI/NVIDIA" << endl; cerr << (int) glActiveTexture << " " << (int)glClientActiveTexture << endl; cerr << (int) glMultiTexCoord1fARB << " " << (int) glMultiTexCoord1fvARB << endl << (int) glMultiTexCoord2fARB << " " << (int) glMultiTexCoord2fvARB << endl << (int) glMultiTexCoord3fARB << " " << (int) glMultiTexCoord3fvARB << endl; cerr << "*********************************" << endl; } } else cerr << "ARB multitexture texture is NOT available" << endl; #endif //------------------------------------------------------------------- //------------------- GL_ARB_texture_env_combine -------------------- if(QueryExtension("GL_ARB_texture_env_combine")) { cerr << "GL_ARB_texture_env_combine is available!" << endl; } else cerr << "GL_ARB_texture_env_combine is NOT available" << endl; //------------------------------------------------------------------- //----------------- Secondary color --------------------------------- #ifdef GL_EXT_secondary_color glSecondaryColor3fEXT = 0; if(QueryExtension("GL_EXT_secondary_color")) { cerr << "Secondary Color is available!" << endl; glSecondaryColor3fEXT = (PFNGLSECONDARYCOLOR3FEXTPROC)wglGetProcAddress("glSecondaryColor3fEXT"); if(!glSecondaryColor3fEXT) { cerr << "Error aquiring Secondary Color function pointer" << endl; } } else { cerr << "Secondary Color is not available" << endl; } #endif }