From 8ca59e00a525b6cddfbb80693306271498fc1ce3 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 16 Jun 2001 01:32:09 +0000 Subject: [PATCH] Support for SVGALib 2.0, thanks to Benjamin Joel Stover --- src/video/svga/SDL_svgavideo.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/video/svga/SDL_svgavideo.c b/src/video/svga/SDL_svgavideo.c index ed2953a50..33dc53dc6 100644 --- a/src/video/svga/SDL_svgavideo.c +++ b/src/video/svga/SDL_svgavideo.c @@ -32,6 +32,9 @@ static char rcsid = #include #include #include +#include +#include +#include #if defined(linux) #include @@ -77,7 +80,11 @@ static int SVGA_Available(void) { /* Check to see if we are root and stdin is a virtual console */ int console; + + /* SVGALib 1.9.x+ doesn't require root (via /dev/svga) */ + int svgalib2 = -1; + /* See if we are connected to a virtual terminal */ console = STDIN_FILENO; if ( console >= 0 ) { struct stat sb; @@ -88,7 +95,14 @@ static int SVGA_Available(void) console = -1; } } - return((geteuid() == 0) && (console >= 0)); + + /* See if SVGAlib 2.0 is available */ + svgalib2 = open("/dev/svga", O_RDONLY); + if (svgalib2 != -1) { + close(svgalib2); + } + + return(((svgalib2 != -1) || (geteuid() == 0)) && (console >= 0)); } static void SVGA_DeleteDevice(SDL_VideoDevice *device)