// ***************************************************************************
//
//   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/GraphicsContext>
#include <osg/Object>
#include <osg/State>
#include <osg/Stats>
#include <osg/Timer>
#include <osgUtil/SceneView>
#include <osgViewer/Renderer>

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

TYPE_NAME_ALIAS(std::pair< GLuint COMMA  int >, osgViewer::OpenGLQuerySupport::QueryFrameNumberPair)

TYPE_NAME_ALIAS(std::list< osgViewer::OpenGLQuerySupport::QueryFrameNumberPair >, osgViewer::OpenGLQuerySupport::QueryFrameNumberList)

TYPE_NAME_ALIAS(std::vector< GLuint >, osgViewer::OpenGLQuerySupport::QueryList)

BEGIN_VALUE_REFLECTOR(osgViewer::OpenGLQuerySupport)
	I_DeclaringFile("osgViewer/Renderer");
	I_Constructor0(____OpenGLQuerySupport,
	               "",
	               "");
	I_Method1(void, setStartTick, IN, osg::Timer_t, startTick,
	          Properties::NON_VIRTUAL,
	          __void__setStartTick__osg_Timer_t,
	          "",
	          "");
	I_Method0(osg::Timer_t, getStartTick,
	          Properties::NON_VIRTUAL,
	          __osg_Timer_t__getStartTick,
	          "",
	          "");
	I_Method1(void, checkQuery, IN, osg::Stats *, stats,
	          Properties::NON_VIRTUAL,
	          __void__checkQuery__osg_Stats_P1,
	          "",
	          "");
	I_Method0(GLuint, createQueryObject,
	          Properties::NON_VIRTUAL,
	          __GLuint__createQueryObject,
	          "",
	          "");
	I_Method1(void, beginQuery, IN, int, frameNumber,
	          Properties::NON_VIRTUAL,
	          __void__beginQuery__int,
	          "",
	          "");
	I_Method0(void, endQuery,
	          Properties::NON_VIRTUAL,
	          __void__endQuery,
	          "",
	          "");
	I_Method1(void, initialize, IN, osg::State *, state,
	          Properties::NON_VIRTUAL,
	          __void__initialize__osg_State_P1,
	          "",
	          "");
	I_SimpleProperty(osg::Timer_t, StartTick, 
	                 __osg_Timer_t__getStartTick, 
	                 __void__setStartTick__osg_Timer_t);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgViewer::Renderer)
	I_DeclaringFile("osgViewer/Renderer");
	I_BaseType(osg::GraphicsOperation);
	I_BaseType(osgViewer::OpenGLQuerySupport);
	I_Constructor1(IN, osg::Camera *, camera,
	               Properties::NON_EXPLICIT,
	               ____Renderer__osg_Camera_P1,
	               "",
	               "");
	I_Method1(osgUtil::SceneView *, getSceneView, IN, unsigned int, i,
	          Properties::NON_VIRTUAL,
	          __osgUtil_SceneView_P1__getSceneView__unsigned_int,
	          "",
	          "");
	I_Method1(void, setDone, IN, bool, done,
	          Properties::NON_VIRTUAL,
	          __void__setDone__bool,
	          "",
	          "");
	I_Method0(bool, getDone,
	          Properties::NON_VIRTUAL,
	          __bool__getDone,
	          "",
	          "");
	I_Method1(void, setGraphicsThreadDoesCull, IN, bool, flag,
	          Properties::NON_VIRTUAL,
	          __void__setGraphicsThreadDoesCull__bool,
	          "",
	          "");
	I_Method0(bool, getGraphicsThreadDoesCull,
	          Properties::NON_VIRTUAL,
	          __bool__getGraphicsThreadDoesCull,
	          "",
	          "");
	I_Method0(void, cull,
	          Properties::VIRTUAL,
	          __void__cull,
	          "",
	          "");
	I_Method0(void, draw,
	          Properties::VIRTUAL,
	          __void__draw,
	          "",
	          "");
	I_Method0(void, cull_draw,
	          Properties::VIRTUAL,
	          __void__cull_draw,
	          "",
	          "");
	I_Method0(void, compile,
	          Properties::VIRTUAL,
	          __void__compile,
	          "",
	          "");
	I_Method1(void, setCompileOnNextDraw, IN, bool, flag,
	          Properties::NON_VIRTUAL,
	          __void__setCompileOnNextDraw__bool,
	          "",
	          "");
	I_Method0(bool, getCompileOnNextDraw,
	          Properties::NON_VIRTUAL,
	          __bool__getCompileOnNextDraw,
	          "",
	          "");
	I_Method0(void, release,
	          Properties::VIRTUAL,
	          __void__release,
	          "if this operation is a barrier then release it. ",
	          "");
	I_Method1(void, setTargetFrameRate, IN, double, tfr,
	          Properties::NON_VIRTUAL,
	          __void__setTargetFrameRate__double,
	          "Set the target frame rate that the DatabasePager should assume. ",
	          "Typically one would set this to the value refresh rate of your display system i.e. 60Hz. Default value is 100. Usage notes. The TargetFrameRate and the MinimumTimeAvailableForGLCompileAndDeletePerFrame parameters are not directly used by DatabasePager, but are should be used as a guide for how long to set aside per frame for compiling and deleting OpenGL objects - ie. the value to use when calling DatabasePager::compileGLObjectgs(state,availableTime,). The longer amount of time to set aside cthe faster databases will be paged in but with increased chance of frame drops, the lower the amount of time the set aside the slower databases will paged it but with better chance of avoid any frame drops. The default values are chosen to achieve the later when running on a modern mid to high end PC. The way to compute the amount of available time use a scheme such as : availableTime = maximum(1.0/targetFrameRate - timeTakenDuringUpdateCullAndDraw, minimumTimeAvailableForGLCompileAndDeletePerFrame).Note, the actual TargetFrameRate used is the minimum of this value and that set in the DatabasePager. ");
	I_Method0(double, getTargetFrameRate,
	          Properties::NON_VIRTUAL,
	          __double__getTargetFrameRate,
	          "Get the target frame rate that the DatabasePager should assume. ",
	          "");
	I_Method1(void, setMinimumTimeAvailableForGLCompileAndDeletePerFrame, IN, double, ta,
	          Properties::NON_VIRTUAL,
	          __void__setMinimumTimeAvailableForGLCompileAndDeletePerFrame__double,
	          "Set the minimum amount of time (in seconds) that should be made available for compiling and delete OpenGL objects per frame. ",
	          "Default value is 0.001 (1 millisecond). For usage see notes in setTargetFrameRate.Note, the actual TargetFrameRate used is the minimum of this value and that set in the DatabasePager. ");
	I_Method0(double, getMinimumTimeAvailableForGLCompileAndDeletePerFrame,
	          Properties::NON_VIRTUAL,
	          __double__getMinimumTimeAvailableForGLCompileAndDeletePerFrame,
	          "Get the minimum amount of time that should be made available for compiling and delete OpenGL objects per frame. ",
	          "For usage see notes in setTargetFrameRate. ");
	I_Method1(void, setFlushTimeRatio, IN, double, ratio,
	          Properties::NON_VIRTUAL,
	          __void__setFlushTimeRatio__double,
	          "FlushTimeRatio governs how much of the spare time in each frame is used for flushing deleted OpenGL objects. ",
	          "Default value is 0.5, valid range is 0.1 to 0.9. ");
	I_Method0(double, getFlushTimeRatio,
	          Properties::NON_VIRTUAL,
	          __double__getFlushTimeRatio,
	          "",
	          "");
	I_Method1(void, setConservativeTimeRatio, IN, double, ratio,
	          Properties::NON_VIRTUAL,
	          __void__setConservativeTimeRatio__double,
	          "ConservativeTimeRatio governs how much of the measured spare time in each frame is used for flushing deleted and compile new OpenGL objects. ",
	          "Default value is 0.5, valid range is 0.1 to 1.0. A ratio near 1.0 will lead to paged databases being compiled and merged quicker but increase the chances of frame drop. A ratio near 0.1 will lead to paged databases being compiled and merged closer but reduse the chances of frame drop. ");
	I_Method0(double, getConservativeTimeRatio,
	          Properties::NON_VIRTUAL,
	          __double__getConservativeTimeRatio,
	          "",
	          "");
	I_ProtectedMethod1(void, updateSceneView, IN, osgUtil::SceneView *, sceneView,
	                   Properties::VIRTUAL,
	                   Properties::NON_CONST,
	                   __void__updateSceneView__osgUtil_SceneView_P1,
	                   "",
	                   "");
	I_ProtectedMethod4(void, flushAndCompile, IN, double, currentElapsedFrameTime, IN, osgUtil::SceneView *, sceneView, IN, osgDB::DatabasePager *, databasePager, IN, osg::GraphicsThread *, compileThread,
	                   Properties::VIRTUAL,
	                   Properties::NON_CONST,
	                   __void__flushAndCompile__double__osgUtil_SceneView_P1__osgDB_DatabasePager_P1__osg_GraphicsThread_P1,
	                   "",
	                   "");
	I_SimpleProperty(bool, CompileOnNextDraw, 
	                 __bool__getCompileOnNextDraw, 
	                 __void__setCompileOnNextDraw__bool);
	I_SimpleProperty(double, ConservativeTimeRatio, 
	                 __double__getConservativeTimeRatio, 
	                 __void__setConservativeTimeRatio__double);
	I_SimpleProperty(bool, Done, 
	                 __bool__getDone, 
	                 __void__setDone__bool);
	I_SimpleProperty(double, FlushTimeRatio, 
	                 __double__getFlushTimeRatio, 
	                 __void__setFlushTimeRatio__double);
	I_SimpleProperty(bool, GraphicsThreadDoesCull, 
	                 __bool__getGraphicsThreadDoesCull, 
	                 __void__setGraphicsThreadDoesCull__bool);
	I_SimpleProperty(double, MinimumTimeAvailableForGLCompileAndDeletePerFrame, 
	                 __double__getMinimumTimeAvailableForGLCompileAndDeletePerFrame, 
	                 __void__setMinimumTimeAvailableForGLCompileAndDeletePerFrame__double);
	I_SimpleProperty(double, TargetFrameRate, 
	                 __double__getTargetFrameRate, 
	                 __void__setTargetFrameRate__double);
END_REFLECTOR

STD_LIST_REFLECTOR(std::list< osgViewer::OpenGLQuerySupport::QueryFrameNumberPair >)

STD_PAIR_REFLECTOR(std::pair< GLuint COMMA  int >)

