Creating and Deploying Applications with the Direct3D10RenderSurface
Posted by Andrew BT on 03 March 2015 11:09 AM

How to Create Applications with the Direct3D10RenderSurface

SciChart ships with three renderer plugins - the High Speed (software), High Quality (software) and DirectX (hardware) renderers. These all have independent properties such as speed, accuracy and now with DirectX - hardware dependence. 

Enabling the DirectX Renderer Plugin

To enable the Direct3D10RenderSurface, auto-detect hardware compatibility and fall back to software, please follow the steps to handle the InitializationFailed event at the article High Quality vs. High Speed vs. DirectX Renderer Plugins.

<!-- Where s3D XML namespace is defined as -->
<!-- xmlns:s3D="http://schemas.abtsoftware.co.uk/scichart3D" -->
<!-- You will also need a reference to Abt.Controls.SciChart3D.Wpf.dll -->
<s:SciChartSurface.RenderSurface>
    <s3D:Direct3D10RenderSurface InitializationFailed="OnDirectXInitializationFailed"
                                 RenderingFailed="OnDirectXRenderingFailed"/>
</s:SciChartSurface.RenderSurface>

Enabling the DirectX Renderer Plugin with Easy Fallback to Software Rendering

See also this article Easy Fallback from DirectX to Software Rendering without code-behind which presents a nice easy way to fall-back to software rendering (from DirectX) via a single attached property.

Auto-Detection of Hardware/Software Compatibility

The Direct3D10RenderSurface has the following pre-requisites to be able to run:

  1. Cannot run on Windows XP. Must be Windows Vista, 7, 8, 8.1 or later. 
  2. Requires the D3DX9_43.dll and D3DX10_43.dll installed on the end-user PC as part of the DirectX Runtime (see below). 
  3. Requires a DirectX10 compatible GPU or later

SciChart performs these checks automatically via the Direct3D10CompatibilityHelper class

If any of the above checks fail, the InitializationFailed event is raised, giving you a chance to fall back to software rendering.

/// <summary>
/// A helper class which can be used to detect if the Direct3D10 enhancements to SciChart can run on the current hardware & operating system
/// </summary>
public static class Direct3D10CompatibilityHelper
{
	/// <summary>
	/// Supported operating systems include Windows Vista, Windows 7, Windows 8, 8.1 and up. Windows XP, 2000, 2003 are not supported. 
	/// </summary>
	public static bool IsSupportedOperatingSystem { get; ; }

	/// <summary>
	/// Determines if the DirectX10 Runtime Libraries can be found in the C:\Windows\System32 and C:\Windows\SysWow64 folders. If the libraries are not present, we recommend 
	/// installing the DirectX End User Runtime (June 2010) from https://www.microsoft.com/en-gb/download/details.aspx?id=8109. 
	/// This installs platform specific libraries (x86, x64) and SciChart dynamically chooses the correct DirectX version at runtime
	/// </summary>        
	public static bool HasDirectX10RuntimeInstalled { get; ; }

	/// <summary>
	/// Determines if the current GPU supports DirectX10 or later
	/// </summary>
	public static bool HasDirectX10CapableGpu { get; ; }

	/// <summary>
	/// Determines if the current hardware & software configuration fully supports DirectX10 or later
	/// </summary>
	public static bool SupportsDirectX10 { get { return IsSupportedOperatingSystem && HasDirectX10RuntimeInstalled && HasDirectX10CapableGpu; } }
}

 

Deploying the DirectX Renderer Plugin - DirectX Runtime

The SciChart Direct3D10RenderSurface requires the DirectX D3DX Runtime to be installed. Specifically, it has a dependence on D3DX9_43.dll and D3DX10_43.dll. These are not packaged with Windows Vista, 7 or 8 by default and must be deployed with your application so that end-users can benefit from the SciChart Direct3D10RenderSurface.

 

Locating the DXSetup.exe files in the Install Directory

The SciChart v3.3 (and above) installer now silently installs the DirectX Runtime onto developer PCs. You can locate the files as follows. They are found in the %SciChart Install Dir%\Prerequisites\DirectX folder. 

 

Deploying your Application with DXSetup.exe

We recommend that when you deploy your SciChart application which uses the Direct3D10RenderSurface, that you also deploy DXSetup.exe found in the %SciChart Install Dir%\Prerequisites\DirectX folder

You can install DXSetup.exe silently by calling the command line DXSetup.exe \silent

Please note: DXSetup.exe should not be run on Windows XP, but only Vista, 7, 8, 8.1 or above. 

 

Q: Why can't I just deploy D3DX9_43.dll and D3DX10_43.dll? 

A: Technically, it is possible to do this, however it breaks the DirectX Runtime EULA!

We discovered recently that although it is technically feasible to deploy just the requried DLLs with your application, it is not permitted by the DirectX Runtime EULA. As a result, the only permitted deployment by the Microsoft DirectX EULA is to include DXSetup.exe and the supported CAB files with your application, and run the installer silently as part of your application deployment. 

 

Testing your Application with Direct3D10RenderSurface

If you are deploying to a wide variety of harward, we recommend that you test your application which uses the Direct3D10RenderSurface on computers that do not support DirectX10, for instance, Windows XP machines, or machines without a DirectX10 compatible GPU installed, in order to check that the fallback to software rendering has been installed correctly. 

 

 

 

(6 vote(s))
Helpful
Not helpful

Comments (0)

CONTACT US

Not sure where to start? Contact us, we are happy to help!


CONTACT US

SciChart Ltd, 16 Beaufort Court, Admirals Way, Docklands, London, E14 9XL. Email: Legal Company Number: 07430048, VAT Number: 101957725