src/video/x11/SDL_x11dga.c
branchSDL-1.3
changeset 1662 782fd950bd46
parent 1402 d910939febfa
child 1668 4da1ee79c9af
equal deleted inserted replaced
1661:281d3f4870e5 1662:782fd950bd46
    31 #include "SDL_x11dga_c.h"
    31 #include "SDL_x11dga_c.h"
    32 
    32 
    33 /* Global for the error handler */
    33 /* Global for the error handler */
    34 int dga_event, dga_error = -1;
    34 int dga_event, dga_error = -1;
    35 
    35 
    36 void X11_EnableDGAMouse(_THIS)
    36 void
       
    37 X11_EnableDGAMouse (_THIS)
    37 {
    38 {
    38 #if SDL_VIDEO_DRIVER_X11_DGAMOUSE
    39 #if SDL_VIDEO_DRIVER_X11_DGAMOUSE
    39     int dga_major, dga_minor;
    40     int dga_major, dga_minor;
    40     int use_dgamouse;
    41     int use_dgamouse;
    41     const char *env_use_dgamouse;
    42     const char *env_use_dgamouse;
    42 
    43 
    43     /* Check configuration to see if we should use DGA mouse */
    44     /* Check configuration to see if we should use DGA mouse */
    44     use_dgamouse = 1;
    45     use_dgamouse = 1;
    45     env_use_dgamouse = SDL_getenv("SDL_VIDEO_X11_DGAMOUSE");
    46     env_use_dgamouse = SDL_getenv ("SDL_VIDEO_X11_DGAMOUSE");
    46     if ( env_use_dgamouse ) {
    47     if (env_use_dgamouse) {
    47         use_dgamouse = atoi(env_use_dgamouse);
    48         use_dgamouse = atoi (env_use_dgamouse);
    48     }
    49     }
    49     /* Check for buggy X servers */
    50     /* Check for buggy X servers */
    50     if ( use_dgamouse && BUGGY_XFREE86(==, 4000) ) {
    51     if (use_dgamouse && BUGGY_XFREE86 ( ==, 4000)) {
    51         use_dgamouse = 0;
    52         use_dgamouse = 0;
    52     }
    53     }
    53     /* Only use DGA mouse if the cursor is not showing (in relative mode) */
    54     /* Only use DGA mouse if the cursor is not showing (in relative mode) */
    54     if ( use_dgamouse && local_X11 && !(using_dga & DGA_MOUSE) &&
    55     if (use_dgamouse && local_X11 && !(using_dga & DGA_MOUSE) &&
    55          SDL_NAME(XF86DGAQueryExtension)(SDL_Display, &dga_event, &dga_error) &&
    56         SDL_NAME (XF86DGAQueryExtension) (SDL_Display, &dga_event, &dga_error)
    56          SDL_NAME(XF86DGAQueryVersion)(SDL_Display, &dga_major, &dga_minor) ) {
    57         && SDL_NAME (XF86DGAQueryVersion) (SDL_Display, &dga_major,
    57 	if ( SDL_NAME(XF86DGADirectVideo)(SDL_Display, SDL_Screen, XF86DGADirectMouse) ) {
    58                                            &dga_minor)) {
       
    59         if (SDL_NAME (XF86DGADirectVideo)
       
    60             (SDL_Display, SDL_Screen, XF86DGADirectMouse)) {
    58             using_dga |= DGA_MOUSE;
    61             using_dga |= DGA_MOUSE;
    59         }
    62         }
    60     }
    63     }
    61 #endif /* SDL_VIDEO_DRIVER_X11_DGAMOUSE */
    64 #endif /* SDL_VIDEO_DRIVER_X11_DGAMOUSE */
    62 }
    65 }
    63 
    66 
    64 /* Argh.  Glide resets DGA mouse mode when it makes the context current! */
    67 /* Argh.  Glide resets DGA mouse mode when it makes the context current! */
    65 void X11_CheckDGAMouse(_THIS)
    68 void
       
    69 X11_CheckDGAMouse (_THIS)
    66 {
    70 {
    67 #if SDL_VIDEO_DRIVER_X11_DGAMOUSE
    71 #if SDL_VIDEO_DRIVER_X11_DGAMOUSE
    68     int flags;
    72     int flags;
    69 
    73 
    70     if ( using_dga & DGA_MOUSE ) {
    74     if (using_dga & DGA_MOUSE) {
    71         SDL_NAME(XF86DGAQueryDirectVideo)(SDL_Display, SDL_Screen, &flags);
    75         SDL_NAME (XF86DGAQueryDirectVideo) (SDL_Display, SDL_Screen, &flags);
    72         if ( ! (flags & XF86DGADirectMouse) ) {
    76         if (!(flags & XF86DGADirectMouse)) {
    73                 SDL_NAME(XF86DGADirectVideo)(SDL_Display,SDL_Screen,XF86DGADirectMouse);
    77             SDL_NAME (XF86DGADirectVideo) (SDL_Display, SDL_Screen,
       
    78                                            XF86DGADirectMouse);
    74         }
    79         }
    75     }
    80     }
    76 #endif
    81 #endif
    77 }
    82 }
    78 
    83 
    79 void X11_DisableDGAMouse(_THIS)
    84 void
       
    85 X11_DisableDGAMouse (_THIS)
    80 {
    86 {
    81 #if SDL_VIDEO_DRIVER_X11_DGAMOUSE
    87 #if SDL_VIDEO_DRIVER_X11_DGAMOUSE
    82     if ( using_dga & DGA_MOUSE ) {
    88     if (using_dga & DGA_MOUSE) {
    83 	SDL_NAME(XF86DGADirectVideo)(SDL_Display, SDL_Screen, 0);
    89         SDL_NAME (XF86DGADirectVideo) (SDL_Display, SDL_Screen, 0);
    84         using_dga &= ~DGA_MOUSE;
    90         using_dga &= ~DGA_MOUSE;
    85     }
    91     }
    86 #endif /* SDL_VIDEO_DRIVER_X11_DGAMOUSE */
    92 #endif /* SDL_VIDEO_DRIVER_X11_DGAMOUSE */
    87 }
    93 }
       
    94 
       
    95 /* vi: set ts=4 sw=4 expandtab: */