public D3D11_VIEWPORT(ID3D11Buffer *param0, ID3D11RenderTargetView *pRTView, [NativeTypeName("FLOAT")] float topLeftX = 0.0f, [NativeTypeName("FLOAT")] float minDepth = D3D11_MIN_DEPTH, [NativeTypeName("FLOAT")] float maxDepth = D3D11_MAX_DEPTH)
        {
            D3D11_RENDER_TARGET_VIEW_DESC RTVDesc;

            pRTView->GetDesc(&RTVDesc);

            uint NumElements = 0;

            switch (RTVDesc.ViewDimension)
            {
            case D3D11_RTV_DIMENSION_BUFFER:
            {
                NumElements = RTVDesc.Anonymous.Buffer.Anonymous2.NumElements;
                break;
            }

            default:
            {
                break;
            }
            }

            TopLeftX = topLeftX;
            TopLeftY = 0.0f;
            Width    = NumElements - topLeftX;
            Height   = 1.0f;
            MinDepth = minDepth;
            MaxDepth = maxDepth;
        }
Ejemplo n.º 2
0
 static void ReleaseTextures()
 {
     if (_sharedHandle != null)
     {
         CloseHandle(_sharedHandle);
         _sharedHandle = null;
     }
     if (_textureVLC != null)
     {
         var count = _textureVLC->Release();
         Debug.Assert(count == 0);
         _textureVLC = null;
     }
     if (_textureShaderInput != null)
     {
         var count = _textureShaderInput->Release();
         Debug.Assert(count == 0);
         _textureShaderInput = null;
     }
     if (_textureRenderTarget != null)
     {
         var count = _textureRenderTarget->Release();
         Debug.Assert(count == 0);
         _textureRenderTarget = null;
     }
     if (_texture != null)
     {
         var count = _texture->Release();
         Debug.Assert(count == 0);
         _texture = null;
     }
 }
Ejemplo n.º 3
0
    protected virtual void CreateResourceViews()
    {
        _renderTargetView = CreateRenderTargetView();

        ID3D11RenderTargetView *CreateRenderTargetView()
        {
            using ComPtr <ID3D11Resource> backBuffer = null;
            ThrowIfFailed(SwapChain->GetBuffer(0, __uuidof <ID3D11Texture2D>(), (void **)backBuffer.GetAddressOf()));

            ID3D11RenderTargetView *renderTargetView;

            ThrowIfFailed(D3DDevice->CreateRenderTargetView(backBuffer.Get(), null, &renderTargetView));
            return(renderTargetView);
        }
    }
Ejemplo n.º 4
0
    protected virtual void DestroyResourceViews()
    {
        DestroyRenderTargetView();

        void DestroyRenderTargetView()
        {
            var renderTargetView = _renderTargetView;

            if (renderTargetView != null)
            {
                _renderTargetView = null;
                _ = renderTargetView->Release();
            }
        }
    }
        public D3D11_VIEWPORT(ID3D11Texture2D *pTex2D, ID3D11RenderTargetView *pRTView, [NativeTypeName("FLOAT")] float topLeftX = 0.0f, [NativeTypeName("FLOAT")] float topLeftY = 0.0f, [NativeTypeName("FLOAT")] float minDepth = D3D11_MIN_DEPTH, [NativeTypeName("FLOAT")] float maxDepth = D3D11_MAX_DEPTH)
        {
            D3D11_TEXTURE2D_DESC TexDesc;

            pTex2D->GetDesc(&TexDesc);

            D3D11_RENDER_TARGET_VIEW_DESC RTVDesc;

            pRTView->GetDesc(&RTVDesc);

            uint MipSlice = 0;

            switch (RTVDesc.ViewDimension)
            {
            case D3D11_RTV_DIMENSION_TEXTURE2D:
            {
                MipSlice = RTVDesc.Anonymous.Texture2D.MipSlice;
                break;
            }

            case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:
            {
                MipSlice = RTVDesc.Anonymous.Texture2DArray.MipSlice;
                break;
            }

            case D3D11_RTV_DIMENSION_TEXTURE2DMS:
            case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:
            {
                break;
            }

            default:
            {
                break;
            }
            }

            var SubResourceWidth  = TexDesc.Width / (1u << unchecked ((int)MipSlice));
            var SubResourceHeight = TexDesc.Height / (1u << unchecked ((int)MipSlice));

            TopLeftX = topLeftX;
            TopLeftY = topLeftY;
            Width    = ((SubResourceWidth != 0) ? SubResourceWidth : 1) - topLeftX;
            Height   = ((SubResourceHeight != 0) ? SubResourceHeight : 1) - topLeftY;
            MinDepth = minDepth;
            MaxDepth = maxDepth;
        }
