コード例 #1
0
ファイル: DPFCanvas.cs プロジェクト: Leo-Rain/FlowSharp
        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;
        }
コード例 #2
0
ファイル: DX11ImageSource.cs プロジェクト: Leo-Rain/FlowSharp
        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();
        }
コード例 #3
0
        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;
        }