From f594a67f5b96123498c106f5fdf9e40ed898e726 Mon Sep 17 00:00:00 2001 From: codeimp Date: Mon, 4 May 2009 07:46:44 +0000 Subject: [PATCH] - Fixed an error message when Direct3D cannot be started @ Removed debug setup installer and updated a message in the release installer --- Setup/builder2_setup.iss | 3 +- Setup/builder2debug_setup.iss | 164 ----------------------------- Source/Core/Rendering/D3DDevice.cs | 26 ++--- 3 files changed, 15 insertions(+), 178 deletions(-) delete mode 100644 Setup/builder2debug_setup.iss diff --git a/Setup/builder2_setup.iss b/Setup/builder2_setup.iss index e35910fa..36f17b45 100644 --- a/Setup/builder2_setup.iss +++ b/Setup/builder2_setup.iss @@ -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; + diff --git a/Setup/builder2debug_setup.iss b/Setup/builder2debug_setup.iss deleted file mode 100644 index 7be01c28..00000000 --- a/Setup/builder2debug_setup.iss +++ /dev/null @@ -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; - - - - - - - - - - - - - - - - diff --git a/Source/Core/Rendering/D3DDevice.cs b/Source/Core/Rendering/D3DDevice.cs index a68d4a69..89396fd1 100644 --- a/Source/Core/Rendering/D3DDevice.cs +++ b/Source/Core/Rendering/D3DDevice.cs @@ -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; }