コード例 #1
0
ファイル: Game.cs プロジェクト: rtshadow/miscs
        /// <summary>
        /// Basic DX10 initialization. It contains: creating a window, device, swap chain, render targets, viewPort
        /// </summary>
        private void InitializeDX()
        {
            //Initializing window
            window = new Form();
            window.ClientSize = new Size(width, height);
            window.Text = "Quinta Essentia Engine ver. 0.03";

            //Creating device and swap chain (first filling the description structures)
            modeDesc = new SlimDX.DXGI.ModeDescription();
            modeDesc.Format = DXGI.Format.R8G8B8A8_UNorm;
            modeDesc.RefreshRate = new Rational(60, 1);
            modeDesc.Scaling = DXGI.DisplayModeScaling.Unspecified;
            modeDesc.ScanlineOrdering = DXGI.DisplayModeScanlineOrdering.Unspecified;
            modeDesc.Width = width;
            modeDesc.Height = height;

            DXGI.SampleDescription sampleDesc = new SlimDX.DXGI.SampleDescription();
            sampleDesc.Count = 1;
            sampleDesc.Quality = 0;

            DXGI.SwapChainDescription swapDesc = new SlimDX.DXGI.SwapChainDescription();
            swapDesc.BufferCount = 1;
            swapDesc.IsWindowed = windowed;
            swapDesc.Flags = DXGI.SwapChainFlags.AllowModeSwitch;
            swapDesc.ModeDescription = modeDesc;
            swapDesc.OutputHandle = window.Handle;
            swapDesc.SampleDescription = sampleDesc;
            swapDesc.SwapEffect = DXGI.SwapEffect.Discard;
            swapDesc.Usage = DXGI.Usage.RenderTargetOutput;
            //DEBUG FLAG ON!!! REMEMBER THIS!
            D3D10.Device.CreateWithSwapChain(null, SlimDX.Direct3D10.DriverType.Hardware,
                SlimDX.Direct3D10.DeviceCreationFlags.Debug, swapDesc, out device, out swapChain);

            //making and setting the new viewport
            viewPort = new Viewport();
            viewPort.Height = height;
            viewPort.Width = width;
            viewPort.MaxZ = 1.0f;
            viewPort.MinZ = 0.0f;
            viewPort.X = 0;
            viewPort.Y = 0;

            device.Rasterizer.SetViewports(viewPort);

            //making main render target (it is bind with back buffer of swap chain)
            using (D3D10.Texture2D temp = swapChain.GetBuffer<D3D10.Texture2D>(0))
            {
                renderTarget = new SlimDX.Direct3D10.RenderTargetView(device, temp);
            }
            CreateDepthStencil();
            device.OutputMerger.SetTargets(depthStencilView, renderTarget);
        }
コード例 #2
0
ファイル: D3DDevice.cs プロジェクト: adrianj/Direct3D-Testing
        public virtual void Init(D3DHostControl control)
        {
            DisposeManaged();

            this.control = control;
            DXGI.SampleDescription sampledesc = new SlimDX.DXGI.SampleDescription(1, 0);
            DXGI.ModeDescription modedesc = new SlimDX.DXGI.ModeDescription()
            {
                Format = DXGI.Format.R8G8B8A8_UNorm,
                RefreshRate = new Rational(60, 1),
                Width = control.Width,
                Height = control.Height
            };

            DXGI.SwapChainDescription swapchaindesc = new SlimDX.DXGI.SwapChainDescription()
            {
                ModeDescription = modedesc,
                SampleDescription = sampledesc,
                BufferCount = 1,
                Flags = DXGI.SwapChainFlags.None,
                IsWindowed = true,
                OutputHandle = control.Handle,
                SwapEffect = DXGI.SwapEffect.Discard,
                Usage = DXGI.Usage.RenderTargetOutput
            };

            D3D.DeviceCreationFlags deviceflags = D3D.DeviceCreationFlags.None;

            D3D.Device device = null;
            DXGI.SwapChain swapchain = null;
            D3D.Device.CreateWithSwapChain(null, D3D.DriverType.Hardware, deviceflags, swapchaindesc, out device, out swapchain);
            this.Device = device;
            this.SwapChain = swapchain;

            SetSize(control.Width, control.Height);
            SetBlendState(true);
        }