/// <inheritdoc/> public void SetWindow(CoreWindow window) { this.window = window; // Safely dispose any previous instance RemoveAndDispose(ref deviceManager); RemoveAndDispose(ref target); RemoveAndDispose(ref cubeRenderer); // Creates a new DeviceManager (Direct3D, Direct2D, DirectWrite, WIC) deviceManager = ToDispose(new DeviceManager()); // Use CoreWindowTarget as the rendering target (Initialize SwapChain, RenderTargetView, DepthStencilView, BitmapTarget) target = ToDispose(new CoreWindowTarget(window)); // New CubeRenderer cubeRenderer = ToDispose(new CubeRenderer()); var fpsRenderer = new FpsRenderer(); // Add Initializer to device manager deviceManager.OnInitialize += target.Initialize; deviceManager.OnInitialize += cubeRenderer.Initialize; deviceManager.OnInitialize += fpsRenderer.Initialize; // Render the cube within the CoreWindow target.OnRender += cubeRenderer.Render; target.OnRender += fpsRenderer.Render; // Initialize the device manager and all registered deviceManager.OnInitialize deviceManager.Initialize(DisplayProperties.LogicalDpi); }
public Direct3DUserControl() { this.InitializeComponent(); // do not initialize D3D in design mode as it may cause designer crashes if(Windows.ApplicationModel.DesignMode.DesignModeEnabled) 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 += 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; }
/// <summary> /// Invoked when the application is launched normally by the end user. Other entry points /// will be used when the application is launched to open a specific file, to display /// search results, and so forth. /// </summary> /// <param name="args">Details about the launch request and process.</param> protected override void OnLaunched(LaunchActivatedEventArgs args) { if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) { //TODO: Load state from previously suspended application } // 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; // Place the frame in the current Window and ensure that it is active var swapchainPanel = new DirectXPanelXaml(cubeRenderer, shapeRenderer); Window.Current.Content = swapchainPanel; Window.Current.Activate(); // Use CoreWindowTarget as the rendering target (Initialize SwapChain, RenderTargetView, DepthStencilView, BitmapTarget) target = new SwapChainBackgroundPanelTarget(swapchainPanel); // 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; }
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; }
public DirectXPanelXaml(CubeRenderer cubeRenderer, ShapeRenderer shapeRenderer) { this.cubeRenderer = cubeRenderer; this.shapeRenderer = shapeRenderer; this.InitializeComponent(); }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. The Parameter /// property is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { d3dDragHandler = new DragHandler(d3dCanvas) { CursorOver = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.SizeAll, 1) }; d2dDragHandler = new DragHandler(d2dCanvas) { CursorOver = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.SizeAll, 1) }; d3dBrush = new ImageBrush(); d3dRectangle.Fill = d3dBrush; d2dBrush = new ImageBrush(); d2dRectangle.Fill = d2dBrush; // Safely dispose any previous instance // Creates a new DeviceManager (Direct3D, Direct2D, DirectWrite, WIC) deviceManager = new DeviceManager(); // New CubeRenderer cubeRenderer = new CubeRenderer(); shapeRenderer = new ShapeRenderer(); int pixelWidth = (int)(d3dRectangle.Width * DisplayProperties.LogicalDpi / 96.0); int pixelHeight = (int)(d3dRectangle.Height * DisplayProperties.LogicalDpi / 96.0); // Use CoreWindowTarget as the rendering target (Initialize SwapChain, RenderTargetView, DepthStencilView, BitmapTarget) d3dTarget = new SurfaceImageSourceTarget(pixelWidth, pixelHeight); d3dBrush.ImageSource = d3dTarget.ImageSource; d2dTarget = new SurfaceImageSourceTarget(pixelWidth, pixelHeight); d2dBrush.ImageSource = d2dTarget.ImageSource; // Add Initializer to device manager deviceManager.OnInitialize += d3dTarget.Initialize; deviceManager.OnInitialize += d2dTarget.Initialize; deviceManager.OnInitialize += cubeRenderer.Initialize; deviceManager.OnInitialize += shapeRenderer.Initialize; // Render the cube within the CoreWindow d3dTarget.OnRender += cubeRenderer.Render; d2dTarget.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; }