Hi David, Robert + Paul,

@David, I tried your code on my end and I am getting a lot of OpenGL
errors, too. Did you get it running on your end?

Some of the errors I get (captured with the open gl profiler)

glEnable(GL_LIGHTING) -- GL_INVALID_ENUM
glEnableVertexAttribArray(0) -- GL_INVALID_OPERATION
glVertexAttribPointerARB(0, 3, GL_FLOAT, 0, 0, 0x7fce66003e00) --
GL_INVALID_OPERATION
glDrawArrays(GL_TRIANGLE_STRIP, 0, 3) -- GL_INVALID_OPERATION

So basically all serious open gl commands throw an error :) According to
the OpenGL profiler the context seems correct:

GL_RENDERER:  ATI Radeon HD 5770 OpenGL Engine
GL_VENDOR:  ATI Technologies Inc.
GL_VERSION:  3.2 ATI-7.18.18
kCGLCPGPUFragmentProcessing:  GL_TRUE
kCGLCPGPUVertexProcessing:  GL_TRUE

and I get the correct clear-color displaying in the window ;-)


Any idea what might go wrong?

cheers,

Stephan


Am 03.03.12 01:10, schrieb David Garcia:
> 
> Hi Robert, Paul,
> 
> 
> On Mar 2, 2012, at 16:33 , Robert Osfield <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>> Looking at the osgsimplegl3 example it doesn't itself create a Material or 
>> TexGen so I think these inappropriate StateAttribute are part of the scene 
>> graph you are loading.  Could it be cow.osg by any chance :-)
> 
> Yes, of course  :)…
> 
> Following Paul advice I try osgWorks (2.0.0) teapot. I got different errors. 
> In 
> the state I have add to extract more information:
> gc->getState()->setCheckForGLErrors(osg::State::ONCE_PER_ATTRIBUTE);
> 
> The output is in the zip file (errors.txt).
> 
> 
>> >
>> OpenGL defines CGL functions. I will check later today if it is required.
>>
> 
> The include is not required.
> 
>>
>>     I have not be able to found another way to activate it without using this
>>     enum. Rumors are that Mountain Lion will support extra values making the
>>     code uglier. Another solution will be to use the value of the enum
>>     (NSOpenGLPFAOpenGLProfile is 99 and NSOpenGLProfileVersion3_2Core is
>>     0x3200) but seems even less elegant.
>>
>>
>> Perhaps moving this discussion on to osg-users and try to catch the 
>> attention 
>> of other OSX devs to see what they think.  I'd like to had a solution that 
>> will handle future revs of OSX and the SDK as well as be backwards 
>> compatible.
>>
> 
> As the versions seems defined by a enum I cannot see any solution other than 
> giant IF. And requires an ifdef because the SDK of 10.6 doesn't have the enum 
> (neither defines NSOpenGLPFAOpenGLProfile).
> 
> I coded a different version that mirrors the structure of the Win32 version. 
> The 
> code now is:
> 
>      std::istringstream istr( _traits->glContextVersion );
>      unsigned int major, minor;
>      unsigned char dot;
>      istr >> major >> dot >> minor;
> 
>      if( OSG_GL3_FEATURES ){
> if( major < 3 ){
> OSG_NOTIFY( osg::WARN ) << "GL3: Non-GL3 version number: " << 
> _traits->glContextVersion << std::endl;
>          }else{
> OSG_NOTIFY( osg::INFO ) << "GL3: Attempting to create OpenGL3 context." << 
> std::endl;
> OSG_NOTIFY( osg::INFO ) << "GL3: version: " << _traits->glContextVersion << 
> std::endl;
> 
> #if defined(OSG_GL3_AVAILABLE)
> attr[i++] = NSOpenGLPFAOpenGLProfile;
> attr[i++] = NSOpenGLProfileVersion3_2Core;
> #endif
>     }
> }
> 
> 
> So, find the new version of GL (no include, correct order for the 
> define GL3_PROTOTYPES) and code to activate 3.2 if the version requested is 
> 3.0 
> or higher. As soon as Apple updates Mountain Lion with OpenGL 4.1 support, I 
> can 
> rewrite the code (but 4.1 support is still a rumor).
> 
> Thanks,
> 
>    David
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> osg-submissions mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
> 

_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to