protected override void Initialize(DemoConfiguration demoConfiguration) { base.Initialize(demoConfiguration); // Initialize a TextFormat TextFormat = new TextFormat(FactoryDWrite, "Calibri", 128) {TextAlignment = TextAlignment.Center, ParagraphAlignment = ParagraphAlignment.Center}; RenderTarget2D.TextAntialiasMode = TextAntialiasMode.Cleartype; // Initialize a TextLayout TextLayout = new TextLayout(FactoryDWrite, "SharpDX D2D1 - DWrite", TextFormat, demoConfiguration.Width, demoConfiguration.Height); }
protected override void Initialize(DemoConfiguration demoConfiguration) { // SwapChain description var desc = new SwapChainDescription() { BufferCount = 1, ModeDescription = new ModeDescription(demoConfiguration.Width, demoConfiguration.Height, new Rational(60, 1), Format.R8G8B8A8_UNorm), IsWindowed = true, OutputHandle = DisplayHandle, SampleDescription = new SampleDescription(1, 0), SwapEffect = SwapEffect.Discard, Usage = Usage.RenderTargetOutput }; // Create Device and SwapChain Device1.CreateWithSwapChain(DriverType.Hardware, DeviceCreationFlags.BgraSupport, desc, FeatureLevel.Level_10_0, out _device, out _swapChain); // Ignore all windows events Factory factory = _swapChain.GetParent <Factory>(); factory.MakeWindowAssociation(DisplayHandle, WindowAssociationFlags.IgnoreAll); // New RenderTargetView from the backbuffer _backBuffer = Texture2D.FromSwapChain <Texture2D>(_swapChain, 0); _backBufferView = new RenderTargetView(_device, _backBuffer); }
/// <summary> /// Create Form for this demo. /// </summary> /// <param name="config"></param> /// <returns></returns> protected virtual Form CreateForm(DemoConfiguration config) { return(new RenderForm(config.Title) { ClientSize = new System.Drawing.Size(config.Width, config.Height) }); }
protected override void Initialize(DemoConfiguration demoConfiguration) { base.Initialize(demoConfiguration); // Initialize the Font FontDescription fontDescription = new FontDescription() { Height = 72, Italic = false, CharacterSet = FontCharacterSet.Ansi, FaceName = "Arial", MipLevels = 0, OutputPrecision = FontPrecision.TrueType, PitchAndFamily = FontPitchAndFamily.Default, Quality = FontQuality.ClearType, Weight = FontWeight.Bold }; font = new Font(Device, fontDescription); // Measure the text to display fontDimension = font.Measure(null, DisplayText, new Rectangle(0, 0, 800, 600), FontDrawFlags.Center | FontDrawFlags.VerticalCenter); xDir = 1; yDir = 1; }
protected override void Initialize(DemoConfiguration demoConfiguration) { // SwapChain description var desc = new SwapChainDescription() { BufferCount = 1, ModeDescription = new ModeDescription(demoConfiguration.Width, demoConfiguration.Height, new Rational(60, 1), Format.R8G8B8A8_UNorm), IsWindowed = true, OutputHandle = DisplayHandle, SampleDescription = new SampleDescription(1, 0), SwapEffect = SwapEffect.Discard, Usage = Usage.RenderTargetOutput }; // Create Device and SwapChain Device1.CreateWithSwapChain(DriverType.Hardware, DeviceCreationFlags.BgraSupport, desc, FeatureLevel.Level_10_0, out _device, out _swapChain); // Ignore all windows events Factory factory = _swapChain.GetParent<Factory>(); factory.MakeWindowAssociation(DisplayHandle, WindowAssociationFlags.IgnoreAll); // New RenderTargetView from the backbuffer _backBuffer = Texture2D.FromSwapChain<Texture2D>(_swapChain, 0); _backBufferView = new RenderTargetView(_device, _backBuffer); }
/// <summary> /// Create Form for this demo. /// </summary> /// <param name="config"></param> /// <returns></returns> protected virtual Form CreateForm(DemoConfiguration config) { return(new RenderForm(config.Title) { ClientSize = new System.Drawing.Size(config.Width, config.Height), FormBorderStyle = config.HideWindowFrames ? System.Windows.Forms.FormBorderStyle.None : System.Windows.Forms.FormBorderStyle.FixedSingle }); }
/// <summary> /// Runs the demo. /// </summary> public void Run(DemoConfiguration demoConfiguration) { _demoConfiguration = demoConfiguration ?? new DemoConfiguration(); _form = CreateForm(_demoConfiguration); Initialize(_demoConfiguration); bool isFormClosed = false; bool formIsResizing = false; _form.MouseClick += HandleMouseClick; _form.KeyDown += HandleKeyDown; _form.KeyUp += HandleKeyUp; _form.Resize += (o, args) => { if (_form.WindowState != _currentFormWindowState) { HandleResize(o, args); } _currentFormWindowState = _form.WindowState; }; _form.ResizeBegin += (o, args) => { formIsResizing = true; }; _form.ResizeEnd += (o, args) => { formIsResizing = false; HandleResize(o, args); }; _form.Closed += (o, args) => { isFormClosed = true; }; LoadContent(); clock.Start(); BeginRun(); RenderLoop.Run(_form, () => { if (isFormClosed) { return; } OnUpdate(); if (!formIsResizing) { Render(); } }); UnloadContent(); EndRun(); // Dispose explicity Dispose(); }
protected override void Initialize(DemoConfiguration demoConfiguration) { base.Initialize(demoConfiguration); // Initialize a TextFormat TextFormat = new TextFormat(FactoryDWrite, "Gabriola", 96) { TextAlignment = TextAlignment.Center, ParagraphAlignment = ParagraphAlignment.Center }; RenderTarget2D.TextAntialiasMode = TextAntialiasMode.Cleartype; ClientRectangle = new RectangleF(0, 0, demoConfiguration.Width, demoConfiguration.Height); SceneColorBrush.Color = Color.Black; }
protected override void Initialize(DemoConfiguration demoConfiguration) { base.Initialize(demoConfiguration); Factory2D = new SharpDX.Direct2D1.Factory(); using (var surface = BackBuffer.QueryInterface<Surface>()) { RenderTarget2D = new RenderTarget(Factory2D, surface, new RenderTargetProperties(new PixelFormat(Format.Unknown, AlphaMode.Premultiplied))); } RenderTarget2D.AntialiasMode = AntialiasMode.PerPrimitive; FactoryDWrite = new SharpDX.DirectWrite.Factory(); SceneColorBrush = new SolidColorBrush(RenderTarget2D, Color.White); }
protected override void Initialize(DemoConfiguration demoConfiguration) { base.Initialize(demoConfiguration); Factory2D = new SharpDX.Direct2D1.Factory(); using (var surface = BackBuffer.QueryInterface <Surface>()) { RenderTarget2D = new RenderTarget(Factory2D, surface, new RenderTargetProperties(new PixelFormat(Format.Unknown, AlphaMode.Premultiplied))); } RenderTarget2D.AntialiasMode = AntialiasMode.PerPrimitive; FactoryDWrite = new SharpDX.DirectWrite.Factory(); SceneColorBrush = new SolidColorBrush(RenderTarget2D, Color.White); }
protected override void Initialize(DemoConfiguration demoConfiguration) { Factory2D = new SharpDX.Direct2D1.Factory(); FactoryDWrite = new SharpDX.DirectWrite.Factory(); HwndRenderTargetProperties properties = new HwndRenderTargetProperties(); properties.Hwnd = DisplayHandle; properties.PixelSize = new System.Drawing.Size(demoConfiguration.Width, demoConfiguration.Height); properties.PresentOptions = PresentOptions.None; RenderTarget2D = new WindowRenderTarget(Factory2D, new RenderTargetProperties(new PixelFormat(Format.Unknown, AlphaMode.Premultiplied)), properties); RenderTarget2D.AntialiasMode = AntialiasMode.PerPrimitive; SceneColorBrush = new SolidColorBrush(RenderTarget2D, new Color4(1, 1, 1, 1)); }
protected override void Initialize(DemoConfiguration demoConfiguration) { // SwapChain description var desc = new SwapChainDescription() { BufferCount = 1, ModeDescription = new ModeDescription(demoConfiguration.Width, demoConfiguration.Height, new Rational(60, 1), Format.R8G8B8A8_UNorm), IsWindowed = true, OutputHandle = DisplayHandle, SampleDescription = new SampleDescription(1, 0), SwapEffect = SwapEffect.Discard, Usage = Usage.RenderTargetOutput }; // Create Device and SwapChain Direct3D11.Device.CreateWithSwapChain(DriverType.Hardware, DeviceCreationFlags.BgraSupport, new [] { FeatureLevel.Level_10_0 }, desc, out _device, out _swapChain); // Ignore all windows events Factory factory = _swapChain.GetParent <Factory>(); factory.MakeWindowAssociation(DisplayHandle, WindowAssociationFlags.IgnoreAll); // New RenderTargetView from the backbuffer _backBuffer = Texture2D.FromSwapChain <Texture2D>(_swapChain, 0); _backBufferView = new RenderTargetView(_device, _backBuffer); // Create the depth buffer var depthBuffer = new Texture2D(Device, new Texture2DDescription() { Format = Format.D32_Float_S8X24_UInt, ArraySize = 1, MipLevels = 1, Width = Config.Width, Height = Config.Height, SampleDescription = new SampleDescription(1, 0), Usage = ResourceUsage.Default, BindFlags = BindFlags.DepthStencil, CpuAccessFlags = CpuAccessFlags.None, OptionFlags = ResourceOptionFlags.None }); // Create the depth buffer view depthView = new DepthStencilView(Device, depthBuffer); }
/// <summary> /// Runs the demo. /// </summary> public void Run(DemoConfiguration demoConfiguration) { Config = demoConfiguration ?? new DemoConfiguration(); _form = CreateForm(Config); // disable resizing and center on screen _form.FormBorderStyle = FormBorderStyle.FixedSingle; _form.MaximizeBox = false; _form.StartPosition = FormStartPosition.CenterScreen; Initialize(Config); var isFormClosed = false; _form.MouseClick += HandleMouseClick; _form.KeyDown += HandleKeyDown; _form.KeyUp += HandleKeyUp; _form.Resize += (o, args) => { _currentFormWindowState = _form.WindowState; }; // ReSharper disable once ImplicitlyCapturedClosure _form.Closed += (o, args) => isFormClosed = true; LoadContent(); _clock.Start(); BeginRun(); RenderLoop.Run(_form, () => { if (isFormClosed) { return; } OnUpdate(); Render(); }); UnloadContent(); EndRun(); // Dispose explicity Dispose(); }
protected override void Initialize(DemoConfiguration demoConfiguration) { Factory2D = new SharpDX.Direct2D1.Factory(); FactoryDWrite = new SharpDX.DirectWrite.Factory(); HwndRenderTargetProperties properties = new HwndRenderTargetProperties(); properties.Hwnd = DisplayHandle; properties.PixelSize = new SharpDX.Size2(demoConfiguration.Width, demoConfiguration.Height); properties.PresentOptions = PresentOptions.None; RenderTarget2D = new WindowRenderTarget(Factory2D, new RenderTargetProperties(new PixelFormat(Format.Unknown, AlphaMode.Premultiplied)), properties); RenderTarget2D.AntialiasMode = AntialiasMode.PerPrimitive; SceneColorBrush = new SolidColorBrush(RenderTarget2D, Color.White); }
protected override void Initialize(DemoConfiguration demoConfiguration) { base.Initialize(demoConfiguration); // Create an ellipse Ellipse = new EllipseGeometry(Factory2D, new Ellipse(new Vector2(demoConfiguration.Width/2, demoConfiguration.Height/2), demoConfiguration.Width/2 - 100, demoConfiguration.Height/2 - 100)); // Populate a PathGeometry from Ellipse tessellation TesselatedGeometry = new PathGeometry(Factory2D); GeometrySink = TesselatedGeometry.Open(); // Force RoundLineJoin otherwise the tesselated looks buggy at line joins GeometrySink.SetSegmentFlags(PathSegment.ForceRoundLineJoin); // Tesselate the ellipse to our TessellationSink Ellipse.Tessellate(1, this); // Close the GeometrySink GeometrySink.Close(); }
protected override void Initialize(DemoConfiguration demoConfiguration) { base.Initialize(demoConfiguration); _bitmap = LoadFromFile(RenderTarget2D, "sharpdx.png"); }
/// <summary> /// In a derived class, implements logic to initialize the sample. /// </summary> protected abstract void Initialize(DemoConfiguration demoConfiguration);
/// <summary> /// Create Form for this demo. /// </summary> /// <param name="config"></param> /// <returns></returns> protected virtual Form CreateForm(DemoConfiguration config) { return new RenderForm(config.Title) { ClientSize = new System.Drawing.Size(config.Width, config.Height) }; }
/// <summary> /// Runs the demo. /// </summary> public void Run(DemoConfiguration demoConfiguration) { _demoConfiguration = demoConfiguration ?? new DemoConfiguration(); _form = CreateForm(_demoConfiguration); Initialize(_demoConfiguration); bool isFormClosed = false; bool formIsResizing = false; _form.MouseClick += HandleMouseClick; _form.KeyDown += HandleKeyDown; _form.KeyUp += HandleKeyUp; _form.Resize += (o, args) => { if (_form.WindowState != _currentFormWindowState) { HandleResize(o, args); } _currentFormWindowState = _form.WindowState; }; _form.ResizeBegin += (o, args) => { formIsResizing = true; }; _form.ResizeEnd += (o, args) => { formIsResizing = false; HandleResize(o, args); }; _form.Closed += (o, args) => { isFormClosed = true; }; LoadContent(); clock.Start(); BeginRun(); RenderLoop.Run(_form, () => { if (isFormClosed) { return; } OnUpdate(); if (!formIsResizing) Render(); }); UnloadContent(); EndRun(); // Dispose explicity Dispose(); }