aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.cpp34
-rw-r--r--xbmc/cores/VideoPlayer/VideoRenderers/OverlayRendererDX.h6
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;