@@ -15,7 +15,7 @@ private enum VideoDriver
15
15
16
16
private static PCIDevice SVGAIIDevice = PCI . GetDevice ( VendorID . VMWare , DeviceID . SVGAIIAdapter ) ;
17
17
18
- public static bool DoesSVGAIIExist ( )
18
+ public static bool SVGAIIExist ( )
19
19
{
20
20
if ( SVGAIIDevice != null )
21
21
{
@@ -31,38 +31,44 @@ public static bool DoesSVGAIIExist()
31
31
}
32
32
33
33
}
34
- //public static bool SVGAIIExists = SVGAIIDevice != null;
35
-
36
34
private static VideoDriver videoDevice ;
37
35
38
- // Created null - NullReferenceException when calling GetFullScreenCanvas() with 0 overloads
39
36
private static Canvas MyVideoDriver = null ;
40
37
38
+ private static Canvas GetVideoDriver ( )
39
+ {
40
+ if ( SVGAIIExist ( ) )
41
+ {
42
+ return new SVGAIIScreen ( ) ;
43
+ }
44
+ else
45
+ {
46
+ return new VBEScreen ( ) ;
47
+ }
48
+ }
49
+ private static Canvas GetVideoDriver ( Mode mode )
50
+ {
51
+ if ( SVGAIIExist ( ) )
52
+ {
53
+ return new SVGAIIScreen ( mode ) ;
54
+ }
55
+ else
56
+ {
57
+ return new VBEScreen ( mode ) ;
58
+ }
59
+ }
60
+
41
61
public static Canvas GetFullScreenCanvas ( )
42
62
{
43
- // If MyVideoDriver is null (hasn't checked if VMWare SVGA exists),
44
- // Do necessary check and set to default gfx mode
45
63
if ( MyVideoDriver == null )
46
64
{
47
- return GetFullScreenCanvas ( MyVideoDriver . DefaultGraphicMode ) ;
65
+ return MyVideoDriver = GetVideoDriver ( ) ;
48
66
}
49
- // If it's not null, simply change graphics mode */
50
67
else
51
68
{
52
69
MyVideoDriver . Mode = MyVideoDriver . DefaultGraphicMode ;
53
70
return MyVideoDriver ;
54
71
}
55
- // Old check left for reference
56
- /*
57
- if (videoDevice == VideoDriver.VMWareSVGAIIDriver)
58
- {
59
-
60
- }
61
- else
62
- {
63
-
64
- }
65
- */
66
72
}
67
73
public static Canvas GetFullScreenCanvas ( Mode mode )
68
74
{
@@ -71,32 +77,75 @@ public static Canvas GetFullScreenCanvas(Mode mode)
71
77
// Do necessary check and set gfx mode as specified (mode)
72
78
if ( MyVideoDriver == null )
73
79
{
74
- if ( DoesSVGAIIExist ( ) )
75
- {
76
- // Set videoDevice to SVGA, initialize MyVideoDriver as an SVGA display using specified mode
77
- // MyVideoDriver.Mode = mode; isn't exactly needed, just done in case it doesn't set.
78
- // returns MyVideoDriver as the Canvas
79
- videoDevice = VideoDriver . VMWareSVGAIIDriver ;
80
- MyVideoDriver = new SVGAIIScreen ( mode ) ;
81
- MyVideoDriver . Mode = mode ;
82
- return MyVideoDriver ;
83
- }
84
- else
85
- {
86
- // Does the same as above, this time using VESA BIOS Extensions (supported by loads of graphics cards)
87
- videoDevice = VideoDriver . VBEDriver ;
88
- MyVideoDriver = new VBEScreen ( mode ) ;
89
- MyVideoDriver . Mode = mode ;
90
- return MyVideoDriver ;
91
- }
80
+ return MyVideoDriver = GetVideoDriver ( mode ) ;
92
81
}
93
82
else
94
83
{
95
- // If MyVideoDriver has been initialized before (Graphics mode has previously been set)
96
- // Change the graphics mode to the mode specified
97
84
MyVideoDriver . Mode = mode ;
98
85
return MyVideoDriver ;
99
86
}
100
87
}
101
88
}
102
89
}
90
+ /*
91
+ if (DoesSVGAIIExist())
92
+ {
93
+ // Set videoDevice to SVGA, initialize MyVideoDriver as an SVGA display using specified mode
94
+ // MyVideoDriver.Mode = mode; isn't exactly needed, just done in case it doesn't set.
95
+ // returns MyVideoDriver as the Canvas
96
+ videoDevice = VideoDriver.VMWareSVGAIIDriver;
97
+ MyVideoDriver = new SVGAIIScreen(mode);
98
+ MyVideoDriver.Mode = mode;
99
+ return MyVideoDriver;
100
+ }
101
+ else
102
+ {
103
+ // Does the same as above, this time using VESA BIOS Extensions (supported by loads of graphics cards)
104
+ videoDevice = VideoDriver.VBEDriver;
105
+ MyVideoDriver = new VBEScreen(mode);
106
+ MyVideoDriver.Mode = mode;
107
+ return MyVideoDriver;
108
+ }
109
+ }
110
+ else
111
+ {
112
+ // If MyVideoDriver has been initialized before (Graphics mode has previously been set)
113
+ // Change the graphics mode to the mode specified
114
+ MyVideoDriver.Mode = mode;
115
+ return MyVideoDriver;
116
+ }
117
+ }
118
+ /*
119
+
120
+ // If MyVideoDriver is null (hasn't checked if VMWare SVGA exists),
121
+ // Do necessary check and set to default gfx mode
122
+ if (MyVideoDriver == null)
123
+ {
124
+ if (DoesSVGAIIExist())
125
+ {
126
+ // Set videoDevice to SVGA, initialize MyVideoDriver as an SVGA display using specified mode
127
+ // MyVideoDriver.Mode = mode; isn't exactly needed, just done in case it doesn't set.
128
+ // returns MyVideoDriver as the Canvas
129
+ videoDevice = VideoDriver.VMWareSVGAIIDriver;
130
+ MyVideoDriver = new SVGAIIScreen(SVGAIIScreen.defaultGraphicsMode);
131
+ MyVideoDriver.Mode = SVGAIIScreen.defaultGraphicsMode;
132
+ return MyVideoDriver;
133
+ }
134
+ else
135
+ {
136
+ // Does the same as above, this time using VESA BIOS Extensions (supported by loads of graphics cards)
137
+ videoDevice = VideoDriver.VBEDriver;
138
+ MyVideoDriver = new VBEScreen(VBEScreen.defaultGraphicsMode);
139
+ MyVideoDriver.Mode = VBEScreen.defaultGraphicsMode;
140
+ return MyVideoDriver;
141
+ }
142
+ }
143
+ // If it's not null, simply change graphics mode
144
+ else
145
+ {
146
+ MyVideoDriver.Mode = MyVideoDriver.DefaultGraphicMode;
147
+ return MyVideoDriver;
148
+ }
149
+ */
150
+
151
+
0 commit comments