aboutsummaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorbasisbit <basisbit@b956fd51-792f-4845-bead-9b4dfca2ff2c>2015-10-11 22:15:05 +0000
committerbasisbit <basisbit@b956fd51-792f-4845-bead-9b4dfca2ff2c>2015-10-11 22:15:05 +0000
commit086642246da49e0ad2de8857004e083081a14867 (patch)
treed17de7a3de34c55f9029742eca0abcd2980790eb /src/base
parent6cef6c00598000b85d0bd9f8c1d8795a04e07c99 (diff)
downloadusdx-086642246da49e0ad2de8857004e083081a14867.tar.gz
usdx-086642246da49e0ad2de8857004e083081a14867.tar.xz
usdx-086642246da49e0ad2de8857004e083081a14867.zip
* modified to support current Bass.dll which fixes sound-issues on windows 8 and newer
ToDo: implement usage of Bass device latency for usage when syncing video playback and audio playback * implemented the split-feature for linux-users. see https://sourceforge.net/p/ultrastardx/patches/16/ git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@3141 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'src/base')
-rw-r--r--src/base/UCommandLine.pas7
-rw-r--r--src/base/UGraphic.pas13
-rw-r--r--src/base/UIni.pas8
3 files changed, 27 insertions, 1 deletions
diff --git a/src/base/UCommandLine.pas b/src/base/UCommandLine.pas
index ac0db2c2..7a3761da 100644
--- a/src/base/UCommandLine.pas
+++ b/src/base/UCommandLine.pas
@@ -38,6 +38,7 @@ uses
type
TScreenMode = (scmDefault, scmFullscreen, scmWindowed);
+ TSplitMode = (spmDefault, spmNoSplit, spmSplit);
{**
* Reads infos from ParamStr and set some easy interface variables
@@ -61,6 +62,7 @@ type
NoLog: boolean;
ScreenMode: TScreenMode;
Joypad: boolean;
+ Split: TSplitMode;
// some value variables set when reading infos {-1: Not Set, others: Value}
Depth: integer;
@@ -139,6 +141,7 @@ begin
NoLog := False;
ScreenMode := scmDefault;
Joypad := False;
+ Split := spmDefault;
// some value variables set when reading infos {-1: Not Set, others: Value}
fResolution := '';
@@ -190,6 +193,10 @@ begin
ScreenMode := scmWindowed
else if (Command = 'joypad') then
Joypad := True
+ else if (Command = 'split') then
+ Split := spmSplit
+ else if (Command = 'nosplit') then
+ Split := spmNoSplit
// integer variables
else if (Command = 'depth') then
diff --git a/src/base/UGraphic.pas b/src/base/UGraphic.pas
index bf297220..f0b60b95 100644
--- a/src/base/UGraphic.pas
+++ b/src/base/UGraphic.pas
@@ -616,11 +616,20 @@ var
W, H: integer;
Depth: Integer;
Fullscreen: boolean;
+ Split: boolean;
begin
if (Params.Screens <> -1) then
Screens := Params.Screens + 1
else
Screens := Ini.Screens + 1;
+ case Params.Split of
+ spmSplit:
+ Split := True;
+ spmNoSplit:
+ Split := False;
+ else
+ Split := Ini.Split = 1;
+ end; // case
// Set minimum color component sizes
// Note: do not request an alpha plane with SDL_GL_ALPHA_SIZE here as
@@ -647,8 +656,10 @@ begin
S := IResolution[Ini.Resolution];
I := Pos('x', S);
- W := StrToInt(Copy(S, 1, I-1)) * Screens;
+ W := StrToInt(Copy(S, 1, I-1));
H := StrToInt(Copy(S, I+1, 1000));
+ if ((Screens > 1) and not Split) then
+ W := W * Screens;
if (Params.Depth <> -1) then
Depth := Params.Depth
diff --git a/src/base/UIni.pas b/src/base/UIni.pas
index beb9faa8..a455ed8b 100644
--- a/src/base/UIni.pas
+++ b/src/base/UIni.pas
@@ -115,6 +115,7 @@ type
// Graphics
Screens: integer;
+ Split: integer;
Resolution: integer;
Depth: integer;
VisualizerOption: integer;
@@ -206,6 +207,7 @@ const
IDebug: array[0..1] of UTF8String = ('Off', 'On');
IScreens: array[0..1] of UTF8String = ('1', '2');
+ ISplit: array[0..1] of UTF8String = ('Off', 'On');
IFullScreen: array[0..1] of UTF8String = ('Off', 'On');
IDepth: array[0..1] of UTF8String = ('16 bit', '32 bit');
IVisualizer: array[0..2] of UTF8String = ('Off', 'WhenNoVideo','On');
@@ -786,6 +788,9 @@ begin
// Screens
Screens := GetArrayIndex(IScreens, IniFile.ReadString('Graphics', 'Screens', IScreens[0]));
+ // Split mode
+ Split := GetArrayIndex(ISplit, IniFile.ReadString('Graphics', 'Split', ISplit[0]));
+
// FullScreen
FullScreen := GetArrayIndex(IFullScreen, IniFile.ReadString('Graphics', 'FullScreen', 'On'));
@@ -1072,6 +1077,9 @@ begin
// Screens
IniFile.WriteString('Graphics', 'Screens', IScreens[Screens]);
+ // Split
+ IniFile.WriteString('Graphics', 'Split', ISplit[Split]);
+
// FullScreen
IniFile.WriteString('Graphics', 'FullScreen', IFullScreen[FullScreen]);