private void Init() { // Safely dispose any previous instance // Creates a new DeviceManager (Direct3D, Direct2D, DirectWrite, WIC) deviceManager = new DeviceManager(); // New CubeRenderer cubeRenderer = new CubeRenderer(); cubeRenderer.ShowCube = true; shapeRenderer = new ShapeRenderer(); shapeRenderer.Show = false; shapeRenderer.EnableClear = false; // Use CoreWindowTarget as the rendering target (Initialize SwapChain, RenderTargetView, DepthStencilView, BitmapTarget) target = new SwapChainPanelTarget(scpMain); // Add Initializer to device manager deviceManager.OnInitialize += target.Initialize; deviceManager.OnInitialize += cubeRenderer.Initialize; deviceManager.OnInitialize += shapeRenderer.Initialize; // Render the cube within the CoreWindow target.OnRender += cubeRenderer.Render; target.OnRender += shapeRenderer.Render; // Initialize the device manager and all registered deviceManager.OnInitialize deviceManager.Initialize(DisplayProperties.LogicalDpi); // Setup rendering callback CompositionTarget.Rendering += CompositionTarget_Rendering; // Callback on DpiChanged DisplayProperties.LogicalDpiChanged += DisplayProperties_LogicalDpiChanged; }
void Direct3DUserControl_Loaded(object sender, RoutedEventArgs e) { // Do not initialize D3D in design mode as default, since it may cause designer crashes if (Windows.ApplicationModel.DesignMode.DesignModeEnabled && !DesignModeD3DRendering) { return; } // Safely dispose any previous instance // Creates a new DeviceManager (Direct3D, Direct2D, DirectWrite, WIC) deviceManager = new DeviceManager(); // Use current control as the rendering target (Initialize SwapChain, RenderTargetView, DepthStencilView, BitmapTarget) target = new SwapChainPanelTarget(this); // Add Initializer to device manager deviceManager.OnInitialize += target.Initialize; // New CubeRenderer cubeRenderer = new CubeRenderer(); cubeRenderer.ShowCube = true; deviceManager.OnInitialize += cubeRenderer.Initialize; target.OnRender += cubeRenderer.Render; // New ShapeRenderer shapeRenderer = new ShapeRenderer(); shapeRenderer.Show = true; shapeRenderer.EnableClear = false; deviceManager.OnInitialize += shapeRenderer.Initialize; target.OnRender += shapeRenderer.Render; // Initialize the device manager and all registered deviceManager.OnInitialize try { deviceManager.Initialize(DisplayInformation.GetForCurrentView().LogicalDpi); DisplayInformation.GetForCurrentView().DpiChanged += DisplayInformation_LogicalDpiChanged; } catch (Exception ex) { //DisplayInformation.GetForCurrentView() will throw exception in designer deviceManager.Initialize(96.0f); } // Setup rendering callback CompositionTargetEx.Rendering += CompositionTarget_Rendering; }
public Direct3DUserControl() { this.InitializeComponent(); // Safely dispose any previous instance // Creates a new DeviceManager (Direct3D, Direct2D, DirectWrite, WIC) deviceManager = new DeviceManager(); // Use current control as the rendering target (Initialize SwapChain, RenderTargetView, DepthStencilView, BitmapTarget) target = new SwapChainPanelTarget(this); // Add Initializer to device manager deviceManager.OnInitialize += target.Initialize; // New CubeRenderer cubeRenderer = new CubeRenderer(); cubeRenderer.ShowCube = true; deviceManager.OnInitialize += cubeRenderer.Initialize; target.OnRender += cubeRenderer.Render; // New ShapeRenderer shapeRenderer = new ShapeRenderer(); shapeRenderer.Show = true; shapeRenderer.EnableClear = false; deviceManager.OnInitialize += shapeRenderer.Initialize; target.OnRender += shapeRenderer.Render; // Initialize the device manager and all registered deviceManager.OnInitialize try { deviceManager.Initialize(DisplayInformation.GetForCurrentView().LogicalDpi); DisplayInformation.GetForCurrentView().DpiChanged += DisplayProperties_LogicalDpiChanged; } catch (Exception ex) { //DisplayInformation.GetForCurrentView() will throw exception in designer deviceManager.Initialize(96.0f); } // Setup rendering callback CompositionTargetEx.Rendering += CompositionTarget_Rendering; this.LayoutUpdated += Direct3DUserControl_LayoutUpdated; }