diff options
-rw-r--r-- | xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.cpp | 34 | ||||
-rw-r--r-- | xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.h | 6 |
2 files changed, 7 insertions, 33 deletions
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.cpp index 1d64eb4110..d9afae743a 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.cpp @@ -151,14 +151,12 @@ COverlayQuadsDX::COverlayQuadsDX(ASS_Image* images, int width, int height) CLog::Log(LOGERROR, "%s - failed to create vertex buffer", __FUNCTION__); m_texture.Release(); } - else - g_Windowing.Register(this); + delete[] vt; } COverlayQuadsDX::~COverlayQuadsDX() { - g_Windowing.Unregister(this); } void COverlayQuadsDX::Render(SRenderState &state) @@ -166,6 +164,10 @@ void COverlayQuadsDX::Render(SRenderState &state) if (m_count == 0) return; + ID3D11Buffer* vertexBuffer = m_vertex.Get(); + if (vertexBuffer == nullptr) + return; + ID3D11DeviceContext* pContext = g_Windowing.Get3D11Context(); CGUIShaderDX* pGUIShader = g_Windowing.GetGUIShader(); @@ -188,7 +190,6 @@ void COverlayQuadsDX::Render(SRenderState &state) const unsigned stride = sizeof(Vertex); const unsigned offset = 0; - ID3D11Buffer* vertexBuffer = m_vertex.Get(); // Set the vertex buffer to active in the input assembler so it can be rendered. pContext->IASetVertexBuffers(0, 1, &vertexBuffer, &stride, &offset); // Set the type of primitive that should be rendered from this vertex buffer, in this case triangles. @@ -206,18 +207,8 @@ void COverlayQuadsDX::Render(SRenderState &state) pGUIShader->RestoreBuffers(); } -void COverlayQuadsDX::OnDestroyDevice(bool fatal) -{ - // fatal means that we have no valid buffer anymore - // resetting m_count will cause no rendering - if (fatal) - m_count = 0; -} - - COverlayImageDX::~COverlayImageDX() { - g_Windowing.Unregister(this); } COverlayImageDX::COverlayImageDX(CDVDOverlayImage* o) @@ -283,7 +274,6 @@ COverlayImageDX::COverlayImageDX(CDVDOverlayImage* o) m_width = (float)o->width; m_height = (float)o->height; } - g_Windowing.Register(this); } COverlayImageDX::COverlayImageDX(CDVDOverlaySpu* o) @@ -305,8 +295,6 @@ COverlayImageDX::COverlayImageDX(CDVDOverlaySpu* o) m_y = (float)(min_y + o->y); m_width = (float)(max_x - min_x); m_height = (float)(max_y - min_y); - - g_Windowing.Register(this); } void COverlayImageDX::Load(uint32_t* rgba, int width, int height, int stride) @@ -344,7 +332,8 @@ void COverlayImageDX::Load(uint32_t* rgba, int width, int height, int stride) void COverlayImageDX::Render(SRenderState &state) { - if (m_type == TYPE_NONE) + ID3D11Buffer* vertexBuffer = m_vertex.Get(); + if (vertexBuffer == nullptr) return; ID3D11DeviceContext* pContext = g_Windowing.Get3D11Context(); @@ -371,7 +360,6 @@ void COverlayImageDX::Render(SRenderState &state) const unsigned stride = m_vertex.GetStride(); const unsigned offset = 0; - ID3D11Buffer* vertexBuffer = m_vertex.Get(); pContext->IASetVertexBuffers(0, 1, &vertexBuffer, &stride, &offset); pContext->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); @@ -387,12 +375,4 @@ void COverlayImageDX::Render(SRenderState &state) pGUIShader->RestoreBuffers(); } -void OVERLAY::COverlayImageDX::OnDestroyDevice(bool fatal) -{ - // fatal means that we have no valid texture and buffer anymore - // resetting m_type will cause no rendering - if (fatal) - m_type = TYPE_NONE; -} - #endif diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.h b/xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.h index 23e40839bd..f5fd62bf3c 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.h +++ b/xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.h @@ -35,15 +35,12 @@ namespace OVERLAY { class COverlayQuadsDX : public COverlay - , public ID3DResource { public: COverlayQuadsDX(ASS_Image* images, int width, int height); virtual ~COverlayQuadsDX(); void Render(SRenderState& state); - void OnCreateDevice() override {} - void OnDestroyDevice(bool fatal) override; int m_count; DWORD m_fvf; @@ -53,7 +50,6 @@ namespace OVERLAY { class COverlayImageDX : public COverlay - , public ID3DResource { public: COverlayImageDX(CDVDOverlayImage* o); @@ -62,8 +58,6 @@ namespace OVERLAY { void Load(uint32_t* rgba, int width, int height, int stride); void Render(SRenderState& state); - void OnCreateDevice() override {} - void OnDestroyDevice(bool fatal) override; DWORD m_fvf; CD3DTexture m_texture; |