mirror of
https://git.code.sf.net/p/quake/newtree
synced 2025-02-01 12:20:54 +00:00
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:
parent
beb6472cd5
commit
81fd7c2277
3 changed files with 39 additions and 10 deletions
29
configure.in
29
configure.in
|
@ -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 ==================================================================
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue