// ***************************************************************************
//
//   Generated automatically by genwrapper.
//   Please DO NOT EDIT this file!
//
// ***************************************************************************

#include <osgIntrospection/ReflectionMacros>
#include <osgIntrospection/TypedMethodInfo>
#include <osgIntrospection/StaticMethodInfo>
#include <osgIntrospection/Attributes>

#include <osg/Camera>
#include <osg/CopyOp>
#include <osg/FrameBufferObject>
#include <osg/Object>
#include <osg/State>
#include <osg/StateAttribute>
#include <osg/Texture>
#include <osg/Texture1D>
#include <osg/Texture2D>
#include <osg/Texture2DArray>
#include <osg/Texture3D>
#include <osg/TextureCubeMap>
#include <osg/TextureRectangle>

// Must undefine IN and OUT macros defined in Windows headers
#ifdef IN
#undef IN
#endif
#ifdef OUT
#undef OUT
#endif

BEGIN_VALUE_REFLECTOR(osg::FrameBufferAttachment)
	I_DeclaringFile("osg/FrameBufferObject");
	I_Constructor0(____FrameBufferAttachment,
	               "",
	               "");
	I_Constructor1(IN, const osg::FrameBufferAttachment &, copy,
	               Properties::NON_EXPLICIT,
	               ____FrameBufferAttachment__C5_FrameBufferAttachment_R1,
	               "",
	               "");
	I_Constructor1(IN, osg::RenderBuffer *, target,
	               Properties::EXPLICIT,
	               ____FrameBufferAttachment__RenderBuffer_P1,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, osg::Texture1D *, target, , IN, int, level, 0,
	                           ____FrameBufferAttachment__Texture1D_P1__int,
	                           "",
	                           "");
	I_ConstructorWithDefaults2(IN, osg::Texture2D *, target, , IN, int, level, 0,
	                           ____FrameBufferAttachment__Texture2D_P1__int,
	                           "",
	                           "");
	I_ConstructorWithDefaults3(IN, osg::Texture3D *, target, , IN, int, zoffset, , IN, int, level, 0,
	                           ____FrameBufferAttachment__Texture3D_P1__int__int,
	                           "",
	                           "");
	I_ConstructorWithDefaults3(IN, osg::Texture2DArray *, target, , IN, int, layer, , IN, int, level, 0,
	                           ____FrameBufferAttachment__Texture2DArray_P1__int__int,
	                           "",
	                           "");
	I_ConstructorWithDefaults3(IN, osg::TextureCubeMap *, target, , IN, int, face, , IN, int, level, 0,
	                           ____FrameBufferAttachment__TextureCubeMap_P1__int__int,
	                           "",
	                           "");
	I_Constructor1(IN, osg::TextureRectangle *, target,
	               Properties::EXPLICIT,
	               ____FrameBufferAttachment__TextureRectangle_P1,
	               "",
	               "");
	I_Constructor1(IN, osg::Camera::Attachment &, attachment,
	               Properties::EXPLICIT,
	               ____FrameBufferAttachment__Camera_Attachment_R1,
	               "",
	               "");
	I_Method0(bool, isMultisample,
	          Properties::NON_VIRTUAL,
	          __bool__isMultisample,
	          "",
	          "");
	I_Method2(void, createRequiredTexturesAndApplyGenerateMipMap, IN, osg::State &, state, IN, const osg::FBOExtensions *, ext,
	          Properties::NON_VIRTUAL,
	          __void__createRequiredTexturesAndApplyGenerateMipMap__State_R1__C5_FBOExtensions_P1,
	          "",
	          "");
	I_Method4(void, attach, IN, osg::State &, state, IN, GLenum, target, IN, GLenum, attachment_point, IN, const osg::FBOExtensions *, ext,
	          Properties::NON_VIRTUAL,
	          __void__attach__State_R1__GLenum__GLenum__C5_FBOExtensions_P1,
	          "",
	          "");
	I_Method1(int, compare, IN, const osg::FrameBufferAttachment &, fa,
	          Properties::NON_VIRTUAL,
	          __int__compare__C5_FrameBufferAttachment_R1,
	          "",
	          "");
	I_Method0(osg::RenderBuffer *, getRenderBuffer,
	          Properties::NON_VIRTUAL,
	          __RenderBuffer_P1__getRenderBuffer,
	          "",
	          "");
	I_Method0(const osg::RenderBuffer *, getRenderBuffer,
	          Properties::NON_VIRTUAL,
	          __C5_RenderBuffer_P1__getRenderBuffer,
	          "",
	          "");
	I_Method0(osg::Texture *, getTexture,
	          Properties::NON_VIRTUAL,
	          __Texture_P1__getTexture,
	          "",
	          "");
	I_Method0(const osg::Texture *, getTexture,
	          Properties::NON_VIRTUAL,
	          __C5_Texture_P1__getTexture,
	          "",
	          "");
	I_Method0(int, getCubeMapFace,
	          Properties::NON_VIRTUAL,
	          __int__getCubeMapFace,
	          "",
	          "");
	I_Method0(int, getTextureLevel,
	          Properties::NON_VIRTUAL,
	          __int__getTextureLevel,
	          "",
	          "");
	I_Method0(int, getTexture3DZOffset,
	          Properties::NON_VIRTUAL,
	          __int__getTexture3DZOffset,
	          "",
	          "");
	I_Method0(int, getTextureArrayLayer,
	          Properties::NON_VIRTUAL,
	          __int__getTextureArrayLayer,
	          "",
	          "");
	I_SimpleProperty(int, CubeMapFace, 
	                 __int__getCubeMapFace, 
	                 0);
	I_SimpleProperty(osg::RenderBuffer *, RenderBuffer, 
	                 __RenderBuffer_P1__getRenderBuffer, 
	                 0);
	I_SimpleProperty(osg::Texture *, Texture, 
	                 __Texture_P1__getTexture, 
	                 0);
	I_SimpleProperty(int, Texture3DZOffset, 
	                 __int__getTexture3DZOffset, 
	                 0);
	I_SimpleProperty(int, TextureArrayLayer, 
	                 __int__getTextureArrayLayer, 
	                 0);
	I_SimpleProperty(int, TextureLevel, 
	                 __int__getTextureLevel, 
	                 0);
