if (m_pYUVShader)
{
- m_pYUVShader->Free();
delete m_pYUVShader;
m_pYUVShader = NULL;
}
void CLinuxRendererGL::LoadShaders(int field)
{
- int requestedMethod = g_guiSettings.GetInt("videoplayer.rendermethod");
- CLog::Log(LOGDEBUG, "GL: Requested render method: %d", requestedMethod);
-
if (CONF_FLAGS_FORMAT_MASK(m_iFlags) == CONF_FLAGS_FORMAT_VDPAU)
{
CLog::Log(LOGNOTICE, "GL: Using VDPAU render method");
}
else
{
+ int requestedMethod = g_guiSettings.GetInt("videoplayer.rendermethod");
+ CLog::Log(LOGDEBUG, "GL: Requested render method: %d", requestedMethod);
+
+ if (m_pYUVShader)
+ {
+ delete m_pYUVShader;
+ m_pYUVShader = NULL;
+ }
+
switch(requestedMethod)
{
case RENDER_METHOD_AUTO:
// Try GLSL shaders if supported and user requested auto or GLSL.
if (glCreateProgram)
{
- if (m_pYUVShader)
- {
- m_pYUVShader->Free();
- delete m_pYUVShader;
- m_pYUVShader = NULL;
- }
-
bool nonLinStretch = m_nonLinStretch && (m_pixelRatio > 1.001f || m_pixelRatio < 0.999f)
&& m_renderQuality == RQ_SINGLEPASS && m_textureTarget != GL_TEXTURE_RECTANGLE_ARB;
}
else
{
- m_pYUVShader->Free();
delete m_pYUVShader;
m_pYUVShader = NULL;
CLog::Log(LOGERROR, "GL: Error enabling YUV2RGB GLSL shader");
{
CLog::Log(LOGNOTICE, "GL: ARB shaders support detected");
m_renderMethod = RENDER_ARB ;
- if (m_pYUVShader)
- {
- m_pYUVShader->Free();
- delete m_pYUVShader;
- m_pYUVShader = NULL;
- }
// create regular progressive scan shader
m_pYUVShader = new YUV2RGBProgressiveShaderARB(m_textureTarget==GL_TEXTURE_RECTANGLE_ARB, m_iFlags);
}
else
{
- m_pYUVShader->Free();
delete m_pYUVShader;
m_pYUVShader = NULL;
CLog::Log(LOGERROR, "GL: Error enabling YUV2RGB ARB shader");