Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
a49beb4c
Commit
a49beb4c
authored
Jun 26, 2008
by
Francois Gouget
Committed by
Alexandre Julliard
Jul 01, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winex11: Load the XVidMode extension (libXxf86vm) when available.
parent
ce823a8e
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
118 additions
and
54 deletions
+118
-54
configure
configure
+29
-22
configure.ac
configure.ac
+3
-7
x11drv_main.c
dlls/winex11.drv/x11drv_main.c
+2
-2
xvidmode.c
dlls/winex11.drv/xvidmode.c
+79
-18
xvidmode.h
dlls/winex11.drv/xvidmode.h
+2
-2
config.h.in
include/config.h.in
+3
-3
No files found.
configure
View file @
a49beb4c
...
@@ -1414,7 +1414,7 @@ Optional Packages:
...
@@ -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-x
vidmode
do not use XFree video mode extension
--without-x
xf86vm
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
...
@@ -2110,9 +2110,9 @@ if test "${with_xslt+set}" = set; then
fi
fi
# Check whether --with-x
vidmode
was given.
# Check whether --with-x
xf86vm
was given.
if
test
"
${
with_x
vidmode
+set
}
"
=
set
;
then
if
test
"
${
with_x
xf86vm
+set
}
"
=
set
;
then
withval
=
$with_x
vidmode
;
if
test
"x
$withval
"
=
"xno"
;
then
ac_cv_header_X11_extensions_xf86vmode_h
=
no
;
fi
withval
=
$with_x
xf86vm
;
if
test
"x
$withval
"
=
"xno"
;
then
ac_cv_header_X11_extensions_xf86vmode_h
=
no
;
fi
fi
fi
...
@@ -10252,14 +10252,14 @@ 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
...
@@ -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_x
vidmode
"
in
case
"x
$with_x
xf86vm
"
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-x
vidmode
was requested."
>
&5
This is an error since --with-x
xf86vm
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-x
vidmode
was requested."
>
&2
;
}
This is an error since --with-x
xf86vm
was requested."
>
&2
;
}
{
(
exit
1
)
;
exit
1
;
}
;
}
;;
{
(
exit
1
)
;
exit
1
;
}
;
}
;;
esac
esac
fi
fi
...
...
configure.ac
View file @
a49beb4c
...
@@ -73,7 +73,7 @@ AC_ARG_WITH(xshape, AS_HELP_STRING([--without-xshape],[do not use the Xshape
...
@@ -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(x
vidmode, AS_HELP_STRING([--without-xvidmode
],[do not use XFree video mode extension]),
AC_ARG_WITH(x
xf86vm, 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
...
@@ -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(x
vidmode,[test "$ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension" != "yes
"],
WINE_NOTICE_WITH(x
xf86vm,[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
...
...
dlls/winex11.drv/x11drv_main.c
View file @
a49beb4c
...
@@ -525,7 +525,7 @@ static BOOL process_attach(void)
...
@@ -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
HAV
E_LIBXXF86VM
#ifdef
SONAM
E_LIBXXF86VM
/* initialize XVidMode */
/* initialize XVidMode */
X11DRV_XF86VM_Init
();
X11DRV_XF86VM_Init
();
#endif
#endif
...
@@ -569,7 +569,7 @@ static void thread_detach(void)
...
@@ -569,7 +569,7 @@ static void thread_detach(void)
*/
*/
static
void
process_detach
(
void
)
static
void
process_detach
(
void
)
{
{
#ifdef
HAV
E_LIBXXF86VM
#ifdef
SONAM
E_LIBXXF86VM
/* cleanup XVidMode */
/* cleanup XVidMode */
X11DRV_XF86VM_Cleanup
();
X11DRV_XF86VM_Cleanup
();
#endif
#endif
...
...
dlls/winex11.drv/xvidmode.c
View file @
a49beb4c
...
@@ -19,15 +19,17 @@
...
@@ -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 @@
...
@@ -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
HAV
E_LIBXXF86VM
#ifdef
SONAM
E_LIBXXF86VM
extern
int
usexvidmode
;
extern
int
usexvidmode
;
...
@@ -54,6 +57,26 @@ static unsigned int dd_mode_count;
...
@@ -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)
...
@@ -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
);
p
XF86VidModeGetModeLine
(
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)
...
@@ -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
]);
p
XF86VidModeSwitchToMode
(
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);
p
XF86VidModeSetViewPort(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)
...
@@ -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
=
p
XF86VidModeQueryExtension
(
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
=
p
XF86VidModeQueryVersion
(
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)
...
@@ -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
),
p
XF86VidModeGetGammaRampSize
(
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)
...
@@ -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
=
p
XF86VidModeGetAllModeLines
(
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)
...
@@ -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)
...
@@ -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
);
p
XF86VidModeLockModeSwitch
(
gdi_display
,
DefaultScreen
(
gdi_display
),
lock
);
wine_tsx11_unlock
();
wine_tsx11_unlock
();
}
}
...
@@ -307,7 +368,7 @@ BOOL X11DRV_XF86VM_GetGammaRamp(LPDDGAMMARAMP ramp)
...
@@ -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
=
p
XF86VidModeGetGammaRamp
(
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)
...
@@ -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
=
p
XF86VidModeGetGamma
(
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)
...
@@ -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
=
p
XF86VidModeSetGammaRamp
(
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)
...
@@ -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
=
p
XF86VidModeSetGamma
(
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)
...
@@ -362,7 +423,7 @@ BOOL X11DRV_XF86VM_SetGammaRamp(LPDDGAMMARAMP ramp)
return
FALSE
;
return
FALSE
;
}
}
#endif
/*
HAV
E_LIBXXF86VM */
#endif
/*
SONAM
E_LIBXXF86VM */
/***********************************************************************
/***********************************************************************
* GetDeviceGammaRamp (X11DRV.@)
* GetDeviceGammaRamp (X11DRV.@)
...
@@ -373,7 +434,7 @@ BOOL X11DRV_XF86VM_SetGammaRamp(LPDDGAMMARAMP ramp)
...
@@ -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
HAV
E_LIBXXF86VM
#ifdef
SONAM
E_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)
...
@@ -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
HAV
E_LIBXXF86VM
#ifdef
SONAM
E_LIBXXF86VM
return
X11DRV_XF86VM_SetGammaRamp
(
ramp
);
return
X11DRV_XF86VM_SetGammaRamp
(
ramp
);
#else
#else
return
FALSE
;
return
FALSE
;
...
...
dlls/winex11.drv/xvidmode.h
View file @
a49beb4c
...
@@ -24,7 +24,7 @@
...
@@ -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
HAV
E_LIBXXF86VM
#ifdef
SONAM
E_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);
...
@@ -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
/*
HAV
E_LIBXXF86VM */
#endif
/*
SONAM
E_LIBXXF86VM */
#endif
/* __WINE_XVIDMODE_H */
#endif
/* __WINE_XVIDMODE_H */
include/config.h.in
View file @
a49beb4c
...
@@ -336,9 +336,6 @@
...
@@ -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 @@
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment