bool CWinRenderer::Configure(unsigned int width, unsigned int height, unsigned int d_width, unsigned int d_height, float fps, unsigned flags) { if(m_sourceWidth != width || m_sourceHeight != height) { m_sourceWidth = width; m_sourceHeight = height; // need to recreate textures m_NumYV12Buffers = 0; m_iYV12RenderBuffer = 0; } m_flags = flags; // calculate the input frame aspect ratio CalculateFrameAspectRatio(d_width, d_height); ChooseBestResolution(fps); SetViewMode(g_settings.m_currentVideoSettings.m_ViewMode); ManageDisplay(); m_bConfigured = true; SelectRenderMethod(); UpdateRenderMethod(); return true; }
bool CWinRenderer::Configure(const VideoPicture &picture, float fps, unsigned flags, unsigned int orientation) { m_sourceWidth = picture.iWidth; m_sourceHeight = picture.iHeight; m_renderOrientation = orientation; // need to recreate textures m_NumYV12Buffers = 0; m_iYV12RenderBuffer = 0; // reinitialize the filters/shaders m_bFilterInitialized = false; m_fps = fps; m_iFlags = flags; m_format = picture.videoBuffer->GetFormat(); if (m_format == AV_PIX_FMT_D3D11VA_VLD) { DXVA::CDXVAOutputBuffer *dxvaBuf = static_cast<DXVA::CDXVAOutputBuffer*>(picture.videoBuffer); m_dxva_format = dxvaBuf->format; } // calculate the input frame aspect ratio CalculateFrameAspectRatio(picture.iDisplayWidth, picture.iDisplayHeight); SetViewMode(m_videoSettings.m_ViewMode); ManageRenderArea(); SelectRenderMethod(); m_bConfigured = true; // load 3DLUT ColorManagmentUpdate(); return true; }