mirror of
https://github.com/mpv-player/mpv
synced 2025-02-26 10:14:33 +00:00
Changes to configure to autodetect DGA 2.0 functionality, and to only use
DGA video mode switching when DGA 2.0 is present git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@234 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
4680a1cbed
commit
effaab2cf2
30
configure
vendored
30
configure
vendored
@ -167,6 +167,7 @@ _mlib=no
|
||||
_mpg123=no
|
||||
_xmga=no
|
||||
_dga=no
|
||||
_dga2=no
|
||||
_fbdev=no
|
||||
_lirc=no
|
||||
|
||||
@ -393,6 +394,18 @@ $_cc $TMPC -o $TMPO -L/usr/X11R6/lib -L/usr/X11/lib -lX11 -lXext -lXxf86dga -lXx
|
||||
|
||||
# ---
|
||||
|
||||
# Check if DGA is 2.0 or greater
|
||||
cat > $TMPC << EOF
|
||||
#include <stdio.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/extensions/xf86dga.h>
|
||||
int main (void) { XDGAMode mode; XDGADevice device; return 0;}
|
||||
EOF
|
||||
|
||||
_dga2=no
|
||||
$_cc $TMPC -o $TMPO -L/usr/X11R6/lib -L/usr/X11/lib -lX11 -lXext -lXxf86dga -lXxf86vm &> /dev/null && _dga2=yes
|
||||
|
||||
|
||||
cat > $TMPC << EOF
|
||||
#include <GL/gl.h>
|
||||
int main( void ) { return 0; }
|
||||
@ -443,7 +456,10 @@ do
|
||||
;;
|
||||
--enable-dga)
|
||||
_dga=yes
|
||||
;;
|
||||
;;
|
||||
--enable-dga2)
|
||||
_dga2=yes
|
||||
;;
|
||||
--enable-xv)
|
||||
_xv=yes
|
||||
;;
|
||||
@ -513,6 +529,9 @@ do
|
||||
--disable-dga)
|
||||
_dga=no
|
||||
;;
|
||||
--disable-dga2)
|
||||
_dga2=no
|
||||
;;
|
||||
--disable-fbdev)
|
||||
_fbdev=no
|
||||
;;
|
||||
@ -555,6 +574,7 @@ echo "Checking for OpenGL ... $_gl"
|
||||
echo "Checking for Xv ... $_xv"
|
||||
echo "Checking for X11 ... $_x11"
|
||||
echo "Checking for DGA ... $_dga"
|
||||
echo "Checking for DGA 2.0 .. $_dga2"
|
||||
echo "Checking for Xf86VM ... $_vm"
|
||||
echo "Checking for FBDev ... $_fbdev"
|
||||
# write conf files.
|
||||
@ -727,6 +747,13 @@ else
|
||||
_dga='#undef HAVE_DGA'
|
||||
fi
|
||||
|
||||
if [ $_dga2 = yes ]; then
|
||||
_dga2='#define HAVE_DGA2'
|
||||
_vosrc=$_vosrc' vo_dga.c vo_fsdga.c'
|
||||
else
|
||||
_dga2='#undef HAVE_DGA2'
|
||||
fi
|
||||
|
||||
if [ $_fbdev = yes ]; then
|
||||
_fbdev='#define HAVE_FBDEV'
|
||||
_vosrc=$_vosrc' vo_fbdev.c'
|
||||
@ -807,6 +834,7 @@ $_xv
|
||||
$_vm
|
||||
$_gl
|
||||
$_dga
|
||||
$_dga2
|
||||
$_sdldef
|
||||
$_3dfx
|
||||
$_mga
|
||||
|
@ -241,10 +241,13 @@ static uint32_t init( uint32_t width, uint32_t height,
|
||||
int bank, ram;
|
||||
int x_off, y_off;
|
||||
|
||||
#ifdef HAVE_DGA2
|
||||
// needed to change DGA video mode
|
||||
int modecount,mX, mY, X, Y, i,j;
|
||||
int modecount,mX, mY, i,j;
|
||||
int X,Y;
|
||||
XDGAMode *modelines=NULL;
|
||||
XDGADevice *dgadevice;
|
||||
#endif
|
||||
|
||||
if( vo_dga_is_running )return -1;
|
||||
|
||||
@ -259,6 +262,7 @@ static uint32_t init( uint32_t width, uint32_t height,
|
||||
return 1;
|
||||
}
|
||||
|
||||
#ifdef HAVE_DGA2
|
||||
// Code to change the video mode added by Michael Graffam
|
||||
// mgraffam@idsi.net
|
||||
if (modelines==NULL)
|
||||
@ -285,6 +289,7 @@ static uint32_t init( uint32_t width, uint32_t height,
|
||||
}
|
||||
X=(modelines[j].imageWidth-mX)/2;
|
||||
Y=(modelines[j].imageHeight-mY)/2;
|
||||
printf("vo_dga: Using DGA 2.0 mode changing support\n");
|
||||
printf("vo_dga: Selected video mode %dx%d for image size %dx%d.\n", mX, mY,width, height);
|
||||
|
||||
XF86DGASetViewPort (vo_dga_dpy, XDefaultScreen(vo_dga_dpy), X,Y);
|
||||
@ -293,15 +298,22 @@ static uint32_t init( uint32_t width, uint32_t height,
|
||||
|
||||
XFree(modelines);
|
||||
XFree(dgadevice);
|
||||
// end mode change code
|
||||
#else
|
||||
printf("vo_dga: DGA 1.0 compatibility code\n");
|
||||
#endif
|
||||
|
||||
// end mode change code
|
||||
XF86DGAGetViewPortSize(vo_dga_dpy,XDefaultScreen(vo_dga_dpy),
|
||||
&vo_dga_vp_width,
|
||||
&vo_dga_vp_height);
|
||||
|
||||
XF86DGAGetVideo (vo_dga_dpy, XDefaultScreen(vo_dga_dpy),
|
||||
(char **)&vo_dga_base, &vo_dga_width, &bank, &ram);
|
||||
XF86DGAGetVideo (vo_dga_dpy, XDefaultScreen(vo_dga_dpy),
|
||||
(char **)&vo_dga_base, &vo_dga_width, &bank, &ram);
|
||||
|
||||
#ifndef HAVE_DGA2
|
||||
XF86DGASetViewPort (vo_dga_dpy, XDefaultScreen(vo_dga_dpy), 0, 0);
|
||||
#endif
|
||||
|
||||
vo_dga_vp_width=modelines[j].viewportWidth;
|
||||
vo_dga_vp_height=modelines[j].viewportHeight;
|
||||
|
||||
// do some more checkings here ...
|
||||
if( format==IMGFMT_YV12 )
|
||||
yuv2rgb_init( vo_depthonscreen, MODE_RGB );
|
||||
|
Loading…
Reference in New Issue
Block a user