END_REFLECTOR

BEGIN_ENUM_REFLECTOR(osg::FrameBufferObject::BindTarget)
	I_DeclaringFile("osg/FrameBufferObject");
	I_EnumLabel(osg::FrameBufferObject::READ_FRAMEBUFFER);
	I_EnumLabel(osg::FrameBufferObject::DRAW_FRAMEBUFFER);
	I_EnumLabel(osg::FrameBufferObject::READ_DRAW_FRAMEBUFFER);
END_REFLECTOR

TYPE_NAME_ALIAS(std::map< osg::Camera::BufferComponent COMMA  osg::FrameBufferAttachment >, osg::FrameBufferObject::AttachmentMap)

TYPE_NAME_ALIAS(std::vector< GLenum >, osg::FrameBufferObject::MultipleRenderingTargets)

TYPE_NAME_ALIAS(osg::Camera::BufferComponent, osg::FrameBufferObject::BufferComponent)

BEGIN_OBJECT_REFLECTOR(osg::FrameBufferObject)
	I_DeclaringFile("osg/FrameBufferObject");
	I_BaseType(osg::StateAttribute);
	I_Constructor0(____FrameBufferObject,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::FrameBufferObject &, copy, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____FrameBufferObject__C5_FrameBufferObject_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __osg_Object_P1__cloneType,
	          "Clone the type of an attribute, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
	          Properties::VIRTUAL,
	          __osg_Object_P1__clone__C5_osg_CopyOp_R1,
	          "Clone an attribute, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
	          Properties::VIRTUAL,
	          __bool__isSameKindAs__C5_osg_Object_P1,
	          "Return true if this and obj are of the same kind of object. ",
	          "");
	I_Method0(const char *, libraryName,
	          Properties::VIRTUAL,
	          __C5_char_P1__libraryName,
	          "Return the name of the attribute's library. ",
	          "");
	I_Method0(const char *, className,
	          Properties::VIRTUAL,
	          __C5_char_P1__className,
	          "Return the name of the attribute's class type. ",
	          "");
	I_Method0(osg::StateAttribute::Type, getType,
	          Properties::VIRTUAL,
	          __Type__getType,
	          "Return the Type identifier of the attribute's class type. ",
	          "");
	I_Method0(const osg::FrameBufferObject::AttachmentMap &, getAttachmentMap,
	          Properties::NON_VIRTUAL,
	          __C5_AttachmentMap_R1__getAttachmentMap,
	          "",
	          "");
	I_Method2(void, setAttachment, IN, osg::FrameBufferObject::BufferComponent, attachment_point, IN, const osg::FrameBufferAttachment &, attachment,
	          Properties::NON_VIRTUAL,
	          __void__setAttachment__BufferComponent__C5_FrameBufferAttachment_R1,
	          "",
	          "");
	I_Method1(const osg::FrameBufferAttachment &, getAttachment, IN, osg::FrameBufferObject::BufferComponent, attachment_point,
	          Properties::NON_VIRTUAL,
	          __C5_FrameBufferAttachment_R1__getAttachment__BufferComponent,
	          "",
	          "");
	I_Method1(bool, hasAttachment, IN, osg::FrameBufferObject::BufferComponent, attachment_point,
	          Properties::NON_VIRTUAL,
	          __bool__hasAttachment__BufferComponent,
	          "",
	          "");
	I_Method0(bool, hasMultipleRenderingTargets,
	          Properties::NON_VIRTUAL,
	          __bool__hasMultipleRenderingTargets,
	          "",
	          "");
	I_Method0(const osg::FrameBufferObject::MultipleRenderingTargets &, getMultipleRenderingTargets,
	          Properties::NON_VIRTUAL,
	          __C5_MultipleRenderingTargets_R1__getMultipleRenderingTargets,
	          "",
	          "");
	I_Method0(bool, isMultisample,
	          Properties::NON_VIRTUAL,
	          __bool__isMultisample,
	          "",
	          "");
	I_Method1(int, compare, IN, const osg::StateAttribute &, sa,
	          Properties::VIRTUAL,
	          __int__compare__C5_StateAttribute_R1,
	          "Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. ",
	          "");
	I_Method1(void, apply, IN, osg::State &, x,
	          Properties::VIRTUAL,
	          __void__apply__State_R1,
	          "apply the OpenGL state attributes. ",
	          "The render info for the current OpenGL context is passed in to allow the StateAttribute to obtain details on the the current context and state. ");
	I_Method2(void, apply, IN, osg::State &, state, IN, osg::FrameBufferObject::BindTarget, target,
	          Properties::NON_VIRTUAL,
	          __void__apply__State_R1__BindTarget,
	          "Bind the FBO as either the read or draw target, or both. ",
	          "");
	I_StaticMethod2(void, deleteFrameBufferObject, IN, unsigned int, contextID, IN, GLuint, program,
	                __void__deleteFrameBufferObject__unsigned_int__GLuint_S,
	                "Mark internal FBO for deletion. ",
	                "Deletion requests are queued until they can be executed in the proper GL context. ");
	I_StaticMethod3(void, flushDeletedFrameBufferObjects, IN, unsigned int, contextID, IN, double, currentTime, IN, double &, availableTime,
	                __void__flushDeletedFrameBufferObjects__unsigned_int__double__double_R1_S,
	                "flush all the cached FBOs which need to be deleted in the OpenGL context related to contextID. ",
	                "");
	I_StaticMethod1(void, discardDeletedFrameBufferObjects, IN, unsigned int, contextID,
	                __void__discardDeletedFrameBufferObjects__unsigned_int_S,
	                "discard all the cached FBOs which need to be deleted in the OpenGL context related to contextID. ",
	                "");
	I_ProtectedMethod0(void, updateDrawBuffers,
	                   Properties::NON_VIRTUAL,
	                   Properties::NON_CONST,
	                   __void__updateDrawBuffers,
	                   "",
	                   "");
	I_ProtectedMethod0(void, dirtyAll,
	                   Properties::NON_VIRTUAL,
	                   Properties::NON_CONST,
	                   __void__dirtyAll,
	                   "",
	                   "");
	I_ProtectedMethod1(GLenum, convertBufferComponentToGLenum, IN, osg::FrameBufferObject::BufferComponent, attachment_point,
	                   Properties::NON_VIRTUAL,
	                   Properties::CONST,
	                   __GLenum__convertBufferComponentToGLenum__BufferComponent,
	                   "",
	                   "");
	I_IndexedProperty(const osg::FrameBufferAttachment &, Attachment, 
	                  __C5_FrameBufferAttachment_R1__getAttachment__BufferComponent, 
	                  __void__setAttachment__BufferComponent__C5_FrameBufferAttachment_R1, 
	                  0);
	I_SimpleProperty(const osg::FrameBufferObject::AttachmentMap &, AttachmentMap, 
	                 __C5_AttachmentMap_R1__getAttachmentMap, 
	                 0);
	I_SimpleProperty(const osg::FrameBufferObject::MultipleRenderingTargets &, MultipleRenderingTargets, 
	                 __C5_MultipleRenderingTargets_R1__getMultipleRenderingTargets, 
	                 0);
	I_SimpleProperty(osg::StateAttribute::Type, Type, 
	                 __Type__getType, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::RenderBuffer)
	I_DeclaringFile("osg/FrameBufferObject");
	I_BaseType(osg::Object);
	I_Constructor0(____RenderBuffer,
	               "",
	               "");
	I_ConstructorWithDefaults5(IN, int, width, , IN, int, height, , IN, GLenum, internalFormat, , IN, int, samples, 0, IN, int, colorSamples, 0,
	                           ____RenderBuffer__int__int__GLenum__int__int,
	                           "",
	                           "");
	I_ConstructorWithDefaults2(IN, const osg::RenderBuffer &, copy, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____RenderBuffer__C5_RenderBuffer_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __osg_Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
	          Properties::VIRTUAL,
	          __osg_Object_P1__clone__C5_osg_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
	          Properties::VIRTUAL,
	          __bool__isSameKindAs__C5_osg_Object_P1,
	          "",
	          "");
	I_Method0(const char *, libraryName,
	          Properties::VIRTUAL,
	          __C5_char_P1__libraryName,
	          "return the name of the object's library. ",
	          "Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. ");
	I_Method0(const char *, className,
	          Properties::VIRTUAL,
	          __C5_char_P1__className,
	          "return the name of the object's class type. ",
	          "Must be defined by derived classes. ");
	I_Method0(int, getWidth,
	          Properties::NON_VIRTUAL,
	          __int__getWidth,
	          "",
	          "");
	I_Method0(int, getHeight,
	          Properties::NON_VIRTUAL,
	          __int__getHeight,
	          "",
	          "");
	I_Method1(void, setWidth, IN, int, w,
	          Properties::NON_VIRTUAL,
	          __void__setWidth__int,
	          "",
	          "");
	I_Method1(void, setHeight, IN, int, h,
	          Properties::NON_VIRTUAL,
	          __void__setHeight__int,
	          "",
	          "");
	I_Method2(void, setSize, IN, int, w, IN, int, h,
	          Properties::NON_VIRTUAL,
	          __void__setSize__int__int,
	          "",
	          "");
	I_Method0(GLenum, getInternalFormat,
	          Properties::NON_VIRTUAL,
	          __GLenum__getInternalFormat,
	          "",
	          "");
	I_Method1(void, setInternalFormat, IN, GLenum, format,
	          Properties::NON_VIRTUAL,
	          __void__setInternalFormat__GLenum,
	          "",
	          "");
	I_Method0(int, getSamples,
	          Properties::NON_VIRTUAL,
	          __int__getSamples,
	          "",
	          "");
	I_Method0(int, getColorSamples,
	          Properties::NON_VIRTUAL,
	          __int__getColorSamples,
	          "",
	          "");
	I_Method1(void, setSamples, IN, int, samples,
	          Properties::NON_VIRTUAL,
	          __void__setSamples__int,
	          "",
	          "");
	I_Method1(void, setColorSamples, IN, int, colorSamples,
	          Properties::NON_VIRTUAL,
	          __void__setColorSamples__int,
	          "",
	          "");
	I_Method2(GLuint, getObjectID, IN, unsigned int, contextID, IN, const osg::FBOExtensions *, ext,
	          Properties::NON_VIRTUAL,
	          __GLuint__getObjectID__unsigned_int__C5_FBOExtensions_P1,
	          "",
	          "");
	I_Method1(int, compare, IN, const osg::RenderBuffer &, rb,
	          Properties::NON_VIRTUAL,
	          __int__compare__C5_RenderBuffer_R1,
	          "",
	          "");
	I_StaticMethod2(void, deleteRenderBuffer, IN, unsigned int, contextID, IN, GLuint, rb,
	                __void__deleteRenderBuffer__unsigned_int__GLuint_S,
	                "Mark internal RenderBuffer for deletion. ",
	                "Deletion requests are queued until they can be executed in the proper GL context. ");
	I_StaticMethod3(void, flushDeletedRenderBuffers, IN, unsigned int, contextID, IN, double, currentTime, IN, double &, availableTime,
	                __void__flushDeletedRenderBuffers__unsigned_int__double__double_R1_S,
	                "flush all the cached RenderBuffers which need to be deleted in the OpenGL context related to contextID. ",
	                "");
	I_StaticMethod1(void, discardDeletedRenderBuffers, IN, unsigned int, contextID,
	                __void__discardDeletedRenderBuffers__unsigned_int_S,
	                "discard all the cached RenderBuffers which need to be deleted in the OpenGL context related to contextID. ",
	                "Note, unlike flush no OpenGL calls are made, instead the handles are all removed. this call is useful for when an OpenGL context has been destroyed. ");
	I_StaticMethod2(int, getMaxSamples, IN, unsigned int, contextID, IN, const osg::FBOExtensions *, ext,
	                __int__getMaxSamples__unsigned_int__C5_FBOExtensions_P1_S,
	                "",
	                "");
	I_ProtectedMethod0(void, dirtyAll,
	                   Properties::NON_VIRTUAL,
	                   Properties::CONST,
	                   __void__dirtyAll,
	                   "",
	                   "");
	I_SimpleProperty(int, ColorSamples, 
	                 __int__getColorSamples, 
	                 __void__setColorSamples__int);
	I_SimpleProperty(int, Height, 
	                 __int__getHeight, 
	                 __void__setHeight__int);
	I_SimpleProperty(GLenum, InternalFormat, 
	                 __GLenum__getInternalFormat, 
	                 __void__setInternalFormat__GLenum);
	I_SimpleProperty(int, Samples, 
	                 __int__getSamples, 
	                 __void__setSamples__int);
	I_SimpleProperty(int, Width, 
	                 __int__getWidth, 
	                 __void__setWidth__int);
END_REFLECTOR

STD_MAP_REFLECTOR(std::map< osg::Camera::BufferComponent COMMA  osg::FrameBufferAttachment >)

STD_VECTOR_REFLECTOR(std::vector< GLenum >)

