Kodi Documentation 18.0
Kodi is an open source media player and entertainment hub.
CWinRenderer Class Reference

#include <WinRenderer.h>

Inheritance diagram for CWinRenderer:
CBaseRenderer

Public Member Functions

 CWinRenderer ()
 
 ~CWinRenderer ()
 
void Update () override
 
bool RenderCapture (CRenderCapture *capture) override
 
bool Configure (const VideoPicture &picture, float fps, unsigned int orientation) override
 
void AddVideoPicture (const VideoPicture &picture, int index) override
 
void UnInit () override
 
bool IsConfigured () override
 
bool Flush (bool saveBuffers) override
 
CRenderInfo GetRenderInfo () override
 
void RenderUpdate (int index, int index2, bool clear, unsigned int flags, unsigned int alpha) override
 
void SetBufferSize (int numBuffers) override
 
void ReleaseBuffer (int idx) override
 
bool NeedBuffer (int idx) override
 
bool SupportsMultiPassRendering () override
 
bool Supports (ERENDERFEATURE feature) override
 
bool Supports (ESCALINGMETHOD method) override
 
bool WantsDoublePass () override
 
bool ConfigChanged (const VideoPicture &picture) override
 
- Public Member Functions inherited from CBaseRenderer
 CBaseRenderer ()
 
virtual ~CBaseRenderer ()
 
virtual bool IsPictureHW (const VideoPicture &picture)
 
virtual bool IsGuiLayer ()
 
void SetViewMode (int viewMode)
 
void GetVideoRect (CRect &source, CRect &dest, CRect &view)
 Get video rectangle and view window. More...
 
float GetAspectRatio () const
 
void SetVideoSettings (const CVideoSettings &settings)
 

Static Public Member Functions

static CBaseRendererCreate (CVideoBuffer *buffer)
 
static bool Register ()
 
- Static Public Member Functions inherited from CBaseRenderer
static void SettingOptionsRenderMethodsFiller (std::shared_ptr< const CSetting > setting, std::vector< std::pair< std::string, int > > &list, int &current, void *data)
 

Protected Member Functions

void PreInit ()
 
virtual void Render (DWORD flags, CD3DTexture *target)
 
void RenderSW (CD3DTexture *target)
 
void RenderHW (DWORD flags, CD3DTexture *target)
 
void RenderPS (CD3DTexture *target)
 
void RenderHQ (CD3DTexture *target)
 
void ManageTextures ()
 
void DeleteRenderBuffer (int index)
 
bool CreateRenderBuffer (int index)
 
int NextBuffer () const
 
void SelectRenderMethod ()
 
void UpdateVideoFilter ()
 
void SelectSWVideoFilter ()
 
void SelectPSVideoFilter ()
 
void UpdatePSVideoFilter ()
 
void ColorManagmentUpdate ()
 
bool CreateIntermediateRenderTarget (unsigned int width, unsigned int height, bool dynamic)
 
EBufferFormat SelectBufferFormat (AVPixelFormat format, const RenderMethod method) const
 
AVColorPrimaries GetSrcPrimaries (AVColorPrimaries srcPrimaries, unsigned int width, unsigned int height) const
 
bool LoadCLUT ()
 
- Protected Member Functions inherited from CBaseRenderer
void CalcNormalRenderRect (float offsetX, float offsetY, float width, float height, float inputFrameRatio, float zoomAmount, float verticalShift)
 
void CalculateFrameAspectRatio (unsigned int desired_width, unsigned int desired_height)
 
virtual void ManageRenderArea ()
 
virtual void ReorderDrawPoints ()
 
virtual EShaderFormat GetShaderFormat ()
 
void MarkDirty ()
 
void saveRotatedCoords ()
 
void syncDestRectToRotatedPoints ()
 
void restoreRotatedCoords ()
 

Protected Attributes

bool m_bConfigured
 
bool m_bUseHQScaler
 
bool m_bFilterInitialized
 
bool m_cmsOn
 
bool m_clutLoaded
 
bool m_useDithering
 
bool m_toneMapping
 
unsigned int m_destWidth
 
unsigned int m_destHeight
 
unsigned int m_frameIdx
 
int m_iYV12RenderBuffer
 
int m_NumYV12Buffers
 
int m_neededBuffers
 
int m_iRequestedMethod
 
int m_cmsToken { -1 }
 
int m_CLUTSize { 0 }
 
int m_ditherDepth
 
DXGI_FORMAT m_dxva_format
 
RenderMethod m_renderMethod
 
EBufferFormat m_bufferFormat
 
ESCALINGMETHOD m_scalingMethod
 
ESCALINGMETHOD m_scalingMethodGui
 
CRenderBuffer m_renderBuffers [NUM_BUFFERS]
 
struct SwsContext * m_sw_scale_ctx
 
CRenderCapture * m_capture
 
std::unique_ptr< DXVA::CProcessorHDm_processor
 
