Hi Tatsuhiro,
On Mon, Dec 15, 2008 at 6:16 PM, Tatsuhiro Nishioka
<[email protected]> wrote:
> Thanks for your answer. I understand the base concept, but I got confused
> with your answer since the same file contains
> some workarounds that violates your policy:
He who is observant get a gold star ;-)
> These are the similar kinds of workarounds for specific driver bugs, I
> believe.
> Moreover, the Radeon workaround is not necessary on my MacBook Pro (Radeon
> 1600X).
> I added the workaround for GeForce 7x00 on Mac since the files already has
> such "hacks."
> If my workaround is not appropriate, then so are these.
These workarounds are inappropriate as well, and it's my wish to start
purging such hacks from the core OSG. For the reason you cite
yourself - such hacks aren't are irretrivable, once you move to a
driver that fixes the problem you can't fix your application, your
stuck with features disabled for no reason other than a historical
app.
So rather than add to number of hacks in the OSG, my wish is to not
keep repeating the same mistake with more of the same.
>> To enable
>> this to work I think the right thing to do is tweak the extension
>> query scheme so that the calling code passing in the GL version number
>> as well as the extension strings this way we can handle the extension
>> disable checking at the same time. I've investigate this at my end.
>
> I don't get this part, how exactly can I do this?
> Could you elaborate this a bit more?
I can even provide some code :-)
I've implemented a new osg::isGLExtensionOrVersionSupported(..)
method that takes both the extension name string and the minimum
OpenGL version required, this methods also checks the extension
disable string and disables the extension whether it's been enable
viable extension or by version number. The code in action is:
_isGenerateMipMapSupported =
isGLExtensionOrVersionSupported(contextID,"GL_SGIS_generate_mipmap",
1.4);
I've just rolled this new method out into Texture.cpp so far, but for
your purposes this should be sufficient. These changes are now
checked into OSG svn/trunk.
Then to disable this extension try:
setenv OSG_GL_EXTENSION_DISABLE GL_SGIS_generate_mipmap
This wil do a blanket disable of this extension, you can put the GL
render string name in front of this to make sure that only the
hardware of interest you disable the extension on. If the rules
required to single out when you need to apply the disable then you'll
need to do this in your app then decide whether the set the above
string. You can set the string programatically via:
osg::setGLExtensionDisableString("GL_SGIS_generate_mipmap");
There is examples of this in the include/osg/GLExtensions header.
Could you try this out and report how you get on. Hopefully we'll be
able to get this working this way, and then work out a high level
scheme for managing this. It's also be worth use changing a few more
parts of the OSG to use this new function as well - but only we know
it's effects.
Robert.
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org