DGA seems to work... Something done recently by someone (loring or bill)

caused Voodoo3 users to get a black mouse cursor that kept getting warped
to the center of the screen..  It was rather ugly and hard to play.  So
I added DGA.  That made the mouse cursor blue and stay where it was.  So
I moved the XGrabPointer to after the XWarpPointer, problem seems to be
fixed.  I hope this works for someone other than me.  =p
This commit is contained in:
Joseph Carter 2000-05-26 12:32:45 +00:00
parent beb6472cd5
commit 81fd7c2277
3 changed files with 39 additions and 10 deletions

View file

@ -297,6 +297,22 @@ if test "x$HAVE_VIDMODE" != xno; then
CPPFLAGS="$save_CPPFLAGS"
fi
dnl Check for DGA support
AC_ARG_ENABLE(DGA,
[ --enable-DGA use XFree86 DGA extension, if available],
HAVE_DGA=$enable_DGA, HAVE_DGA=auto)
if test "x$HAVE_VIDMODE" = xyes; then
if test "x$HAVE_DGA" != xno; then
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$X_CFLAGS $CPPFLAGS"
AC_CHECK_HEADER(X11/extensions/xf86dga.h, HAVE_DGA=yes, HAVE_DGA=no)
AC_CHECK_HEADER(X11/extensions/xf86vmode.h, qwfoo=qwfoo, HAVE_DGA=no)
CPPFLAGS="$save_CPPFLAGS"
else
HAVE_DGA=no
fi
fi
dnl Checks for GLX support
AC_ARG_WITH(glx,
[ --with-glx[=DIR] use GLX with libraries found in DIR],
@ -436,6 +452,19 @@ else
fi
AC_SUBST(VIDMODE_LIBS)
dnl Make sure DGA works
if test "x$HAVE_DGA" = xyes; then
AC_CHECK_LIB(Xxf86dga, XF86DGAQueryVersion,qwfoo=qwfoo,
HAVE_DGA=no, [$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
fi
if test "x$HAVE_DGA" != xyes; then
DGA_LIBS=""
else
AC_DEFINE(HAVE_DGA)
DGA_LIBS="-lXxf86dga"
fi
AC_SUBST(DGA_LIBS)
dnl ==================================================================
dnl Checks for system type
dnl ==================================================================

View file

@ -102,8 +102,8 @@ qf_server_LDADD= -L. -lqfsys_sv $(NET_LIBS)
qf_client_mgl_LDADD= $(MGL_LIBS) $(CLIENT_LIBS)
qf_client_ggi_LDADD= $(GGI_LIBS) $(CLIENT_LIBS)
qf_client_svga_LDADD= $(SVGA_LIBS) $(CLIENT_LIBS)
qf_client_x11_LDADD= $(X_PRE_LIBS) $(VIDMODE_LIBS) $(X_LIBS) -lX11 $(X_EXTRA_LIBS) $(X_SHM_LIB) $(CLIENT_LIBS)
qf_client_glx_LDADD= $(GLX_LIBS) $(X_PRE_LIBS) $(VIDMODE_LIBS) $(X_LIBS) -lX11 $(X_EXTRA_LIBS) $(CLIENT_LIBS)
qf_client_x11_LDADD= $(X_PRE_LIBS) $(VIDMODE_LIBS) $(DGA_LIBS) $(X_LIBS) -lX11 $(X_EXTRA_LIBS) $(X_SHM_LIB) $(CLIENT_LIBS)
qf_client_glx_LDADD= $(GLX_LIBS) $(X_PRE_LIBS) $(VIDMODE_LIBS) $(DGA_LIBS) $(X_LIBS) -lX11 $(X_EXTRA_LIBS) $(CLIENT_LIBS)
qf_client_wgl_LDADD= $(CLIENT_LIBS)
qf_server_DEPENDENCIES=libqfsys_sv.a

View file

@ -43,7 +43,7 @@
#include <X11/Xlib.h>
#include <X11/keysym.h>
#ifdef HAS_DGA
#ifdef HAVE_DGA
#include <X11/extensions/XShm.h>
#include <X11/extensions/xf86dga.h>
#endif
@ -68,7 +68,7 @@
cvar_t *_windowed_mouse;
cvar_t *m_filter;
#ifdef HAS_DGA
#ifdef HAVE_DGA
cvar_t *in_dgamouse;
cvar_t *vid_dga_mouseaccel;
#endif
@ -295,7 +295,7 @@ center_pointer(void)
static void
event_motion(XEvent *event)
{
#ifdef HAS_DGA
#ifdef HAVE_DGA
if (in_dgamouse->value) {
mouse_x += event->xmotion.x_root * vid_dga_mouseaccel->value;
mouse_y += event->xmotion.y_root * vid_dga_mouseaccel->value;
@ -428,7 +428,7 @@ IN_Shutdown(void)
nullcursor = None;
}
#ifdef HAS_DGA
#ifdef HAVE_DGA
XF86DGADirectVideo(x_disp, DefaultScreen(x_disp), 0);
#endif
}
@ -461,7 +461,7 @@ IN_Init(void)
_windowed_mouse = Cvar_Get ("_windowed_mouse","0",CVAR_ARCHIVE,"None");
m_filter = Cvar_Get ("m_filter","0",CVAR_ARCHIVE,"None");
#ifdef HAS_DGA
#ifdef HAVE_DGA
vid_dga_mouseaccel = Cvar_Get ("vid_dga_mouseaccel","1",CVAR_ARCHIVE,
"None");
@ -479,12 +479,12 @@ IN_Init(void)
XGrabKeyboard (x_disp, x_win, True, GrabModeAsync,
GrabModeAsync, CurrentTime);
XGrabPointer (x_disp, x_win, True, MOUSE_MASK, GrabModeAsync,
GrabModeAsync, x_win, None, CurrentTime);
XWarpPointer (x_disp, None, x_win, 0, 0, 0, 0, scr_width,
scr_height);
XGrabPointer (x_disp, x_win, True, MOUSE_MASK, GrabModeAsync,
GrabModeAsync, x_win, None, CurrentTime);
in_dgamouse = Cvar_Get ("in_dgamouse", "1", CVAR_ROM,
"1 if you have DGA mouse support");
} else