std::unique_ptr< CYUV2RGBShaderm_colorShader
 
std::unique_ptr< CConvolutionShaderm_scalerShader
 
std::unique_ptr< COutputShaderm_outputShader
 
std::unique_ptr< CColorManagerm_colorManager
 
Microsoft::WRL::ComPtr< ID3D11ShaderResourceView > m_pCLUTView
 
CD3DTexture m_IntermediateTarget
 
AVColorPrimaries m_srcPrimaries
 
- Protected Attributes inherited from CBaseRenderer
unsigned int m_sourceWidth = 720
 
unsigned int m_sourceHeight = 480
 
float m_sourceFrameRatio = 1.0f
 
float m_fps = 0.0f
 
unsigned int m_renderOrientation = 0
 
CPoint m_rotatedDestCoords [4]
 
CPoint m_savedRotatedDestCoords [4]
 
CRect m_destRect
 
CRect m_sourceRect
 
CRect m_viewRect
 
unsigned m_iFlags = 0
 
AVPixelFormat m_format = AV_PIX_FMT_NONE
 
CVideoSettings m_videoSettings
 

Constructor & Destructor Documentation

◆ CWinRenderer()

CWinRenderer::CWinRenderer ( )

◆ ~CWinRenderer()

CWinRenderer::~CWinRenderer ( )

Member Function Documentation

◆ AddVideoPicture()

void CWinRenderer::AddVideoPicture ( const VideoPicture picture,
int  index 
)
overridevirtual

Implements CBaseRenderer.

◆ ColorManagmentUpdate()

void CWinRenderer::ColorManagmentUpdate ( )
protected

◆ ConfigChanged()

bool CWinRenderer::ConfigChanged ( const VideoPicture picture)
overridevirtual

Implements CBaseRenderer.

◆ Configure()

bool CWinRenderer::Configure ( const VideoPicture picture,
float  fps,
unsigned int  orientation 
)
overridevirtual

Implements CBaseRenderer.

◆ Create()

CBaseRenderer * CWinRenderer::Create ( CVideoBuffer buffer)
static

◆ CreateIntermediateRenderTarget()

bool CWinRenderer::CreateIntermediateRenderTarget ( unsigned int  width,
unsigned int  height,
bool  dynamic 
)
protected

◆ CreateRenderBuffer()

bool CWinRenderer::CreateRenderBuffer ( int  index)
protected

◆ DeleteRenderBuffer()

void CWinRenderer::DeleteRenderBuffer ( int  index)
protected

◆ Flush()

bool CWinRenderer::Flush ( bool  saveBuffers)
overridevirtual

Reimplemented from CBaseRenderer.

◆ GetRenderInfo()

CRenderInfo CWinRenderer::GetRenderInfo ( )
overridevirtual

Reimplemented from CBaseRenderer.

◆ GetSrcPrimaries()

AVColorPrimaries CWinRenderer::GetSrcPrimaries ( AVColorPrimaries  srcPrimaries,
unsigned int  width,
unsigned int  height 
) const
protected

◆ IsConfigured()

bool CWinRenderer::IsConfigured ( )
inlineoverridevirtual

Implements CBaseRenderer.

◆ LoadCLUT()

bool CWinRenderer::LoadCLUT ( )
protected

◆ ManageTextures()

void CWinRenderer::ManageTextures ( )
protected

◆ NeedBuffer()

bool CWinRenderer::NeedBuffer ( int  idx)
overridevirtual

Reimplemented from CBaseRenderer.

◆ NextBuffer()

int CWinRenderer::NextBuffer ( ) const
protected

◆ PreInit()

void CWinRenderer::PreInit ( )
protected

◆ Register()

bool CWinRenderer::Register ( )
static

◆ ReleaseBuffer()

void CWinRenderer::ReleaseBuffer ( int  idx)
overridevirtual

Reimplemented from CBaseRenderer.

◆ Render()

void CWinRenderer::Render ( DWORD  flags,
CD3DTexture target 
)
protectedvirtual

◆ RenderCapture()

bool CWinRenderer::RenderCapture ( CRenderCapture *  capture)
overridevirtual

Implements CBaseRenderer.

◆ RenderHQ()

void CWinRenderer::RenderHQ ( CD3DTexture target)
protected

◆ RenderHW()

void CWinRenderer::RenderHW ( DWORD  flags,
CD3DTexture target 
)
protected

◆ RenderPS()

void CWinRenderer::RenderPS ( CD3DTexture target)
protected

◆ RenderSW()

void CWinRenderer::RenderSW ( CD3DTexture target)
protected

◆ RenderUpdate()

void CWinRenderer::RenderUpdate ( int  index,
int  index2,
bool  clear,
unsigned int  flags,
unsigned int  alpha 
)
overridevirtual

Implements CBaseRenderer.

◆ SelectBufferFormat()

EBufferFormat CWinRenderer::SelectBufferFormat ( AVPixelFormat  format,
const RenderMethod  method 
) const
protected