Ejemplo n.º 6
0
        protected virtual void CreateResourceViews()
        {
            _renderTargetView = CreateRenderTargetView();

            ID3D11RenderTargetView *CreateRenderTargetView()
            {
                using ComPtr <ID3D11Resource> backBuffer = null;

                var iid = IID_ID3D11Texture2D;

                ThrowIfFailed(nameof(IDXGISwapChain.GetBuffer), SwapChain->GetBuffer(0, &iid, (void **)backBuffer.GetAddressOf()));

                ID3D11RenderTargetView *renderTargetView;

                ThrowIfFailed(nameof(ID3D11Device.CreateRenderTargetView), D3DDevice->CreateRenderTargetView(backBuffer.Get(), null, &renderTargetView));
                return(renderTargetView);
            }
        }
Ejemplo n.º 7
0
        protected override void Dispose(bool isDisposing)
        {
            var swapChain = _swapChain;

            if (swapChain != null)
            {
                _swapChain = null;
                _          = swapChain->Release();
            }

            var immediateContext = _immediateContext;

            if (immediateContext != null)
            {
                _immediateContext = null;
                _ = immediateContext->Release();
            }

            var device = _device;

            if (device != null)
            {
                _device = null;
                _       = device->Release();
            }

            var renderTarget = _renderTarget;

            if (renderTarget != null)
            {
                _renderTarget = null;
                _             = renderTarget->Release();
            }

            base.Dispose(isDisposing);
        }
Ejemplo n.º 8
0
 public void ClearRenderTargetView([NativeTypeName("ID3D11RenderTargetView *")] ID3D11RenderTargetView *pRenderTargetView, [NativeTypeName("const FLOAT [4]")] float *ColorRGBA)
 {
     ((delegate * stdcall <ID3D11DeviceContext *, ID3D11RenderTargetView *, float *, void>)(lpVtbl[50]))((ID3D11DeviceContext *)Unsafe.AsPointer(ref this), pRenderTargetView, ColorRGBA);
 }
Ejemplo n.º 9
0
        protected override void Dispose(bool isDisposing)
        {
            var vertexBuffer = _vertexBuffer;

            if (vertexBuffer != null)
            {
                _vertexBuffer = null;
                _             = vertexBuffer->Release();
            }

            var inputLayout = _inputLayout;

            if (inputLayout != null)
            {
                _inputLayout = null;
                _            = inputLayout->Release();
            }

            var pixelShader = _pixelShader;

            if (pixelShader != null)
            {
                _pixelShader = null;
                _            = pixelShader->Release();
            }

            var vertexShader = _vertexShader;

            if (vertexShader != null)
            {
                _vertexShader = null;
                _             = vertexShader->Release();
            }

            var swapChain = _swapChain;

            if (swapChain != null)
            {
                _swapChain = null;
                _          = swapChain->Release();
            }

            var immediateContext = _immediateContext;

            if (immediateContext != null)
            {
                _immediateContext = null;
                _ = immediateContext->Release();
            }

            var device = _device;

            if (device != null)
            {
                _device = null;
                _       = device->Release();
            }

            var renderTarget = _renderTarget;

            if (renderTarget != null)
            {
                _renderTarget = null;
                _             = renderTarget->Release();
            }

            base.Dispose(isDisposing);
        }