On Thu, 2012-04-12 at 10:43 +0200, Erik Hofman wrote:
> even GL_RGB16 works.
And therefore I propose this patch.
Erik
diff --git a/src/Main/renderer.cxx b/src/Main/renderer.cxx
index 1c6e77b..1c5ea0a 100644
--- a/src/Main/renderer.cxx
+++ b/src/Main/renderer.cxx
@@ -65,6 +65,7 @@
#include <osgViewer/Renderer>
#include <simgear/math/SGMath.hxx>
+#include <simgear/screen/extensions.hxx>
#include <simgear/scene/material/matlib.hxx>
#include <simgear/scene/material/EffectCullVisitor.hxx>
#include <simgear/scene/material/Effect.hxx>
@@ -735,7 +736,7 @@ void buildDeferredBuffers( flightgear::CameraInfo* info, int shadowMapSize, bool
if (normal16)
info->addBuffer(flightgear::RenderBufferInfo::NORMAL_BUFFER, buildDeferredBuffer( 0x822C /*GL_RG16*/, 0x8227 /*GL_RG*/, GL_UNSIGNED_SHORT, osg::Texture::CLAMP_TO_BORDER) );
else
- info->addBuffer(flightgear::RenderBufferInfo::NORMAL_BUFFER, buildDeferredBuffer( GL_RGBA8, GL_RGBA, GL_UNSIGNED_SHORT, osg::Texture::CLAMP_TO_BORDER) );
+ info->addBuffer(flightgear::RenderBufferInfo::NORMAL_BUFFER, buildDeferredBuffer( GL_RGB16, GL_RGB, GL_UNSIGNED_SHORT, osg::Texture::CLAMP_TO_BORDER) );
info->addBuffer(flightgear::RenderBufferInfo::DIFFUSE_BUFFER, buildDeferredBuffer( GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, osg::Texture::CLAMP_TO_BORDER) );
info->addBuffer(flightgear::RenderBufferInfo::SPEC_EMIS_BUFFER, buildDeferredBuffer( GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, osg::Texture::CLAMP_TO_BORDER) );
@@ -1356,7 +1357,10 @@ FGRenderer::buildDeferredPipeline(flightgear::CameraGroup* cgroup, unsigned flag
osg::GraphicsContext* gc)
{
CameraInfo* info = new CameraInfo(flags);
- buildDeferredBuffers( info, _shadowMapSize, !fgGetBool("/sim/rendering/no-16bit-buffer", false ) );
+
+ bool gl_ext_texture_rg = SGIsOpenGLExtensionSupported("GL_ARB_texture_rg") &
+ !fgGetBool("/sim/rendering/no-16bit-buffer", false );
+ buildDeferredBuffers( info, _shadowMapSize, gl_ext_texture_rg );
osg::Camera* geometryCamera = buildDeferredGeometryCamera( info, gc );
cgroup->getViewer()->addSlave(geometryCamera, false);
------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel