[dx11] CD3DEffect: cosmetics.
authorAnton Fedchin <afedchin@ruswizards.com>
Tue, 7 Jul 2015 09:25:43 +0000 (12:25 +0300)
committerAnton Fedchin <afedchin@ruswizards.com>
Sat, 11 Jul 2015 08:13:09 +0000 (11:13 +0300)
xbmc/guilib/D3DResource.cpp

index ff08e75..51438e8 100644 (file)
@@ -472,14 +472,14 @@ bool CD3DEffect::Create(const std::string &effectString, DefinesMap* defines)
 void CD3DEffect::Release()
 {
   g_Windowing.Unregister(this);
-  SAFE_RELEASE(m_effect);
-  SAFE_RELEASE(m_techniquie);
-  SAFE_RELEASE(m_currentPass);
+  OnDestroyDevice();
 }
 
 void CD3DEffect::OnDestroyDevice()
 {
   SAFE_RELEASE(m_effect);
+  m_techniquie = nullptr;
+  m_currentPass = nullptr;
 }
 
 void CD3DEffect::OnCreateDevice()
@@ -511,9 +511,9 @@ bool CD3DEffect::SetTechnique(LPCSTR handle)
   {
     m_techniquie = m_effect->GetTechniqueByName(handle);
     if (!m_techniquie->IsValid())
-      SAFE_RELEASE(m_techniquie);
+      m_techniquie = nullptr;
 
-    return NULL != m_techniquie;
+    return nullptr != m_techniquie;
   }
   return false;
 }
@@ -522,8 +522,9 @@ bool CD3DEffect::SetTexture(LPCSTR handle, CD3DTexture &texture)
 {
   if (m_effect)
   {
-    m_effect->GetVariableByName(handle)->AsShaderResource()->SetResource(nullptr);
-    return (S_OK == m_effect->GetVariableByName(handle)->AsShaderResource()->SetResource(texture.GetShaderResource()));
+    ID3DX11EffectShaderResourceVariable* var = m_effect->GetVariableByName(handle)->AsShaderResource();
+    if (var->IsValid())
+      return (var->SetResource(texture.GetShaderResource()));
   }
   return false;
 }
@@ -532,7 +533,9 @@ bool CD3DEffect::SetConstantBuffer(LPCSTR handle, ID3D11Buffer *buffer)
 {
   if (m_effect)
   {
-    return (S_OK == m_effect->GetConstantBufferByName(handle)->SetConstantBuffer(buffer));
+    ID3DX11EffectConstantBuffer* effectbuffer = m_effect->GetConstantBufferByName(handle);
+    if (effectbuffer->IsValid())
+      return (S_OK == effectbuffer->SetConstantBuffer(buffer));
   }
   return false;
 }
@@ -540,7 +543,11 @@ bool CD3DEffect::SetConstantBuffer(LPCSTR handle, ID3D11Buffer *buffer)
 bool CD3DEffect::SetScalar(LPCSTR handle, float value)
 {
   if (m_effect)
-    return (S_OK == m_effect->GetVariableByName(handle)->AsScalar()->SetFloat(value));
+  {
+    ID3DX11EffectScalarVariable* scalar = m_effect->GetVariableByName(handle)->AsScalar();
+    if (scalar->IsValid())
+      return (S_OK == scalar->SetFloat(value));
+  }
 
   return false;
 }
@@ -564,7 +571,7 @@ bool CD3DEffect::BeginPass(UINT pass)
     m_currentPass = m_techniquie->GetPassByIndex(pass);
     if (!m_currentPass || !m_currentPass->IsValid())
     {
-      SAFE_RELEASE(m_currentPass);
+      m_currentPass = nullptr;
       return false;
     }
     return (S_OK == m_currentPass->Apply(0, g_Windowing.Get3D11Context()));
@@ -576,7 +583,7 @@ bool CD3DEffect::EndPass()
 {
   if (m_effect && m_currentPass)
   {
-    SAFE_RELEASE(m_currentPass);
+    m_currentPass = nullptr;
     return true;
   }
   return false;
@@ -586,7 +593,7 @@ bool CD3DEffect::End()
 {
   if (m_effect && m_techniquie)
   {
-    SAFE_RELEASE(m_techniquie);
+    m_techniquie = nullptr;
     return true;
   }
   return false;