mfxStatus D3D11FrameAllocator::Close() { mfxStatus sts = BaseFrameAllocator::Close(); for(referenceType i = m_resourcesByRequest.begin(); i != m_resourcesByRequest.end(); i++) { i->Release(); } m_resourcesByRequest.clear(); m_memIdMap.clear(); MSDK_SAFE_RELEASE(m_pDeviceContext); return sts; }
void CD3D9Device::Close() { MSDK_SAFE_RELEASE(m_pDXVAVP_Left); MSDK_SAFE_RELEASE(m_pDXVAVP_Right); MSDK_SAFE_RELEASE(m_pDXVAVPS); MSDK_SAFE_RELEASE(m_pDeviceManager9); MSDK_SAFE_RELEASE(m_pD3DD9); MSDK_SAFE_RELEASE(m_pD3D9); m_pS3DControl = NULL; }
mfxStatus D3D11FrameAllocator::Init(mfxAllocatorParams *pParams) { D3D11AllocatorParams *pd3d11Params = 0; pd3d11Params = dynamic_cast<D3D11AllocatorParams *>(pParams); if (NULL == pd3d11Params || NULL == pd3d11Params->pDevice) { return MFX_ERR_NOT_INITIALIZED; } m_initParams = *pd3d11Params; MSDK_SAFE_RELEASE(m_pDeviceContext); pd3d11Params->pDevice->GetImmediateContext(&m_pDeviceContext); return MFX_ERR_NONE; }
bool CD3D9Device::CheckOverlaySupport() { D3DCAPS9 d3d9caps; D3DOVERLAYCAPS d3doverlaycaps = {0}; IDirect3D9ExOverlayExtension *d3d9overlay = NULL; bool overlaySupported = false; memset(&d3d9caps, 0, sizeof(d3d9caps)); HRESULT hr = m_pD3D9->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &d3d9caps); if (FAILED(hr) || !(d3d9caps.Caps & D3DCAPS_OVERLAY)) { overlaySupported = false; } else { hr = m_pD3D9->QueryInterface(IID_PPV_ARGS(&d3d9overlay)); if (FAILED(hr) || (d3d9overlay == NULL)) { overlaySupported = false; } else { hr = d3d9overlay->CheckDeviceOverlayType(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_D3DPP.BackBufferWidth, m_D3DPP.BackBufferHeight, m_D3DPP.BackBufferFormat, NULL, D3DDISPLAYROTATION_IDENTITY, &d3doverlaycaps); MSDK_SAFE_RELEASE(d3d9overlay); if (FAILED(hr)) { overlaySupported = false; } else { overlaySupported = true; } } } return overlaySupported; }