{
public:
CShader() { m_compiled = false; }
- virtual ~CShader() { Free(); }
+ virtual ~CShader() {}
virtual bool Compile() = 0;
- virtual void Free() {}
+ virtual void Free() = 0;
virtual GLuint Handle() = 0;
virtual void SetSource(const string& src) { m_source = src; }
virtual bool LoadSource(const string& filename, const string& prefix = "");
{
public:
CVertexShader() { m_vertexShader = 0; }
- virtual ~CVertexShader() {}
+ virtual ~CVertexShader() { Free(); }
virtual void Free() {}
virtual GLuint Handle() { return m_vertexShader; }
{
public:
CPixelShader() { m_pixelShader = 0; }
- virtual ~CPixelShader() {}
+ virtual ~CPixelShader() { Free(); }
virtual void Free() {}
virtual GLuint Handle() { return m_pixelShader; }
if (m_pYUVShader)
{
+ m_pYUVShader->Free();
delete m_pYUVShader;
m_pYUVShader = NULL;
}
if (m_pYUVShader)
{
+ m_pYUVShader->Free();
delete m_pYUVShader;
m_pYUVShader = NULL;
}
}
else
{
+ m_pYUVShader->Free();
delete m_pYUVShader;
m_pYUVShader = NULL;
CLog::Log(LOGERROR, "GL: Error enabling YUV2RGB GLSL shader");
}
else
{
+ m_pYUVShader->Free();
delete m_pYUVShader;
m_pYUVShader = NULL;
CLog::Log(LOGERROR, "GL: Error enabling YUV2RGB ARB shader");