private void StartD3D() { DeviceCreationFlags creationFlags = DeviceCreationFlags.BgraSupport; #if DEBUG creationFlags |= DeviceCreationFlags.Debug; #endif this.Device = new Device(DriverType.Hardware, creationFlags, FeatureLevel.Level_11_0); this.D3DSurface = new DX11ImageSource(); this.D3DSurface.IsFrontBufferAvailableChanged += OnIsFrontBufferAvailableChanged; this.CreateAndBindTargets(); this.Source = this.D3DSurface; }
public void SetRenderTargetDX11(SlimDX.Direct3D11.Texture2D renderTarget) { if (this.RenderTarget != null) { this.RenderTarget = null; base.Lock(); base.SetBackBuffer(D3DResourceType.IDirect3DSurface9, IntPtr.Zero); base.Unlock(); } if (renderTarget == null) { return; } if (!IsShareable(renderTarget)) { throw new ArgumentException("Texture must be created with ResourceOptionFlags.Shared"); } Format format = DX11ImageSource.TranslateFormat(renderTarget); if (format == Format.Unknown) { throw new ArgumentException("Texture format is not compatible with OpenSharedResource"); } IntPtr handle = GetSharedHandle(renderTarget); if (handle == IntPtr.Zero) { throw new ArgumentNullException("Handle"); } this.RenderTarget = new Texture(DX11ImageSource.D3DDevice, renderTarget.Description.Width, renderTarget.Description.Height, 1, Usage.RenderTarget, format, Pool.Default, ref handle); this.RenderTargetSurface = this.RenderTarget.GetSurfaceLevel(0); base.Lock(); base.SetBackBuffer(D3DResourceType.IDirect3DSurface9, RenderTargetSurface.ComPointer); // Changed NativePtr to ComPtr base.Unlock(); }
private void StartD3D() { DeviceCreationFlags creationFlags = DeviceCreationFlags.BgraSupport; #if DEBUG creationFlags |= DeviceCreationFlags.Debug; #endif this.Device = new Device(SharpDX.Direct3D.DriverType.Hardware, creationFlags, FeatureLevel.Level_11_0); this.D3DSurface = new DX11ImageSource(); this.D3DSurface.IsFrontBufferAvailableChanged += OnIsFrontBufferAvailableChanged; this.CreateAndBindTargets(); this.Source = this.D3DSurface; }