Hello Christoph, On 07/03/2012 04:00 AM, "Christoph Fünfzig" wrote:
thanks a lot, I have it working now. Actually, read back has been the problem. In "OSGRenderBuffer.cpp", it uses "pImg->getPixelFormat()" as the format, (which should be GL_DEPTH_COMPONENT for the depth buffer)
[SNIP]
Can you please consider adding a format GL_DEPTH_COMPONENT to "OSGImage.cpp" ? "OSGImage.cpp", line 110: { GL_DEPTH_COMPONENT, 1 }, With this addition, it works with RenderBuffer and TextureBuffer as well.
I think the attached patch should do it.Gerrit: could you eyeball it, I'll probably forever be confused by OpenGL's format, internal format and data type specifications for textures/buffers ;)
Cheers, Carsten
diff --git a/Source/System/Image/OSGImage.cpp b/Source/System/Image/OSGImage.cpp index 961ca03..2f55100 100644 --- a/Source/System/Image/OSGImage.cpp +++ b/Source/System/Image/OSGImage.cpp @@ -99,6 +99,7 @@ UInt32 Image::_formatDic[][2] = { OSG_RGBA_DXT1, 4 }, { OSG_RGBA_DXT3, 4 }, { OSG_RGBA_DXT5, 4 }, + { OSG_DEPTH_PF, 1 }, { OSG_DEPTH_STENCIL_PF, 1 }, { OSG_ALPHA_INTEGER_PF, 1 }, { OSG_RGB_INTEGER_PF, 3 }, @@ -234,6 +235,9 @@ void Image::dump( UInt32 , case OSG_RGBA_DXT5: pfStr = "RGBA_DXT5"; break; + case OSG_DEPTH_PF: + pfStr = "DEPTH"; + break; case OSG_DEPTH_STENCIL_PF: pfStr = "DEPTH_STENCIL"; break; @@ -2190,13 +2194,17 @@ bool Image::reformat(const Image::PixelFormat pixelFormat, break; } - case OSG_ALPHA_INTEGER_PF: - case OSG_RGB_INTEGER_PF: - case OSG_RGBA_INTEGER_PF: - case OSG_BGR_INTEGER_PF: - case OSG_BGRA_INTEGER_PF: - case OSG_LUMINANCE_INTEGER_PF: - case OSG_LUMINANCE_ALPHA_INTEGER_PF: + case OSG_DEPTH_PF: +#if defined(GL_DEPTH_STENCIL_EXT) || defined(GL_DEPTH_STENCIL_NV) + case OSG_DEPTH_STENCIL_PF: +#endif + case OSG_ALPHA_INTEGER_PF: + case OSG_RGB_INTEGER_PF: + case OSG_RGBA_INTEGER_PF: + case OSG_BGR_INTEGER_PF: + case OSG_BGRA_INTEGER_PF: + case OSG_LUMINANCE_INTEGER_PF: + case OSG_LUMINANCE_ALPHA_INTEGER_PF: { FFATAL((" 'reformat' NYI\n ")); } diff --git a/Source/System/Image/OSGImage.h b/Source/System/Image/OSGImage.h index bef3e6a..7987842 100644 --- a/Source/System/Image/OSGImage.h +++ b/Source/System/Image/OSGImage.h @@ -83,7 +83,7 @@ class OSG_SYSTEM_DLLMAPPING Image : public ImageBase #else OSG_BGR_PF = 0, #endif - + /*** BGRA ***/ #if defined(GL_BGRA) OSG_BGRA_PF = GL_BGRA, @@ -120,6 +120,8 @@ class OSG_SYSTEM_DLLMAPPING Image : public ImageBase OSG_RGBA_DXT5 = 0, #endif + OSG_DEPTH_PF = GL_DEPTH_COMPONENT, + /*** GL_EXT_packed_depth_stencil ***/ #if defined(GL_DEPTH_STENCIL_EXT) OSG_DEPTH_STENCIL_PF = GL_DEPTH_STENCIL_EXT,
------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users