Hi Jaromir,

Could you please send the changes as complete changed files.  Details
can be found on the SubmissionsProtocol page:

     
http://www.openscenegraph.org/projects/osg/wiki/MailingLists/SubmissionsProtocol

Thanks,
Robert.


On Sat, Nov 8, 2008 at 4:22 PM, Jaromír Vítek <[EMAIL PROTECTED]> wrote:
> Hi all,
> patch contains extension to fbo and camera. Camera can attach new render
> buffer for depth and stencil logical buffer in packed form.
>
> Jaromir
>
> Index: include/osg/Camera
> ===================================================================
> --- include/osg/Camera  (revision 9133)
> +++ include/osg/Camera  (working copy)
> @@ -310,6 +310,7 @@
>         {
>             DEPTH_BUFFER,
>             STENCIL_BUFFER,
> +            PACKED_DEPTH_STENCIL_BUFFER,
>             COLOR_BUFFER,
>             COLOR_BUFFER0,
>             COLOR_BUFFER1 = COLOR_BUFFER0+1,
> Index: include/osg/FrameBufferObject
> ===================================================================
> --- include/osg/FrameBufferObject       (revision 9133)
> +++ include/osg/FrameBufferObject       (working copy)
> @@ -114,6 +114,14 @@
>  #define GL_DEPTH_COMPONENT32              0x81A7
>  #endif
>
> +#ifndef GL_EXT_packed_depth_stencil
> +#define GL_EXT_packed_depth_stencil 1
> +#define GL_DEPTH_STENCIL_EXT 0x84F9
> +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA
> +#define GL_DEPTH24_STENCIL8_EXT 0x88F0
> +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1
> +#endif
> +
>  namespace osg
>  {
>
> @@ -165,11 +173,13 @@
>         bool isSupported() const { return _supported; }
>         bool isMultisampleSupported() const { return
> glRenderbufferStorageMultisampleEXT != 0; }
>         bool isMultisampleCoverageSupported() const { return
> glRenderbufferStorageMultisampleCoverageNV != 0; }
> +        bool isPackedDepthStencilSupported() const { return
> _packed_depth_stencil_supported; }
>
>     protected:
>         FBOExtensions(unsigned int contextID);
>
>         bool _supported;
> +        bool _packed_depth_stencil_supported;
>     };
>
>  /**************************************************************************
> Index: src/osg/FrameBufferObject.cpp
> ===================================================================
> --- src/osg/FrameBufferObject.cpp       (revision 9133)
> +++ src/osg/FrameBufferObject.cpp       (working copy)
> @@ -58,7 +58,8 @@
>     glFramebufferRenderbufferEXT(0),
>     glGenerateMipmapEXT(0),
>     glBlitFramebufferEXT(0),
> -    _supported(false)
> +    _supported(false),
> +    _packed_depth_stencil_supported(false)
>  {
>     if (!isGLExtensionSupported(contextID, "GL_EXT_framebuffer_object"))
>         return;
> @@ -107,6 +108,11 @@
>     {
>         LOAD_FBO_EXT(glRenderbufferStorageMultisampleCoverageNV);
>     }
> +
> +    if (isGLExtensionSupported(contextID, "GL_EXT_packed_depth_stencil"))
> +    {
> +        _packed_depth_stencil_supported = true;
> +    }
>  }
>
>
> @@ -811,7 +817,26 @@
>         for (AttachmentMap::const_iterator i=_attachments.begin();
> i!=_attachments.end(); ++i)
>         {
>             const FrameBufferAttachment &fa = i->second;
> -            fa.attach(state, target,
> convertBufferComponentToGLenum(i->first), ext);
> +            switch(i->first)
> +            {
> +                case(Camera::PACKED_DEPTH_STENCIL_BUFFER):
> +                    if (ext->isPackedDepthStencilSupported())
> +                    {
> +                        fa.attach(state, target, GL_DEPTH_ATTACHMENT_EXT,
> ext);
> +                        fa.attach(state, target, GL_STENCIL_ATTACHMENT_EXT,
> ext);
> +                    }
> +                    else
> +                    {
> +                        notify(WARN) <<
> +                            "Warning: FrameBufferObject: could not attach
> PACKED_DEPTH_STENCIL_BUFFER, "
> +                            "EXT_packed_depth_stencil is not supported !"
> << std::endl;
> +                    }
> +                    break;
> +
> +                default:
> +                    fa.attach(state, target,
> convertBufferComponentToGLenum(i->first), ext);
> +                    break;
> +            }
>         }
>         dirtyAttachmentList = 0;
>     }
>
> _______________________________________________
> 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