tlorach / nvFX

Generic Effect system for Graphic API's (OpenGL and DirectX)
280 stars 53 forks source link

nvFxcc crash if card support Ogl 3.0 #1

Open craouette opened 11 years ago

craouette commented 11 years ago

cause: glProgramParameteri is not set... change (so that nvFxcc does not crash, and report an error) in GLSLProgram.cpp, line 73:

GLSLProgram::GLSLProgram(Container *pCont) : Program(pCont) { m_program = glCreateProgram(); m_linkNeeded = true; m_usable = false; //m_bound = false;

ifdef USE_OLDPROGRAM

m_separable = false;
#else
if (pCont)
{
m_separable    = pCont->separateShadersEnabled();
if(!glProgramParameteri)
{
    LOGI("Warning : ARB_separate_shader_objects not available\n");
    m_separable = false;
    pCont->separateShadersEnable(false);
}
if(m_separable)
{
    glProgramParameteri(m_program, GL_PROGRAM_SEPARABLE, m_separable);
    if((glGetError()==GL_INVALID_ENUM)||(glGenProgramPipelines == NULL))
    {
        LOGI("Warning : ARB_separate_shader_objects not available\n");
        m_separable = false;
        pCont->separateShadersEnable(false);
    }
}
}
#endif
m_shaderFlags = 0;

ifdef SHADERCONCAT_USE

m_vtxShader = 0;
m_fragShader = 0;

endif

}

tlorach commented 11 years ago

I think it comes from the fact I made by default context creation (wglCreateContextAttribsARB) request for 4.2 version I should indeed set it to 3.0... in the meantime, you could try on your side. See WGL_CONTEXT_MAJOR_VERSION_ARB, 4, WGL_CONTEXT_MINOR_VERSION_ARB, 2, in nvFXcc.cpp

craouette commented 11 years ago

Hi,

I will try this, thanks.

And I suppose if I compile nvFXcc for OpenGL ES, it will work... but the switch between the OpenGl 4 and OpenGl ES is only available a compile time.

Am I right?

That's mean that the library, once compiled will only work for OpenGL 3 or 4 but not both.

Thanks a lot for making nvFX. I hope I will find time to contribute....

Pierre

On Wed, 10 Jul 2013 13:36:53 -0700, Tristan Lorach wrote:

I think it comes from the fact I made by default context creation (wglCreateContextAttribsARB) request for 4.2 version

I should indeed set it to 3.0... in the meantime, you could try on your side. See WGL_CONTEXT_MAJOR_VERSION_ARB, 4,

WGL_CONTEXT_MINOR_VERSION_ARB, 2, in nvFXcc.cpp

Reply to this email directly or view it on GitHub [1].

Links:

[1] https://github.com/tlorach/nvFX/issues/1#issuecomment-20771220