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
399931a2
Commit
399931a2
authored
Dec 08, 1998
by
Stephen Crowley
Committed by
Alexandre Julliard
Dec 08, 1998
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added fullscreen DGA support.
parent
0e40582d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
337 additions
and
4 deletions
+337
-4
configure
configure
+0
-0
configure.in
configure.in
+3
-1
ddraw.c
graphics/ddraw.c
+38
-2
acconfig.h
include/acconfig.h
+3
-0
config.h.in
include/config.h.in
+3
-0
ts_xf86vmode.h
include/ts_xf86vmode.h
+30
-0
make_X11wrappers
tools/make_X11wrappers
+78
-1
Makefile.in
tsx11/Makefile.in
+1
-0
X11_calls
tsx11/X11_calls
+14
-0
ts_xf86vmode.c
tsx11/ts_xf86vmode.c
+167
-0
No files found.
configure
View file @
399931a2
This diff is collapsed.
Click to expand it.
configure.in
View file @
399931a2
...
...
@@ -44,7 +44,7 @@ AC_ARG_ENABLE(trace,
[if test "$enableval" = "no"; then TRACE_MSGS="no"; fi])
AC_ARG_WITH(ncurses,
[ --with-ncurses compile in the ncurses terminal],
[ --with-ncurses compile in the ncurses terminal
(EXPERIMENTAL)
],
[if test "$withval" = "yes"; then LIBS="$LIBS -lncurses"; AC_DEFINE(WINE_NCURSES) fi])
AC_ARG_WITH(reentrant-x,
...
...
@@ -106,6 +106,8 @@ then
AC_CHECK_LIB(Xext,XShmQueryExtension,AC_DEFINE(HAVE_LIBXXSHM),,$X_LIBS -lXext -lX11)
dnl Check for XFree86 DGA extension
AC_CHECK_LIB(Xxf86dga,XF86DGAQueryExtension,AC_DEFINE(HAVE_LIBXXF86DGA) X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga",,$X_LIBS -lXext -lX11)
dnl Check for XFree86 VMODE extension
AC_CHECK_LIB(Xxf86vm,XF86VidModeQueryExtension,AC_DEFINE(HAVE_LIBXXF86VM) X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm",,$X_LIBS -lXext -lX11)
else
XLIB=""
X_CFLAGS=""
...
...
graphics/ddraw.c
View file @
399931a2
...
...
@@ -20,6 +20,15 @@
#include <sys/signal.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#ifdef HAVE_LIBXXF86VM
/* X is retarted and insists on declaring INT32, INT16 etc in Xmd.h, this is a crude hack to get around it */
/* Anywhere ts_xf86vmode.h is included you must define LONG64 also, see include/wintypes.h */
#define LONG64
#include "ts_xf86vmode.h"
#undef LONG64
#endif
#include "windows.h"
#include "winerror.h"
...
...
@@ -1958,7 +1967,7 @@ static HRESULT WINAPI DGA_IDirectDraw_SetDisplayMode(
LPDIRECTDRAW
this
,
DWORD
width
,
DWORD
height
,
DWORD
depth
)
{
#ifdef HAVE_LIBXXF86DGA
int
i
,
*
depths
,
dep
count
;
int
i
,
*
depths
,
depcount
,
mode_
count
;
TRACE
(
ddraw
,
"(%p)->(%ld,%ld,%ld)
\n
"
,
this
,
width
,
height
,
depth
);
...
...
@@ -1984,6 +1993,33 @@ static HRESULT WINAPI DGA_IDirectDraw_SetDisplayMode(
this
->
e
.
dga
.
fb_height
=
height
;
_common_IDirectDraw_SetDisplayMode
(
this
);
#ifdef HAVE_LIBXXF86VM
{
XF86VidModeModeInfo
**
all_modes
,
*
vidmode
;
/* set fullscreen mode */
/* do we need to save the old video mode and restore it when we exit? */
TSXF86VidModeGetAllModeLines
(
display
,
DefaultScreen
(
display
),
&
mode_count
,
&
all_modes
);
for
(
i
=
0
;
i
<
mode_count
;
i
++
)
{
if
(
all_modes
[
i
]
->
hdisplay
==
width
&&
all_modes
[
i
]
->
vdisplay
==
height
)
{
vidmode
=
(
XF86VidModeModeInfo
*
)
malloc
(
sizeof
(
XF86VidModeModeInfo
));
*
vidmode
=
*
(
all_modes
[
i
]);
break
;
}
else
TSXFree
(
all_modes
[
i
]
->
private
);
}
TSXFree
(
all_modes
);
if
(
!
vidmode
)
WARN
(
ddraw
,
"Fullscreen mode not available!
\n
"
);
if
(
vidmode
)
TSXF86VidModeSwitchToMode
(
display
,
DefaultScreen
(
display
),
vidmode
);
}
#endif
/* FIXME: this function OVERWRITES several signal handlers.
* can we save them? and restore them later? In a way that
* it works for the library too?
...
...
@@ -2675,7 +2711,7 @@ HRESULT WINAPI DGA_DirectDrawCreate( LPDIRECTDRAW *lplpDD, LPUNKNOWN pUnkOuter)
#ifdef HAVE_LIBXXF86DGA
int
memsize
,
banksize
,
width
,
major
,
minor
,
flags
,
height
;
char
*
addr
;
int
fd
;
int
fd
;
/* Must be able to access /dev/mem for DGA extensions to work, root is not neccessary. --stephenc */
if
((
fd
=
open
(
"/dev/mem"
,
O_RDWR
))
!=
-
1
)
...
...
include/acconfig.h
View file @
399931a2
...
...
@@ -21,6 +21,9 @@
/* Define if you have the X Shm extension */
#undef HAVE_LIBXXSHM
/* Define if you have the Xxf86vm library */
#undef HAVE_LIBXXF86VM
/* Define if you have the Open Sound system. */
#undef HAVE_OSS
...
...
include/config.h.in
View file @
399931a2
...
...
@@ -33,6 +33,9 @@
/* Define if you have the X Shm extension */
#undef HAVE_LIBXXSHM
/* Define if you have the Xxf86vm library */
#undef HAVE_LIBXXF86VM
/* Define if you have the Open Sound system. */
#undef HAVE_OSS
...
...
include/ts_xf86vmode.h
0 → 100644
View file @
399931a2
/*
* Thread safe wrappers around xf86vmode calls.
* Always include this file instead of <X11/xf86vmode.h>.
* This file was generated automatically by tools/make_X11wrappers
*
* Copyright 1998 Kristian Nielsen
*/
#ifndef __WINE_TSXF86VMODE_H
#define __WINE_TSXF86VMODE_H
#include <X11/Xlib.h>
#include <X11/extensions/xf86vmode.h>
extern
Bool
TSXF86VidModeQueryVersion
(
Display
*
,
int
*
,
int
*
);
extern
Bool
TSXF86VidModeQueryExtension
(
Display
*
,
int
*
,
int
*
);
extern
Bool
TSXF86VidModeGetModeLine
(
Display
*
,
int
,
int
*
,
XF86VidModeModeLine
*
);
extern
Bool
TSXF86VidModeGetAllModeLines
(
Display
*
,
int
,
int
*
,
XF86VidModeModeInfo
***
);
extern
Bool
TSXF86VidModeAddModeLine
(
Display
*
,
int
,
XF86VidModeModeInfo
*
,
XF86VidModeModeInfo
*
);
extern
Bool
TSXF86VidModeDeleteModeLine
(
Display
*
,
int
,
XF86VidModeModeInfo
*
);
extern
Bool
TSXF86VidModeModModeLine
(
Display
*
,
int
,
XF86VidModeModeLine
*
);
extern
Status
TSXF86VidModeValidateModeLine
(
Display
*
,
int
,
XF86VidModeModeInfo
*
);
extern
Bool
TSXF86VidModeSwitchMode
(
Display
*
,
int
,
int
);
extern
Bool
TSXF86VidModeSwitchToMode
(
Display
*
,
int
,
XF86VidModeModeInfo
*
);
extern
Bool
TSXF86VidModeLockModeSwitch
(
Display
*
,
int
,
int
);
extern
Bool
TSXF86VidModeGetMonitor
(
Display
*
,
int
,
XF86VidModeMonitor
*
);
extern
Bool
TSXF86VidModeGetViewPort
(
Display
*
,
int
,
int
*
,
int
*
);
extern
Bool
TSXF86VidModeSetViewPort
(
Display
*
,
int
,
int
,
int
);
#endif
/* __WINE_TSXF86VMODE_H */
tools/make_X11wrappers
View file @
399931a2
...
...
@@ -17,7 +17,7 @@
$X11_include_dir
=
"/usr/X11R6/include"
;
$outdir
=
"tsx11"
;
$wantfile
=
"$outdir/X11_calls"
;
@dolist
=
(
"Xlib"
,
"Xresource"
,
"Xutil"
,
"xpm"
,
"XShm"
,
"xf86dga"
);
@dolist
=
(
"Xlib"
,
"Xresource"
,
"Xutil"
,
"xpm"
,
"XShm"
,
"xf86dga"
,
"xf86vmode"
);
# First read list of wanted function names.
...
...
@@ -60,6 +60,12 @@ foreach $name (@dolist) {
if
(
$name
eq
"XShm"
)
{
$extensions_dir
=
"extensions/"
;
}
if
(
$name
eq
"xf86vmode"
)
{
$x11_incl
=
"#include <X11/Xlib.h>\n"
;
$extensions_dir
=
"extensions/"
;
$pre_file
=
"#include \"config.h\"\n#ifdef HAVE_LIBXXF86VM\n"
;
$post_file
=
"#endif"
;
}
print
OUTH
<<END;
/*
...
...
@@ -170,6 +176,77 @@ END
"Display*a0,int a1,int a2"
,
"a0,a1,a2"
);
}
elsif
(
$name
eq
"xf86vmode"
)
{
output_fn
(
"XF86VidModeQueryVersion"
,
Bool
,
"Display*,int*,int*"
,
"Display*a0,int*a1,int*a2"
,
"a0,a1,a2"
);
output_fn
(
"XF86VidModeQueryExtension"
,
Bool
,
"Display*,int*,int*"
,
"Display*a0,int*a1,int*a2"
,
"a0,a2,a2"
);
output_fn
(
"XF86VidModeGetModeLine"
,
Bool
,
"Display*,int,int*,XF86VidModeModeLine*"
,
"Display*a0,int a1,int*a2,XF86VidModeModeLine*a3"
,
"a0,a1,a2,a3"
);
output_fn
(
"XF86VidModeGetAllModeLines"
,
Bool
,
"Display*,int,int*,XF86VidModeModeInfo***"
,
"Display*a0,int a1,int*a2,XF86VidModeModeInfo***a3"
,
"a0,a1,a2,a3"
);
output_fn
(
"XF86VidModeAddModeLine"
,
Bool
,
"Display*,int,XF86VidModeModeInfo*,XF86VidModeModeInfo*"
,
"Display*a0,int a1,XF86VidModeModeInfo*a2,XF86VidModeModeInfo*a3"
,
"a0,a1,a2,a3"
);
output_fn
(
"XF86VidModeDeleteModeLine"
,
Bool
,
"Display*,int,XF86VidModeModeInfo*"
,
"Display*a0,int a1,XF86VidModeModeInfo*a2"
,
"a0,a1,a2"
);
output_fn
(
"XF86VidModeModModeLine"
,
Bool
,
"Display*,int,XF86VidModeModeLine*"
,
"Display*a0,int a1,XF86VidModeModeLine*a2"
,
"a0,a1,a2"
);
output_fn
(
"XF86VidModeValidateModeLine"
,
Status
,
"Display*,int,XF86VidModeModeInfo*"
,
"Display*a0,int a1,XF86VidModeModeInfo*a2"
,
"a0,a1,a2"
);
output_fn
(
"XF86VidModeSwitchMode"
,
Bool
,
"Display*,int,int"
,
"Display*a0,int a1,int a2"
,
"a0,a1,a2"
);
output_fn
(
"XF86VidModeSwitchToMode"
,
Bool
,
"Display*,int,XF86VidModeModeInfo*"
,
"Display*a0,int a1,XF86VidModeModeInfo*a2"
,
"a0,a1,a2"
);
output_fn
(
"XF86VidModeLockModeSwitch"
,
Bool
,
"Display*,int,int"
,
"Display*a0,int a1,int a2"
,
"a0,a1,a2"
);
output_fn
(
"XF86VidModeGetMonitor"
,
Bool
,
"Display*,int,XF86VidModeMonitor*"
,
"Display*a0,int a1,XF86VidModeMonitor*a2"
,
"a0,a1,a2"
);
output_fn
(
"XF86VidModeGetViewPort"
,
Bool
,
"Display*,int,int*,int*"
,
"Display*a0,int a1,int*a2,int*a3"
,
"a0,a1,a2,a3"
);
output_fn
(
"XF86VidModeSetViewPort"
,
Bool
,
"Display*,int,int,int"
,
"Display*a0,int a1,int a2,int a3"
,
"a0,a1,a2,a3"
);
}
else
{
open
(
IN
,
"echo \"$x11_incl#include <X11/$extensions_dir$name.h>\" | gcc -L$X11_include_dir -E - | grep -v '^[ \t]*\$'|"
)
||
die
"open"
;
...
...
tsx11/Makefile.in
View file @
399931a2
...
...
@@ -7,6 +7,7 @@ MODULE = tsx11
C_SRCS
=
\
ts_xf86dga.c
\
ts_xf86vmode.c
\
ts_xshm.c
\
ts_xlib.c
\
ts_xresource.c
\
...
...
tsx11/X11_calls
View file @
399931a2
...
...
@@ -179,3 +179,17 @@ XF86DGAQueryVersion
XF86DGAQueryDirectVideo
XF86DGAGetVideo
XF86DGAGetViewPortSize
XF86VidModeQueryVersion
XF86VidModeQueryExtension
XF86VidModeGetModeLine
XF86VidModeGetAllModeLines
XF86VidModeAddModeLine
XF86VidModeDeleteModeLine
XF86VidModeModModeLine
XF86VidModeValidateModeLine
XF86VidModeSwitchMode
XF86VidModeSwitchToMode
XF86VidModeLockModeSwitch
XF86VidModeGetMonitor
XF86VidModeGetViewPort
XF86VidModeSetViewPort
tsx11/ts_xf86vmode.c
0 → 100644
View file @
399931a2
/*
* Thread safe wrappers around xf86vmode calls.
* This file was generated automatically by tools/make_X11wrappers
* DO NOT EDIT!
*/
#include "config.h"
#ifdef HAVE_LIBXXF86VM
#include <X11/Xlib.h>
#include <X11/extensions/xf86vmode.h>
#include "x11drv.h"
#include "debug.h"
Bool
TSXF86VidModeQueryVersion
(
Display
*
a0
,
int
*
a1
,
int
*
a2
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeQueryVersion
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeQueryVersion
(
a0
,
a1
,
a2
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeQueryVersion
\n
"
);
return
r
;
}
Bool
TSXF86VidModeQueryExtension
(
Display
*
a0
,
int
*
a1
,
int
*
a2
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeQueryExtension
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeQueryExtension
(
a0
,
a2
,
a2
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeQueryExtension
\n
"
);
return
r
;
}
Bool
TSXF86VidModeGetModeLine
(
Display
*
a0
,
int
a1
,
int
*
a2
,
XF86VidModeModeLine
*
a3
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeGetModeLine
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeGetModeLine
(
a0
,
a1
,
a2
,
a3
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeGetModeLine
\n
"
);
return
r
;
}
Bool
TSXF86VidModeGetAllModeLines
(
Display
*
a0
,
int
a1
,
int
*
a2
,
XF86VidModeModeInfo
***
a3
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeGetAllModeLines
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeGetAllModeLines
(
a0
,
a1
,
a2
,
a3
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeGetAllModeLines
\n
"
);
return
r
;
}
Bool
TSXF86VidModeAddModeLine
(
Display
*
a0
,
int
a1
,
XF86VidModeModeInfo
*
a2
,
XF86VidModeModeInfo
*
a3
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeAddModeLine
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeAddModeLine
(
a0
,
a1
,
a2
,
a3
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeAddModeLine
\n
"
);
return
r
;
}
Bool
TSXF86VidModeDeleteModeLine
(
Display
*
a0
,
int
a1
,
XF86VidModeModeInfo
*
a2
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeDeleteModeLine
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeDeleteModeLine
(
a0
,
a1
,
a2
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeDeleteModeLine
\n
"
);
return
r
;
}
Bool
TSXF86VidModeModModeLine
(
Display
*
a0
,
int
a1
,
XF86VidModeModeLine
*
a2
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeModModeLine
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeModModeLine
(
a0
,
a1
,
a2
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeModModeLine
\n
"
);
return
r
;
}
Status
TSXF86VidModeValidateModeLine
(
Display
*
a0
,
int
a1
,
XF86VidModeModeInfo
*
a2
)
{
Status
r
;
TRACE
(
x11
,
"Call XF86VidModeValidateModeLine
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeValidateModeLine
(
a0
,
a1
,
a2
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeValidateModeLine
\n
"
);
return
r
;
}
Bool
TSXF86VidModeSwitchMode
(
Display
*
a0
,
int
a1
,
int
a2
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeSwitchMode
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeSwitchMode
(
a0
,
a1
,
a2
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeSwitchMode
\n
"
);
return
r
;
}
Bool
TSXF86VidModeSwitchToMode
(
Display
*
a0
,
int
a1
,
XF86VidModeModeInfo
*
a2
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeSwitchToMode
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeSwitchToMode
(
a0
,
a1
,
a2
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeSwitchToMode
\n
"
);
return
r
;
}
Bool
TSXF86VidModeLockModeSwitch
(
Display
*
a0
,
int
a1
,
int
a2
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeLockModeSwitch
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeLockModeSwitch
(
a0
,
a1
,
a2
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeLockModeSwitch
\n
"
);
return
r
;
}
Bool
TSXF86VidModeGetMonitor
(
Display
*
a0
,
int
a1
,
XF86VidModeMonitor
*
a2
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeGetMonitor
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeGetMonitor
(
a0
,
a1
,
a2
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeGetMonitor
\n
"
);
return
r
;
}
Bool
TSXF86VidModeGetViewPort
(
Display
*
a0
,
int
a1
,
int
*
a2
,
int
*
a3
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeGetViewPort
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeGetViewPort
(
a0
,
a1
,
a2
,
a3
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeGetViewPort
\n
"
);
return
r
;
}
Bool
TSXF86VidModeSetViewPort
(
Display
*
a0
,
int
a1
,
int
a2
,
int
a3
)
{
Bool
r
;
TRACE
(
x11
,
"Call XF86VidModeSetViewPort
\n
"
);
EnterCriticalSection
(
&
X11DRV_CritSection
);
r
=
XF86VidModeSetViewPort
(
a0
,
a1
,
a2
,
a3
);
LeaveCriticalSection
(
&
X11DRV_CritSection
);
TRACE
(
x11
,
"Ret XF86VidModeSetViewPort
\n
"
);
return
r
;
}
#endif
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