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; }
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; } }
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); } }
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; }
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); } }
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); }
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); }
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); }