- Fixed an error message when Direct3D cannot be started

@ Removed debug setup installer and updated a message in the release installer
This commit is contained in:
codeimp 2009-05-04 07:46:44 +00:00
parent b5491b4b08
commit f594a67f5b
3 changed files with 15 additions and 178 deletions

View file

@ -75,7 +75,7 @@ procedure InitializeWizard();
begin
restartneeded := false;
componentsinstalled := false;
page_info_net := CreateOutputMsgPage(wpInstalling, 'Installing Microsoft .NET Framework', '', 'Setup has detected that your system is missing the required version of the Microsoft .NET Framework. Setup will now download and install or update your Microsoft .NET Framework. This requires an internet connection and may take some time to complete.' + #10 + #10 + 'Press Next to begin.');
page_info_net := CreateOutputMsgPage(wpInstalling, 'Installing Microsoft .NET Framework', '', 'Setup has detected that your system is missing the required version of the Microsoft .NET Framework. Setup will now download and install or update your Microsoft .NET Framework. This requires an internet connection and may take several minutes to complete.' + #10 + #10 + 'WARNING: The installer will download the Microsoft .NET Framework from the internet, but the progress bar will not go forward until the download is complete. You may send Microsoft an angry letter about this bug.' + #10 + #10 + 'Press Next to begin.');
page_setup_net := CreateOutputProgressPage('Installing Microsoft .NET Framework', 'Setup is installing Microsoft .NET Framework, please wait.....');
page_setup_components := CreateOutputProgressPage('Installing Components', 'Setup is installing required components.....');
end;
@ -160,3 +160,4 @@ end;

View file

@ -1,164 +0,0 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
[Setup]
AppName=Doom Builder 2
AppVerName=Doom Builder 2.0
AppPublisher=CodeImp
AppPublisherURL=http://www.codeimp.com/
AppSupportURL=http://www.doombuilder.com/
AppUpdatesURL=http://www.doombuilder.com/
DefaultDirName={pf}\Doom Builder 2
DefaultGroupName=Doom Builder
AllowNoIcons=true
InfoBeforeFile=F:\Projects\Doom Builder\Setup\disclaimer.txt
OutputDir=F:\Projects\Doom Builder\Release
OutputBaseFilename=builder2_setup
Compression=lzma/ultra64
SolidCompression=true
SourceDir=F:\Projects\Doom Builder\Build
SetupLogging=false
AppMutex=doombuilder2
PrivilegesRequired=poweruser
ShowLanguageDialog=no
LanguageDetectionMethod=none
MinVersion=0,5.01.2600
UninstallDisplayIcon={app}\Builder.exe
[Languages]
Name: english; MessagesFile: compiler:Default.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
[Files]
Source: Builder.exe; DestDir: {app}; Flags: ignoreversion
Source: Builder.pdb; DestDir: {app}; Flags: ignoreversion
Source: Builder.cfg; DestDir: {app}; Flags: ignoreversion
Source: Refmanual.chm; DestDir: {app}; Flags: ignoreversion
Source: Sharpzip.dll; DestDir: {app}; Flags: ignoreversion
Source: Scintilla.dll; DestDir: {app}; Flags: ignoreversion
Source: Trackbar.dll; DestDir: {app}; Flags: ignoreversion
Source: GPL.txt; DestDir: {app}; Flags: ignoreversion
Source: Compilers\*; DestDir: {app}\Compilers; Flags: ignoreversion recursesubdirs
Source: Configurations\*; DestDir: {app}\Configurations; Flags: ignoreversion
Source: Scripting\*; DestDir: {app}\Scripting; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Source: Plugins\BuilderModes.dll; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Plugins\BuilderModes.pdb; DestDir: {app}\Plugins; Flags: ignoreversion
Source: Setup\*; DestDir: {app}\Setup; Flags: ignoreversion
Source: Sprites\*; DestDir: {app}\Sprites; Flags: ignoreversion
[Icons]
Name: {group}\Doom Builder; Filename: {app}\Builder.exe
Name: {group}\{cm:UninstallProgram,Doom Builder}; Filename: {uninstallexe}
Name: {commondesktop}\Doom Builder; Filename: {app}\Builder.exe; Tasks: desktopicon
[Run]
[UninstallDelete]
Name: {localappdata}\Doom Builder; Type: filesandordirs
[InstallDelete]
Name: {app}\Builder.pdb; Type: files
[Registry]
Root: HKLM; Subkey: SOFTWARE\CodeImp\Doom Builder\; ValueType: string; ValueName: Location; ValueData: {app}; Flags: uninsdeletevalue
[Code]
// Global variables
var
page_info_net: TOutputMsgWizardPage;
page_setup_net: TOutputProgressWizardPage;
page_setup_components: TOutputProgressWizardPage;
componentsinstalled: Boolean;
restartneeded: Boolean;
// When the wizard initializes
procedure InitializeWizard();
begin
restartneeded := false;
componentsinstalled := false;
page_info_net := CreateOutputMsgPage(wpInstalling, 'Installing Microsoft .NET Framework', '', 'Setup has detected that your system is missing the required version of the Microsoft .NET Framework. Setup will now download and install or update your Microsoft .NET Framework. This requires an internet connection and may take some time to complete.' + #10 + #10 + 'Press Next to begin.');
page_setup_net := CreateOutputProgressPage('Installing Microsoft .NET Framework', 'Setup is installing Microsoft .NET Framework, please wait.....');
page_setup_components := CreateOutputProgressPage('Installing Components', 'Setup is installing required components.....');
end;
// This is called to check if a page must be skipped
function ShouldSkipPage(PageID: Integer): Boolean;
begin
// Skip the .NET page?
if(PageID = page_info_net.ID) then
Result := RegKeyExists(HKLM, 'SOFTWARE\Microsoft\.NETFramework\policy\v2.0')
else
Result := False;
end;
// This is called to determine if we need to restart
function NeedRestart(): Boolean;
begin
Result := restartneeded;
end;
// This is called when the current page changes
procedure CurPageChanged(CurPageID: Integer);
var
errorcode: Integer;
begin
if(CurPageID = wpFinished) then
if(componentsinstalled = False) then
begin
page_setup_components.Show;
ShellExec('open', ExpandConstant('{app}\Setup\dxwebsetup.exe'), '/Q', '', SW_SHOW, ewWaitUntilTerminated, errorcode);
ShellExec('open', 'msiexec', ExpandConstant('/passive /i "{app}\Setup\slimdx.msi"'), '', SW_SHOW, ewWaitUntilTerminated, errorcode);
componentsinstalled := True;
page_setup_components.Hide;
end
end;
// This is called when the Next button is clicked
function NextButtonClick(CurPage: Integer): Boolean;
var
errorcode: Integer;
begin
// Next pressed on .NET info page?
if(CurPage = page_info_net.ID) then
begin
// Show progress page and run setup
page_setup_net.Show;
try
begin
ShellExec('open', ExpandConstant('{app}\Setup\dotnetfx35setup.exe'), '/qb /norestart', '', SW_SHOW, ewWaitUntilTerminated, errorcode);
if(errorcode = 3010) then
begin
restartneeded := True;
// Actually we should restart immediately here and tell the user to install again after restart
end
end
finally
page_setup_net.Hide;
end;
end
Result := True;
end;

View file

@ -268,20 +268,20 @@ namespace CodeImp.DoomBuilder.Rendering
// Use default adapter
this.adapter = 0; // Manager.Adapters.Default.Adapter;
// Make present parameters
displaypp = CreatePresentParameters(adapter);
// Determine device type for compatability with NVPerfHUD
if(d3d.Adapters[adapter].Details.Description.EndsWith(NVPERFHUD_ADAPTER))
devtype = DeviceType.Reference;
else
devtype = DeviceType.Hardware;
// Get the device capabilities
devicecaps = d3d.GetDeviceCaps(adapter, devtype);
try
{
// Make present parameters
displaypp = CreatePresentParameters(adapter);
// Determine device type for compatability with NVPerfHUD
if(d3d.Adapters[adapter].Details.Description.EndsWith(NVPERFHUD_ADAPTER))
devtype = DeviceType.Reference;
else
devtype = DeviceType.Hardware;
// Get the device capabilities
devicecaps = d3d.GetDeviceCaps(adapter, devtype);
// Check if this adapter supports TnL
if((devicecaps.DeviceCaps & DeviceCaps.HWTransformAndLight) != 0)
{
@ -299,7 +299,7 @@ namespace CodeImp.DoomBuilder.Rendering
catch(Exception)
{
// Failed
MessageBox.Show(General.MainWindow, "Unable to initialize the Direct3D video device. Another application may have taken exclusive mode on this video device.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(General.MainWindow, "Unable to initialize the Direct3D video device. Another application may have taken exclusive mode on this video device or the device does not support Direct3D at all.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}