Example #1
0
        static public void DisposeAll()
        {
            effect.Dispose();
            renderview.Dispose();
            backbuffer.Dispose();
            device.Dispose();
            swapchain.Dispose();

            Diffuse.Dispose();
            Diffuse2.Dispose();
            Diffuse3.Dispose();
            BumpMap.Dispose();
            Reflection.Dispose();
            DiffuseResource.Dispose();
            Diffuse2Resource.Dispose();
            Diffuse3Resource.Dispose();
            BumpMapResource.Dispose();
            ReflectionResource.Dispose();

            for (int i = 0; i < Boxes.Count; i++)
            {
                Boxes[i].VertexStream.Dispose();
            }
            Boxes.Clear();
            BoxMatrices.Clear();

            for (int i = 0; i < Engine.Actors.Count; i++)
            {
                //jak to dokladnie nalezy zdisposowac ?
                Engine.Actors[i].Dispose();
            }
        }
Example #2
0
 static public void DisposeAll()
 {
     effect.Dispose();
     renderview.Dispose();
     backbuffer.Dispose();
     device.Dispose();
     swapchain.Dispose();
 }
Example #3
0
        internal static void EnsureD3D10()
        {
            if (Factory == null)
            {
                SlimDX.Direct3D10.Device device = new SlimDX.Direct3D10.Device(DeviceCreationFlags.None);
                device.Dispose();

                Factory = new Factory();
            }
        }
Example #4
0
        protected override void OnExit(ExitEventArgs e)
        {
            if (D3DDevice != null)
            {
                D3DDevice.Dispose();
                D3DDevice = null;
            }

            base.OnExit(e);
        }
Example #5
0
 public void Destroy()
 {
     if (device != null)
     {
         if (device.OutputMerger.BlendState != null)
         {
             device.OutputMerger.BlendState.Dispose();
         }
         device.Dispose();
     }
     if (vertexBuffer != null)
     {
         vertexBuffer.Dispose();
     }
     if (texture != null)
     {
         texture.Dispose();
     }
     if (renderTargetView != null)
     {
         renderTargetView.Dispose();
     }
     if (swapChain != null)
     {
         swapChain.Dispose();
     }
     if (effect != null)
     {
         effect.Dispose();
     }
     if (inputLayout != null)
     {
         inputLayout.Dispose();
     }
     if (textureView != null)
     {
         textureView.Dispose();
     }
     if (messageSprite != null)
     {
         messageSprite.Dispose();
     }
     if (charSheet != null)
     {
         charSheet.Dispose();
     }
     if (spriteView != null)
     {
         spriteView.Dispose();
     }
 }
        public void Dispose()
        {
            StopRender();
            WaitForCompletion();

            foreach (var view in views)
            {
                view.Dispose();
            }
            debugFont.Dispose();
            instanceBuffer.Dispose();
            device.Dispose();
            swapChain.Dispose();
        }
Example #7
0
        static void EnumerateDevices(AdapterInfo10 adapterInfo)
        {
            DriverType[] allowedTypes = { DriverType.Hardware, DriverType.Reference };

            foreach (DriverType type in allowedTypes)
            {
                if (MinimumSettings != null && type != MinimumSettings.DeviceType)
                {
                    continue;
                }

                DeviceInfo10 deviceInfo = new DeviceInfo10();
                deviceInfo.AdapterOrdinal = adapterInfo.AdapterOrdinal;
                deviceInfo.DriverType     = type;
                SlimDX.Direct3D10.Device device;

                try
                {
                    Adapter adapter = null;
                    if (type == DriverType.Hardware)
                    {
                        adapter = adapterInfo.Adapter;
                    }
                    device = new SlimDX.Direct3D10.Device(adapter, type, DeviceCreationFlags.None);
                }
                catch (Direct3D10Exception)
                {
                    // swallow the exception
                    continue;
                }


                // if the driver type is not hardware, create a DXGI device and GetAdapter
                // from it to replace adapterInfo.Adapter
                if (type != DriverType.Hardware)
                {
                    SlimDX.DXGI.Device dxgiDevice = new SlimDX.DXGI.Device(device);
                    if (adapterInfo.Adapter != null)
                    {
                        adapterInfo.Adapter.Dispose();
                    }
                    adapterInfo.Adapter = dxgiDevice.Adapter;
                    dxgiDevice.Dispose();
                }

                device.Dispose();
                adapterInfo.Devices.Add(deviceInfo);
            }
        }
Example #8
0
        protected override void Dispose(bool disposing)
        {
            //batchManager.Dispose();
            //kBufferManager.Dispose();
            //visualEffectManager.Dispose();

            defaultBlendState.Dispose();
            defaultRasterizerState.Dispose();
            defaultDepthStencilState.Dispose();

            defaultRenderTargetView.Dispose();

            swapChain.Dispose();
            device.Dispose();
            factory.Dispose();
        }
Example #9
0
        static void BuildMultisampleList(Format backBufferFormat, SettingsCombo10 combo)
        {
            Adapter adapter = null;

            if (combo.DriverType == DriverType.Hardware)
            {
                adapter = GraphicsDeviceManager.Factory.GetAdapter(combo.AdapterOrdinal);
            }
            SlimDX.Direct3D10.Device device;

            try
            {
                device = new SlimDX.Direct3D10.Device(adapter, combo.DriverType, DeviceCreationFlags.None);
            }
            catch (Direct3D10Exception)
            {
                // no good
                if (adapter != null)
                {
                    adapter.Dispose();
                }
                return;
            }

            for (int i = 1; i <= SlimDX.Direct3D10.Device.MultisampleCountMaximum; i++)
            {
                try
                {
                    int quality = device.CheckMultisampleQualityLevels(backBufferFormat, i);
                    combo.MultisampleCounts.Add(i);
                    combo.MultisampleQualities.Add(quality);
                }
                catch (Direct3D10Exception)
                {
                    // eat the exception
                }
            }

            device.Dispose();

            if (adapter != null)
            {
                adapter.Dispose();
            }
        }
Example #10
0
        /// <summary>
        /// Releases unmanaged and - optionally - managed resources
        /// </summary>
        /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        protected override void Dispose(bool disposing)
        {
            if (!base.IsDisposed)
            {
                if (disposing)
                {
                    //Clear references
                    Array.Clear(_currentVertexBuffers, 0, _currentVertexBufferCount);
                    Array.Clear(_vertexBindings, 0, _currentVertexBufferCount);
                    _renderTargetManager.ClearAll();

                    _tracker.ReleaseAllResources();
                    _graphicsDevice.ClearState();
                    _graphicsDevice.Dispose();
                    _factory.Dispose();
                }
                base.Dispose(disposing);
#if DEBUG
                System.Diagnostics.Debug.Write(SlimDX.ObjectTable.ReportLeaks());
#endif
            }
        }