◆ SelectPSVideoFilter()

void CWinRenderer::SelectPSVideoFilter ( )
protected

◆ SelectRenderMethod()

void CWinRenderer::SelectRenderMethod ( )
protected

◆ SelectSWVideoFilter()

void CWinRenderer::SelectSWVideoFilter ( )
protected

◆ SetBufferSize()

void CWinRenderer::SetBufferSize ( int  numBuffers)
inlineoverridevirtual

Reimplemented from CBaseRenderer.

◆ Supports() [1/2]

bool CWinRenderer::Supports ( ERENDERFEATURE  feature)
overridevirtual

Reimplemented from CBaseRenderer.

◆ Supports() [2/2]

bool CWinRenderer::Supports ( ESCALINGMETHOD  method)
overridevirtual

Implements CBaseRenderer.

◆ SupportsMultiPassRendering()

bool CWinRenderer::SupportsMultiPassRendering ( )
inlineoverridevirtual

Implements CBaseRenderer.

◆ UnInit()

void CWinRenderer::UnInit ( )
overridevirtual

Implements CBaseRenderer.

◆ Update()

void CWinRenderer::Update ( )
overridevirtual

Implements CBaseRenderer.

◆ UpdatePSVideoFilter()

void CWinRenderer::UpdatePSVideoFilter ( )
protected

◆ UpdateVideoFilter()

void CWinRenderer::UpdateVideoFilter ( )
protected

◆ WantsDoublePass()

bool CWinRenderer::WantsDoublePass ( )
overridevirtual

Reimplemented from CBaseRenderer.

Member Data Documentation

◆ m_bConfigured

bool CWinRenderer::m_bConfigured
protected

◆ m_bFilterInitialized

bool CWinRenderer::m_bFilterInitialized
protected

◆ m_bufferFormat

EBufferFormat CWinRenderer::m_bufferFormat
protected

◆ m_bUseHQScaler

bool CWinRenderer::m_bUseHQScaler
protected

◆ m_capture

CRenderCapture* CWinRenderer::m_capture
protected

◆ m_clutLoaded

bool CWinRenderer::m_clutLoaded
protected

◆ m_CLUTSize

int CWinRenderer::m_CLUTSize { 0 }
protected

◆ m_cmsOn

bool CWinRenderer::m_cmsOn
protected

◆ m_cmsToken

int CWinRenderer::m_cmsToken { -1 }
protected

◆ m_colorManager

std::unique_ptr<CColorManager> CWinRenderer::m_colorManager
protected

◆ m_colorShader

std::unique_ptr<CYUV2RGBShader> CWinRenderer::m_colorShader
protected

◆ m_destHeight

unsigned int CWinRenderer::m_destHeight
protected

◆ m_destWidth

unsigned int CWinRenderer::m_destWidth
protected

◆ m_ditherDepth

int CWinRenderer::m_ditherDepth
protected

◆ m_dxva_format

DXGI_FORMAT CWinRenderer::m_dxva_format
protected

◆ m_frameIdx

unsigned int CWinRenderer::m_frameIdx
protected

◆ m_IntermediateTarget

CD3DTexture CWinRenderer::m_IntermediateTarget
protected

◆ m_iRequestedMethod

int CWinRenderer::m_iRequestedMethod
protected

◆ m_iYV12RenderBuffer

int CWinRenderer::m_iYV12RenderBuffer
protected

◆ m_neededBuffers

int CWinRenderer::m_neededBuffers
protected

◆ m_NumYV12Buffers

int CWinRenderer::m_NumYV12Buffers
protected

◆ m_outputShader

std::unique_ptr<COutputShader> CWinRenderer::m_outputShader
protected

◆ m_pCLUTView

Microsoft::WRL::ComPtr<ID3D11ShaderResourceView> CWinRenderer::m_pCLUTView
protected

◆ m_processor

std::unique_ptr<DXVA::CProcessorHD> CWinRenderer::m_processor
protected

◆ m_renderBuffers

CRenderBuffer CWinRenderer::m_renderBuffers[NUM_BUFFERS]
protected

◆ m_renderMethod

RenderMethod CWinRenderer::m_renderMethod
protected

◆ m_scalerShader

std::unique_ptr<CConvolutionShader> CWinRenderer::m_scalerShader
protected

◆ m_scalingMethod

ESCALINGMETHOD CWinRenderer::m_scalingMethod
protected

◆ m_scalingMethodGui

ESCALINGMETHOD CWinRenderer::m_scalingMethodGui
protected

◆ m_srcPrimaries

AVColorPrimaries CWinRenderer::m_srcPrimaries
protected

◆ m_sw_scale_ctx

struct SwsContext* CWinRenderer::m_sw_scale_ctx
protected

◆ m_toneMapping

bool CWinRenderer::m_toneMapping
protected

◆ m_useDithering

bool CWinRenderer::m_useDithering
protected

The documentation for this class was generated from the following files: