Andy Ross:
I wrote: > I can confirm this. Layers on the 2D panels (but oddly, only the 2D > panels) aren't drawing over the background with the current ATI > drivers. OK, this turns out to be a trivial fix, although I still think it's a driver bug. There are two calls to glPolygonOffset in the panel rendering code (shared by both 2D and 3D panels). One is called per-layer, and sets up a layer-specific offset. The other is called for drawing the background textures, to lift them off of any underlying cockpit geometry. I was using different "factor" values for each, incorrectly. Patch attached. It was affecting only 2D panels because the 3D ones don't use background images. Problem is, by my reading of the specification the bug should have had the effect of pushing the background texture *farther* behind the instruments, instead of pulling it on top of them. Either I'm reading the spec incorrectly or ATI has inverted the sense of the factor argument. Dunno, I'll submit a bug report to them and see what happens.
This commit is contained in:
parent
d98b7f05ff
commit
64028a37ef
1 changed files with 1 additions and 1 deletions
|
@ -370,7 +370,7 @@ FGPanel::draw()
|
||||||
// of an existing polygon. Use an offset to prevent z-fighting. In
|
// of an existing polygon. Use an offset to prevent z-fighting. In
|
||||||
// 2D mode, this is a no-op.
|
// 2D mode, this is a no-op.
|
||||||
glEnable(GL_POLYGON_OFFSET_FILL);
|
glEnable(GL_POLYGON_OFFSET_FILL);
|
||||||
glPolygonOffset(0, -POFF_UNITS);
|
glPolygonOffset(-1, -POFF_UNITS);
|
||||||
|
|
||||||
// save some state
|
// save some state
|
||||||
glPushAttrib( GL_COLOR_BUFFER_BIT | GL_ENABLE_BIT | GL_LIGHTING_BIT
|
glPushAttrib( GL_COLOR_BUFFER_BIT | GL_ENABLE_BIT | GL_LIGHTING_BIT
|
||||||
|
|
Loading…
Reference in a new issue