示例#1
0
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));
		}
	}
}
示例#3
0
文件: texobj.c 项目: medusade/mxde
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();
}
示例#4
0
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
    }
示例#8
0
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

}
示例#9
0
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

}