Mercurial > sdl-ios-xcode
comparison src/video/svga/SDL_svgavideo.c @ 67:3647c809813d
Support for SVGALib 2.0, thanks to Benjamin Joel Stover
author | Sam Lantinga <slouken@lokigames.com> |
---|---|
date | Sat, 16 Jun 2001 01:32:09 +0000 |
parents | cf2af46e9e2a |
children | 13161d3d349d |
comparison
equal
deleted
inserted
replaced
66:7c26b77e610d | 67:3647c809813d |
---|---|
30 | 30 |
31 #include <stdlib.h> | 31 #include <stdlib.h> |
32 #include <stdio.h> | 32 #include <stdio.h> |
33 #include <unistd.h> | 33 #include <unistd.h> |
34 #include <sys/stat.h> | 34 #include <sys/stat.h> |
35 #include <sys/types.h> | |
36 #include <sys/ioctl.h> | |
37 #include <fcntl.h> | |
35 | 38 |
36 #if defined(linux) | 39 #if defined(linux) |
37 #include <linux/vt.h> | 40 #include <linux/vt.h> |
38 #elif defined(__FreeBSD__) | 41 #elif defined(__FreeBSD__) |
39 #include <sys/consio.h> | 42 #include <sys/consio.h> |
75 | 78 |
76 static int SVGA_Available(void) | 79 static int SVGA_Available(void) |
77 { | 80 { |
78 /* Check to see if we are root and stdin is a virtual console */ | 81 /* Check to see if we are root and stdin is a virtual console */ |
79 int console; | 82 int console; |
80 | 83 |
84 /* SVGALib 1.9.x+ doesn't require root (via /dev/svga) */ | |
85 int svgalib2 = -1; | |
86 | |
87 /* See if we are connected to a virtual terminal */ | |
81 console = STDIN_FILENO; | 88 console = STDIN_FILENO; |
82 if ( console >= 0 ) { | 89 if ( console >= 0 ) { |
83 struct stat sb; | 90 struct stat sb; |
84 struct vt_mode dummy; | 91 struct vt_mode dummy; |
85 | 92 |
86 if ( (fstat(console, &sb) < 0) || | 93 if ( (fstat(console, &sb) < 0) || |
87 (ioctl(console, VT_GETMODE, &dummy) < 0) ) { | 94 (ioctl(console, VT_GETMODE, &dummy) < 0) ) { |
88 console = -1; | 95 console = -1; |
89 } | 96 } |
90 } | 97 } |
91 return((geteuid() == 0) && (console >= 0)); | 98 |
99 /* See if SVGAlib 2.0 is available */ | |
100 svgalib2 = open("/dev/svga", O_RDONLY); | |
101 if (svgalib2 != -1) { | |
102 close(svgalib2); | |
103 } | |
104 | |
105 return(((svgalib2 != -1) || (geteuid() == 0)) && (console >= 0)); | |
92 } | 106 } |
93 | 107 |
94 static void SVGA_DeleteDevice(SDL_VideoDevice *device) | 108 static void SVGA_DeleteDevice(SDL_VideoDevice *device) |
95 { | 109 { |
96 free(device->hidden); | 110 free(device->hidden); |