winex11: Load the XVidMode extension (libXxf86vm) when available.
This commit is contained in:
parent
ce823a8e47
commit
a49beb4c5c
|
@ -1414,7 +1414,7 @@ Optional Packages:
|
||||||
--without-xshape do not use the Xshape extension
|
--without-xshape do not use the Xshape extension
|
||||||
--without-xshm do not use XShm (shared memory extension)
|
--without-xshm do not use XShm (shared memory extension)
|
||||||
--without-xslt do not use XSLT
|
--without-xslt do not use XSLT
|
||||||
--without-xvidmode do not use XFree video mode extension
|
--without-xxf86vm do not use XFree video mode extension
|
||||||
--with-wine-tools=DIR use Wine tools from directory DIR
|
--with-wine-tools=DIR use Wine tools from directory DIR
|
||||||
--with-x use the X Window System
|
--with-x use the X Window System
|
||||||
|
|
||||||
|
@ -2110,9 +2110,9 @@ if test "${with_xslt+set}" = set; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Check whether --with-xvidmode was given.
|
# Check whether --with-xxf86vm was given.
|
||||||
if test "${with_xvidmode+set}" = set; then
|
if test "${with_xxf86vm+set}" = set; then
|
||||||
withval=$with_xvidmode; if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_xf86vmode_h=no; fi
|
withval=$with_xxf86vm; if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_xf86vmode_h=no; fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -10252,14 +10252,14 @@ fi
|
||||||
|
|
||||||
if test "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes"
|
if test "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes"
|
||||||
then
|
then
|
||||||
{ echo "$as_me:$LINENO: checking for XF86VidModeQueryExtension in -lXxf86vm" >&5
|
{ echo "$as_me:$LINENO: checking for -lXxf86vm" >&5
|
||||||
echo $ECHO_N "checking for XF86VidModeQueryExtension in -lXxf86vm... $ECHO_C" >&6; }
|
echo $ECHO_N "checking for -lXxf86vm... $ECHO_C" >&6; }
|
||||||
if test "${ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension+set}" = set; then
|
if test "${ac_cv_lib_soname_Xxf86vm+set}" = set; then
|
||||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||||
else
|
else
|
||||||
ac_check_lib_save_LIBS=$LIBS
|
ac_check_soname_save_LIBS=$LIBS
|
||||||
LIBS="-lXxf86vm $X_LIBS -lXext -lX11 $X_EXTRA_LIBS $LIBS"
|
LIBS="-lXxf86vm $X_LIBS -lXext -lX11 $X_EXTRA_LIBS $LIBS"
|
||||||
cat >conftest.$ac_ext <<_ACEOF
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
/* confdefs.h. */
|
/* confdefs.h. */
|
||||||
_ACEOF
|
_ACEOF
|
||||||
cat confdefs.h >>conftest.$ac_ext
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
@ -10299,39 +10299,46 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
|
||||||
test ! -s conftest.err
|
test ! -s conftest.err
|
||||||
} && test -s conftest$ac_exeext &&
|
} && test -s conftest$ac_exeext &&
|
||||||
$as_test_x conftest$ac_exeext; then
|
$as_test_x conftest$ac_exeext; then
|
||||||
ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension=yes
|
case "$LIBEXT" in
|
||||||
|
dll) ;;
|
||||||
|
dylib) ac_cv_lib_soname_Xxf86vm=`otool -L conftest$ac_exeext | grep "libXxf86vm\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libXxf86vm\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
|
||||||
|
*) ac_cv_lib_soname_Xxf86vm=`$ac_cv_path_LDD conftest$ac_exeext | grep "libXxf86vm\\.$LIBEXT" | sed -e "s/^.*\(libXxf86vm\.$LIBEXT[^ ]*\).*$/\1/"';2,$d'` ;;
|
||||||
|
esac
|
||||||
else
|
else
|
||||||
echo "$as_me: failed program was:" >&5
|
echo "$as_me: failed program was:" >&5
|
||||||
sed 's/^/| /' conftest.$ac_ext >&5
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension=no
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
LIBS=$ac_check_lib_save_LIBS
|
LIBS=$ac_check_soname_save_LIBS
|
||||||
fi
|
fi
|
||||||
{ echo "$as_me:$LINENO: result: $ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension" >&5
|
if test "x$ac_cv_lib_soname_Xxf86vm" = "x"; then
|
||||||
echo "${ECHO_T}$ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension" >&6; }
|
{ echo "$as_me:$LINENO: result: not found" >&5
|
||||||
if test $ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension = yes; then
|
echo "${ECHO_T}not found" >&6; }
|
||||||
|
|
||||||
cat >>confdefs.h <<\_ACEOF
|
else
|
||||||
#define HAVE_LIBXXF86VM 1
|
{ echo "$as_me:$LINENO: result: $ac_cv_lib_soname_Xxf86vm" >&5
|
||||||
|
echo "${ECHO_T}$ac_cv_lib_soname_Xxf86vm" >&6; }
|
||||||
|
|
||||||
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
#define SONAME_LIBXXF86VM "$ac_cv_lib_soname_Xxf86vm"
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
if test "$ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension" != "yes"; then
|
if test "x$ac_cv_lib_soname_Xxf86vm" = "x"; then
|
||||||
case "x$with_xvidmode" in
|
case "x$with_xxf86vm" in
|
||||||
x) wine_notices="$wine_notices|libXxf86vm development files not found, XFree86 Vidmode won't be supported." ;;
|
x) wine_notices="$wine_notices|libXxf86vm development files not found, XFree86 Vidmode won't be supported." ;;
|
||||||
xno) ;;
|
xno) ;;
|
||||||
*) { { echo "$as_me:$LINENO: error: libXxf86vm development files not found, XFree86 Vidmode won't be supported.
|
*) { { echo "$as_me:$LINENO: error: libXxf86vm development files not found, XFree86 Vidmode won't be supported.
|
||||||
This is an error since --with-xvidmode was requested." >&5
|
This is an error since --with-xxf86vm was requested." >&5
|
||||||
echo "$as_me: error: libXxf86vm development files not found, XFree86 Vidmode won't be supported.
|
echo "$as_me: error: libXxf86vm development files not found, XFree86 Vidmode won't be supported.
|
||||||
This is an error since --with-xvidmode was requested." >&2;}
|
This is an error since --with-xxf86vm was requested." >&2;}
|
||||||
{ (exit 1); exit 1; }; } ;;
|
{ (exit 1); exit 1; }; } ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
10
configure.ac
10
configure.ac
|
@ -73,7 +73,7 @@ AC_ARG_WITH(xshape, AS_HELP_STRING([--without-xshape],[do not use the Xshape
|
||||||
AC_ARG_WITH(xshm, AS_HELP_STRING([--without-xshm],[do not use XShm (shared memory extension)]),
|
AC_ARG_WITH(xshm, AS_HELP_STRING([--without-xshm],[do not use XShm (shared memory extension)]),
|
||||||
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XShm_h=no; fi])
|
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XShm_h=no; fi])
|
||||||
AC_ARG_WITH(xslt, AS_HELP_STRING([--without-xslt],[do not use XSLT]))
|
AC_ARG_WITH(xslt, AS_HELP_STRING([--without-xslt],[do not use XSLT]))
|
||||||
AC_ARG_WITH(xvidmode, AS_HELP_STRING([--without-xvidmode],[do not use XFree video mode extension]),
|
AC_ARG_WITH(xxf86vm, AS_HELP_STRING([--without-xxf86vm],[do not use XFree video mode extension]),
|
||||||
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_xf86vmode_h=no; fi])
|
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_xf86vmode_h=no; fi])
|
||||||
|
|
||||||
AC_ARG_WITH(wine-tools,AS_HELP_STRING([--with-wine-tools=DIR],[use Wine tools from directory DIR]))
|
AC_ARG_WITH(wine-tools,AS_HELP_STRING([--with-wine-tools=DIR],[use Wine tools from directory DIR]))
|
||||||
|
@ -683,13 +683,9 @@ then
|
||||||
dnl *** Check for XFree86 VMODE extension
|
dnl *** Check for XFree86 VMODE extension
|
||||||
if test "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes"
|
if test "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes"
|
||||||
then
|
then
|
||||||
AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
|
WINE_CHECK_SONAME(Xxf86vm,XF86VidModeQueryExtension,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
|
||||||
[ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
|
|
||||||
X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
|
|
||||||
],,
|
|
||||||
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
|
|
||||||
fi
|
fi
|
||||||
WINE_NOTICE_WITH(xvidmode,[test "$ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension" != "yes"],
|
WINE_NOTICE_WITH(xxf86vm,[test "x$ac_cv_lib_soname_Xxf86vm" = "x"],
|
||||||
[libXxf86vm development files not found, XFree86 Vidmode won't be supported.])
|
[libXxf86vm development files not found, XFree86 Vidmode won't be supported.])
|
||||||
|
|
||||||
dnl *** Check for Transform functions in Xrender
|
dnl *** Check for Transform functions in Xrender
|
||||||
|
|
|
@ -525,7 +525,7 @@ static BOOL process_attach(void)
|
||||||
xinerama_init( WidthOfScreen(screen), HeightOfScreen(screen) );
|
xinerama_init( WidthOfScreen(screen), HeightOfScreen(screen) );
|
||||||
X11DRV_Settings_Init();
|
X11DRV_Settings_Init();
|
||||||
|
|
||||||
#ifdef HAVE_LIBXXF86VM
|
#ifdef SONAME_LIBXXF86VM
|
||||||
/* initialize XVidMode */
|
/* initialize XVidMode */
|
||||||
X11DRV_XF86VM_Init();
|
X11DRV_XF86VM_Init();
|
||||||
#endif
|
#endif
|
||||||
|
@ -569,7 +569,7 @@ static void thread_detach(void)
|
||||||
*/
|
*/
|
||||||
static void process_detach(void)
|
static void process_detach(void)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LIBXXF86VM
|
#ifdef SONAME_LIBXXF86VM
|
||||||
/* cleanup XVidMode */
|
/* cleanup XVidMode */
|
||||||
X11DRV_XF86VM_Cleanup();
|
X11DRV_XF86VM_Cleanup();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -19,15 +19,17 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include "wine/port.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#include "x11drv.h"
|
#include "x11drv.h"
|
||||||
|
|
||||||
#ifdef HAVE_LIBXXF86VM
|
#ifdef HAVE_X11_EXTENSIONS_XF86VMODE_H
|
||||||
#include <X11/extensions/xf86vmode.h>
|
#include <X11/extensions/xf86vmode.h>
|
||||||
#endif /* HAVE_LIBXXF86VM */
|
#endif
|
||||||
|
|
||||||
#include "xvidmode.h"
|
#include "xvidmode.h"
|
||||||
|
|
||||||
|
@ -35,10 +37,11 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "ddrawi.h"
|
#include "ddrawi.h"
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
|
#include "wine/library.h"
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(xvidmode);
|
WINE_DEFAULT_DEBUG_CHANNEL(xvidmode);
|
||||||
|
|
||||||
#ifdef HAVE_LIBXXF86VM
|
#ifdef SONAME_LIBXXF86VM
|
||||||
|
|
||||||
extern int usexvidmode;
|
extern int usexvidmode;
|
||||||
|
|
||||||
|
@ -54,6 +57,26 @@ static unsigned int dd_mode_count;
|
||||||
static XF86VidModeModeInfo** real_xf86vm_modes;
|
static XF86VidModeModeInfo** real_xf86vm_modes;
|
||||||
static unsigned int real_xf86vm_mode_count;
|
static unsigned int real_xf86vm_mode_count;
|
||||||
|
|
||||||
|
#define MAKE_FUNCPTR(f) typeof(f) * p##f;
|
||||||
|
MAKE_FUNCPTR(XF86VidModeGetAllModeLines)
|
||||||
|
MAKE_FUNCPTR(XF86VidModeGetModeLine)
|
||||||
|
MAKE_FUNCPTR(XF86VidModeLockModeSwitch)
|
||||||
|
MAKE_FUNCPTR(XF86VidModeQueryExtension)
|
||||||
|
MAKE_FUNCPTR(XF86VidModeQueryVersion)
|
||||||
|
MAKE_FUNCPTR(XF86VidModeSetViewPort)
|
||||||
|
MAKE_FUNCPTR(XF86VidModeSwitchToMode)
|
||||||
|
#ifdef X_XF86VidModeSetGamma
|
||||||
|
MAKE_FUNCPTR(XF86VidModeGetGamma)
|
||||||
|
MAKE_FUNCPTR(XF86VidModeSetGamma)
|
||||||
|
#endif
|
||||||
|
#ifdef X_XF86VidModeSetGammaRamp
|
||||||
|
MAKE_FUNCPTR(XF86VidModeGetGammaRamp)
|
||||||
|
MAKE_FUNCPTR(XF86VidModeGetGammaRampSize)
|
||||||
|
MAKE_FUNCPTR(XF86VidModeSetGammaRamp)
|
||||||
|
#endif
|
||||||
|
#undef MAKE_FUNCPTR
|
||||||
|
|
||||||
|
|
||||||
static void convert_modeinfo( const XF86VidModeModeInfo *mode)
|
static void convert_modeinfo( const XF86VidModeModeInfo *mode)
|
||||||
{
|
{
|
||||||
int rate;
|
int rate;
|
||||||
|
@ -98,7 +121,7 @@ static int X11DRV_XF86VM_GetCurrentMode(void)
|
||||||
|
|
||||||
TRACE("Querying XVidMode current mode\n");
|
TRACE("Querying XVidMode current mode\n");
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
XF86VidModeGetModeLine(gdi_display, DefaultScreen(gdi_display), &dotclock, &line);
|
pXF86VidModeGetModeLine(gdi_display, DefaultScreen(gdi_display), &dotclock, &line);
|
||||||
wine_tsx11_unlock();
|
wine_tsx11_unlock();
|
||||||
convert_modeline(dotclock, &line, &cmode, dwBpp);
|
convert_modeline(dotclock, &line, &cmode, dwBpp);
|
||||||
for (i=0; i<dd_mode_count; i++)
|
for (i=0; i<dd_mode_count; i++)
|
||||||
|
@ -123,9 +146,9 @@ static LONG X11DRV_XF86VM_SetCurrentMode(int mode)
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
TRACE("Resizing X display to %dx%d\n",
|
TRACE("Resizing X display to %dx%d\n",
|
||||||
real_xf86vm_modes[mode]->hdisplay, real_xf86vm_modes[mode]->vdisplay);
|
real_xf86vm_modes[mode]->hdisplay, real_xf86vm_modes[mode]->vdisplay);
|
||||||
XF86VidModeSwitchToMode(gdi_display, DefaultScreen(gdi_display), real_xf86vm_modes[mode]);
|
pXF86VidModeSwitchToMode(gdi_display, DefaultScreen(gdi_display), real_xf86vm_modes[mode]);
|
||||||
#if 0 /* it is said that SetViewPort causes problems with some X servers */
|
#if 0 /* it is said that SetViewPort causes problems with some X servers */
|
||||||
XF86VidModeSetViewPort(gdi_display, DefaultScreen(gdi_display), 0, 0);
|
pXF86VidModeSetViewPort(gdi_display, DefaultScreen(gdi_display), 0, 0);
|
||||||
#else
|
#else
|
||||||
XWarpPointer(gdi_display, None, DefaultRootWindow(gdi_display), 0, 0, 0, 0, 0, 0);
|
XWarpPointer(gdi_display, None, DefaultRootWindow(gdi_display), 0, 0, 0, 0, 0, 0);
|
||||||
#endif
|
#endif
|
||||||
|
@ -135,21 +158,52 @@ static LONG X11DRV_XF86VM_SetCurrentMode(int mode)
|
||||||
return DISP_CHANGE_SUCCESSFUL;
|
return DISP_CHANGE_SUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void X11DRV_XF86VM_Init(void)
|
void X11DRV_XF86VM_Init(void)
|
||||||
{
|
{
|
||||||
|
void *xvidmode_handle;
|
||||||
Bool ok;
|
Bool ok;
|
||||||
int nmodes;
|
int nmodes;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
if (xf86vm_major) return; /* already initialized? */
|
if (xf86vm_major) return; /* already initialized? */
|
||||||
|
|
||||||
|
xvidmode_handle = wine_dlopen(SONAME_LIBXXF86VM, RTLD_NOW, NULL, 0);
|
||||||
|
if (!xvidmode_handle)
|
||||||
|
{
|
||||||
|
TRACE("Unable to open %s, XVidMode disabled\n", SONAME_LIBXXF86VM);
|
||||||
|
usexvidmode = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LOAD_FUNCPTR(f) \
|
||||||
|
if((p##f = wine_dlsym(xvidmode_handle, #f, NULL, 0)) == NULL) \
|
||||||
|
goto sym_not_found;
|
||||||
|
LOAD_FUNCPTR(XF86VidModeGetAllModeLines)
|
||||||
|
LOAD_FUNCPTR(XF86VidModeGetModeLine)
|
||||||
|
LOAD_FUNCPTR(XF86VidModeLockModeSwitch)
|
||||||
|
LOAD_FUNCPTR(XF86VidModeQueryExtension)
|
||||||
|
LOAD_FUNCPTR(XF86VidModeQueryVersion)
|
||||||
|
LOAD_FUNCPTR(XF86VidModeSetViewPort)
|
||||||
|
LOAD_FUNCPTR(XF86VidModeSwitchToMode)
|
||||||
|
#ifdef X_XF86VidModeSetGamma
|
||||||
|
LOAD_FUNCPTR(XF86VidModeGetGamma)
|
||||||
|
LOAD_FUNCPTR(XF86VidModeSetGamma)
|
||||||
|
#endif
|
||||||
|
#ifdef X_XF86VidModeSetGammaRamp
|
||||||
|
LOAD_FUNCPTR(XF86VidModeGetGammaRamp)
|
||||||
|
LOAD_FUNCPTR(XF86VidModeGetGammaRampSize)
|
||||||
|
LOAD_FUNCPTR(XF86VidModeSetGammaRamp)
|
||||||
|
#endif
|
||||||
|
#undef LOAD_FUNCPTR
|
||||||
|
|
||||||
/* see if XVidMode is available */
|
/* see if XVidMode is available */
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
ok = XF86VidModeQueryExtension(gdi_display, &xf86vm_event, &xf86vm_error);
|
ok = pXF86VidModeQueryExtension(gdi_display, &xf86vm_event, &xf86vm_error);
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
X11DRV_expect_error(gdi_display, XVidModeErrorHandler, NULL);
|
X11DRV_expect_error(gdi_display, XVidModeErrorHandler, NULL);
|
||||||
ok = XF86VidModeQueryVersion(gdi_display, &xf86vm_major, &xf86vm_minor);
|
ok = pXF86VidModeQueryVersion(gdi_display, &xf86vm_major, &xf86vm_minor);
|
||||||
if (X11DRV_check_error()) ok = FALSE;
|
if (X11DRV_check_error()) ok = FALSE;
|
||||||
}
|
}
|
||||||
if (ok)
|
if (ok)
|
||||||
|
@ -157,7 +211,7 @@ void X11DRV_XF86VM_Init(void)
|
||||||
#ifdef X_XF86VidModeSetGammaRamp
|
#ifdef X_XF86VidModeSetGammaRamp
|
||||||
if (xf86vm_major > 2 || (xf86vm_major == 2 && xf86vm_minor >= 1))
|
if (xf86vm_major > 2 || (xf86vm_major == 2 && xf86vm_minor >= 1))
|
||||||
{
|
{
|
||||||
XF86VidModeGetGammaRampSize(gdi_display, DefaultScreen(gdi_display),
|
pXF86VidModeGetGammaRampSize(gdi_display, DefaultScreen(gdi_display),
|
||||||
&xf86vm_gammaramp_size);
|
&xf86vm_gammaramp_size);
|
||||||
if (xf86vm_gammaramp_size == 256)
|
if (xf86vm_gammaramp_size == 256)
|
||||||
xf86vm_use_gammaramp = TRUE;
|
xf86vm_use_gammaramp = TRUE;
|
||||||
|
@ -166,7 +220,7 @@ void X11DRV_XF86VM_Init(void)
|
||||||
|
|
||||||
/* retrieve modes */
|
/* retrieve modes */
|
||||||
if (usexvidmode && root_window == DefaultRootWindow( gdi_display ))
|
if (usexvidmode && root_window == DefaultRootWindow( gdi_display ))
|
||||||
ok = XF86VidModeGetAllModeLines(gdi_display, DefaultScreen(gdi_display), &nmodes, &real_xf86vm_modes);
|
ok = pXF86VidModeGetAllModeLines(gdi_display, DefaultScreen(gdi_display), &nmodes, &real_xf86vm_modes);
|
||||||
else
|
else
|
||||||
ok = FALSE; /* In desktop mode, do not switch resolution... But still use the Gamma ramp stuff */
|
ok = FALSE; /* In desktop mode, do not switch resolution... But still use the Gamma ramp stuff */
|
||||||
}
|
}
|
||||||
|
@ -193,6 +247,13 @@ void X11DRV_XF86VM_Init(void)
|
||||||
|
|
||||||
TRACE("Available DD modes: count=%d\n", dd_mode_count);
|
TRACE("Available DD modes: count=%d\n", dd_mode_count);
|
||||||
TRACE("Enabling XVidMode\n");
|
TRACE("Enabling XVidMode\n");
|
||||||
|
return;
|
||||||
|
|
||||||
|
sym_not_found:
|
||||||
|
TRACE("Unable to load function pointers from %s, XVidMode disabled\n", SONAME_LIBXXF86VM);
|
||||||
|
wine_dlclose(xvidmode_handle, NULL, 0);
|
||||||
|
xvidmode_handle = NULL;
|
||||||
|
usexvidmode = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void X11DRV_XF86VM_Cleanup(void)
|
void X11DRV_XF86VM_Cleanup(void)
|
||||||
|
@ -207,7 +268,7 @@ void X11DRV_XF86VM_SetExclusiveMode(int lock)
|
||||||
if (!dd_modes) return; /* no XVidMode */
|
if (!dd_modes) return; /* no XVidMode */
|
||||||
|
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
XF86VidModeLockModeSwitch(gdi_display, DefaultScreen(gdi_display), lock);
|
pXF86VidModeLockModeSwitch(gdi_display, DefaultScreen(gdi_display), lock);
|
||||||
wine_tsx11_unlock();
|
wine_tsx11_unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -307,7 +368,7 @@ BOOL X11DRV_XF86VM_GetGammaRamp(LPDDGAMMARAMP ramp)
|
||||||
{
|
{
|
||||||
Bool ret;
|
Bool ret;
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
ret = XF86VidModeGetGammaRamp(gdi_display, DefaultScreen(gdi_display), 256,
|
ret = pXF86VidModeGetGammaRamp(gdi_display, DefaultScreen(gdi_display), 256,
|
||||||
ramp->red, ramp->green, ramp->blue);
|
ramp->red, ramp->green, ramp->blue);
|
||||||
wine_tsx11_unlock();
|
wine_tsx11_unlock();
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -316,7 +377,7 @@ BOOL X11DRV_XF86VM_GetGammaRamp(LPDDGAMMARAMP ramp)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
ret = XF86VidModeGetGamma(gdi_display, DefaultScreen(gdi_display), &gamma);
|
ret = pXF86VidModeGetGamma(gdi_display, DefaultScreen(gdi_display), &gamma);
|
||||||
wine_tsx11_unlock();
|
wine_tsx11_unlock();
|
||||||
if (ret) {
|
if (ret) {
|
||||||
GenerateRampFromGamma(ramp->red, gamma.red);
|
GenerateRampFromGamma(ramp->red, gamma.red);
|
||||||
|
@ -340,7 +401,7 @@ BOOL X11DRV_XF86VM_SetGammaRamp(LPDDGAMMARAMP ramp)
|
||||||
{
|
{
|
||||||
Bool ret;
|
Bool ret;
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
ret = XF86VidModeSetGammaRamp(gdi_display, DefaultScreen(gdi_display), 256,
|
ret = pXF86VidModeSetGammaRamp(gdi_display, DefaultScreen(gdi_display), 256,
|
||||||
ramp->red, ramp->green, ramp->blue);
|
ramp->red, ramp->green, ramp->blue);
|
||||||
wine_tsx11_unlock();
|
wine_tsx11_unlock();
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -353,7 +414,7 @@ BOOL X11DRV_XF86VM_SetGammaRamp(LPDDGAMMARAMP ramp)
|
||||||
ComputeGammaFromRamp(ramp->blue, &gamma.blue)) {
|
ComputeGammaFromRamp(ramp->blue, &gamma.blue)) {
|
||||||
Bool ret;
|
Bool ret;
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
ret = XF86VidModeSetGamma(gdi_display, DefaultScreen(gdi_display), &gamma);
|
ret = pXF86VidModeSetGamma(gdi_display, DefaultScreen(gdi_display), &gamma);
|
||||||
wine_tsx11_unlock();
|
wine_tsx11_unlock();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -362,7 +423,7 @@ BOOL X11DRV_XF86VM_SetGammaRamp(LPDDGAMMARAMP ramp)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* HAVE_LIBXXF86VM */
|
#endif /* SONAME_LIBXXF86VM */
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* GetDeviceGammaRamp (X11DRV.@)
|
* GetDeviceGammaRamp (X11DRV.@)
|
||||||
|
@ -373,7 +434,7 @@ BOOL X11DRV_XF86VM_SetGammaRamp(LPDDGAMMARAMP ramp)
|
||||||
*/
|
*/
|
||||||
BOOL X11DRV_GetDeviceGammaRamp(X11DRV_PDEVICE *physDev, LPVOID ramp)
|
BOOL X11DRV_GetDeviceGammaRamp(X11DRV_PDEVICE *physDev, LPVOID ramp)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LIBXXF86VM
|
#ifdef SONAME_LIBXXF86VM
|
||||||
return X11DRV_XF86VM_GetGammaRamp(ramp);
|
return X11DRV_XF86VM_GetGammaRamp(ramp);
|
||||||
#else
|
#else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -389,7 +450,7 @@ BOOL X11DRV_GetDeviceGammaRamp(X11DRV_PDEVICE *physDev, LPVOID ramp)
|
||||||
*/
|
*/
|
||||||
BOOL X11DRV_SetDeviceGammaRamp(X11DRV_PDEVICE *physDev, LPVOID ramp)
|
BOOL X11DRV_SetDeviceGammaRamp(X11DRV_PDEVICE *physDev, LPVOID ramp)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LIBXXF86VM
|
#ifdef SONAME_LIBXXF86VM
|
||||||
return X11DRV_XF86VM_SetGammaRamp(ramp);
|
return X11DRV_XF86VM_SetGammaRamp(ramp);
|
||||||
#else
|
#else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
# error You must include config.h to use this header
|
# error You must include config.h to use this header
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_LIBXXF86VM
|
#ifdef SONAME_LIBXXF86VM
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
@ -38,5 +38,5 @@ void X11DRV_XF86VM_SetExclusiveMode(int lock);
|
||||||
BOOL X11DRV_XF86VM_GetGammaRamp(LPDDGAMMARAMP ramp);
|
BOOL X11DRV_XF86VM_GetGammaRamp(LPDDGAMMARAMP ramp);
|
||||||
BOOL X11DRV_XF86VM_SetGammaRamp(LPDDGAMMARAMP ramp);
|
BOOL X11DRV_XF86VM_SetGammaRamp(LPDDGAMMARAMP ramp);
|
||||||
|
|
||||||
#endif /* HAVE_LIBXXF86VM */
|
#endif /* SONAME_LIBXXF86VM */
|
||||||
#endif /* __WINE_XVIDMODE_H */
|
#endif /* __WINE_XVIDMODE_H */
|
||||||
|
|
|
@ -336,9 +336,6 @@
|
||||||
/* Define to 1 if you have the <libxslt/transform.h> header file. */
|
/* Define to 1 if you have the <libxslt/transform.h> header file. */
|
||||||
#undef HAVE_LIBXSLT_TRANSFORM_H
|
#undef HAVE_LIBXSLT_TRANSFORM_H
|
||||||
|
|
||||||
/* Define if you have the Xxf86vm library */
|
|
||||||
#undef HAVE_LIBXXF86VM
|
|
||||||
|
|
||||||
/* Define if you have the X Shm extension */
|
/* Define if you have the X Shm extension */
|
||||||
#undef HAVE_LIBXXSHM
|
#undef HAVE_LIBXXSHM
|
||||||
|
|
||||||
|
@ -1107,6 +1104,9 @@
|
||||||
/* Define to the soname of the libXrender library. */
|
/* Define to the soname of the libXrender library. */
|
||||||
#undef SONAME_LIBXRENDER
|
#undef SONAME_LIBXRENDER
|
||||||
|
|
||||||
|
/* Define to the soname of the libXxf86vm library. */
|
||||||
|
#undef SONAME_LIBXXF86VM
|
||||||
|
|
||||||
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
|
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
|
||||||
#undef STAT_MACROS_BROKEN
|
#undef STAT_MACROS_BROKEN
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue