示例#1
0
_X_HIDDEN __GLXdisplayPrivate *
__glXInitialize(Display * dpy)
{
   XExtDisplayInfo *info = __glXFindDisplay(dpy);
   XExtData **privList, *private, *found;
   __GLXdisplayPrivate *dpyPriv;
   XEDataObject dataObj;
   int major, minor;

   if (!XextHasExtension(info))
      return NULL;

   /* See if a display private already exists.  If so, return it */
   dataObj.display = dpy;
   privList = XEHeadOfExtensionList(dataObj);
   found = XFindOnExtensionList(privList, info->codes->extension);
   if (found)
      return (__GLXdisplayPrivate *) found->private_data;

   /* See if the versions are compatible */
   if (!QueryVersion(dpy, info->codes->major_opcode, &major, &minor))
      return NULL;

   /*
    ** Allocate memory for all the pieces needed for this buffer.
    */
   private = (XExtData *) Xmalloc(sizeof(XExtData));
示例#2
0
文件: yx_Oil.cpp 项目: awzhang/MyWork
// 查询油量检测盒版本请求
int COil::Deal3713(byte *v_szData, int v_dwDataLen)
{
	char buf[100] = {0};
	int  len = 0;
	
	if( !QueryVersion((char*)buf, sizeof(buf), len) )
	{
		// 向中心应答
		char szbuf[1024] = {0};
		int  ilen = 0;
		g_objSms.MakeSmsFrame(buf, len, 0x37, 0x53, szbuf,sizeof(szbuf),ilen,CVT_8TO7);
		g_objSock.SOCKSNDSMSDATA(szbuf,ilen,LV12,DATASYMB_SMSBACKUP);

		return 0;
	}

	return 1;
}
示例#3
0
/*
** Initialize the client side extension code.
*/
_X_HIDDEN __GLXdisplayPrivate *
__glXInitialize(Display * dpy)
{
   XExtDisplayInfo *info = __glXFindDisplay(dpy);
   XExtData **privList, *private, *found;
   __GLXdisplayPrivate *dpyPriv;
   XEDataObject dataObj;
   int major, minor;
#ifdef GLX_DIRECT_RENDERING
   Bool glx_direct, glx_accel;
#endif

   /* The one and only long long lock */
   __glXLock();

   if (!XextHasExtension(info)) {
      /* No GLX extension supported by this server. Oh well. */
      __glXUnlock();
      XMissingExtension(dpy, __glXExtensionName);
      return 0;
   }

   /* See if a display private already exists.  If so, return it */
   dataObj.display = dpy;
   privList = XEHeadOfExtensionList(dataObj);
   found = XFindOnExtensionList(privList, info->codes->extension);
   if (found) {
      __glXUnlock();
      return (__GLXdisplayPrivate *) found->private_data;
   }

   /* See if the versions are compatible */
   if (!QueryVersion(dpy, info->codes->major_opcode, &major, &minor)) {
      /* The client and server do not agree on versions.  Punt. */
      __glXUnlock();
      return 0;
   }

   /*
    ** Allocate memory for all the pieces needed for this buffer.
    */
   private = (XExtData *) Xmalloc(sizeof(XExtData));
示例#4
0
文件: glxext.c 项目: DirectFB/mesa
/*
** Initialize the client side extension code.
*/
 _X_HIDDEN struct glx_display *
__glXInitialize(Display * dpy)
{
   struct glx_display *dpyPriv, *d;
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
   Bool glx_direct, glx_accel;
#endif
   int i;

   _XLockMutex(_Xglobal_lock);

   for (dpyPriv = glx_displays; dpyPriv; dpyPriv = dpyPriv->next) {
      if (dpyPriv->dpy == dpy) {
	 _XUnlockMutex(_Xglobal_lock);
	 return dpyPriv;
      }
   }

   /* Drop the lock while we create the display private. */
   _XUnlockMutex(_Xglobal_lock);

   dpyPriv = calloc(1, sizeof *dpyPriv);
   if (!dpyPriv)
      return NULL;

   dpyPriv->codes = XInitExtension(dpy, __glXExtensionName);
   if (!dpyPriv->codes) {
      free(dpyPriv);
      _XUnlockMutex(_Xglobal_lock);
      return NULL;
   }

   dpyPriv->dpy = dpy;
   dpyPriv->majorOpcode = dpyPriv->codes->major_opcode;
   dpyPriv->serverGLXvendor = 0x0;
   dpyPriv->serverGLXversion = 0x0;

   /* See if the versions are compatible.  This GLX implementation does not
    * work with servers that only support GLX 1.0.
    */
   if (!QueryVersion(dpy, dpyPriv->majorOpcode,
		     &dpyPriv->majorVersion, &dpyPriv->minorVersion)
       || (dpyPriv->majorVersion == 1 && dpyPriv->minorVersion < 1)) {
      free(dpyPriv);
      _XUnlockMutex(_Xglobal_lock);
      return NULL;
   }

   for (i = 0; i < __GLX_NUMBER_EVENTS; i++) {
      XESetWireToEvent(dpy, dpyPriv->codes->first_event + i, __glXWireToEvent);
      XESetEventToWire(dpy, dpyPriv->codes->first_event + i, __glXEventToWire);
   }

   XESetCloseDisplay(dpy, dpyPriv->codes->extension, __glXCloseDisplay);
   XESetErrorString (dpy, dpyPriv->codes->extension,__glXErrorString);

   dpyPriv->glXDrawHash = __glxHashCreate();

#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
   glx_direct = (getenv("LIBGL_ALWAYS_INDIRECT") == NULL);
   glx_accel = (getenv("LIBGL_ALWAYS_SOFTWARE") == NULL);

   dpyPriv->drawHash = __glxHashCreate();

   /*
    ** Initialize the direct rendering per display data and functions.
    ** Note: This _must_ be done before calling any other DRI routines
    ** (e.g., those called in AllocAndFetchScreenConfigs).
    */
   if (glx_direct && glx_accel) {
#if defined(HAVE_DRI3)
      if (!getenv("LIBGL_DRI3_DISABLE"))
         dpyPriv->dri3Display = dri3_create_display(dpy);
#endif
      dpyPriv->dri2Display = dri2CreateDisplay(dpy);
      dpyPriv->driDisplay = driCreateDisplay(dpy);
   }
   if (glx_direct)
      dpyPriv->driswDisplay = driswCreateDisplay(dpy);
#endif

#ifdef GLX_USE_APPLEGL
   if (!applegl_create_display(dpyPriv)) {
      free(dpyPriv);
      return NULL;
   }
#endif
   if (!AllocAndFetchScreenConfigs(dpy, dpyPriv)) {
      free(dpyPriv);
      return NULL;
   }

   __glX_send_client_info(dpyPriv);

   /* Grab the lock again and add the dispay private, unless somebody
    * beat us to initializing on this display in the meantime. */
   _XLockMutex(_Xglobal_lock);

   for (d = glx_displays; d; d = d->next) {
      if (d->dpy == dpy) {
	 _XUnlockMutex(_Xglobal_lock);
	 glx_display_free(dpyPriv);
	 return d;
      }
   }

   dpyPriv->next = glx_displays;
   glx_displays = dpyPriv;

    _XUnlockMutex(_Xglobal_lock);

   return dpyPriv;
}
    //
    // 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
    }