#include "property_based_element.hxx"
#include <Canvas/canvas_fwd.hpp>
-#include <Instrumentation/od_gauge.hxx>
+#include <Cockpit/od_gauge.hxx>
#include <simgear/props/propertyObject.hxx>
#include <osg/NodeCallback>
+#include <osg/observer_ptr>
#include <memory>
#include <string>
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv);
};
typedef osg::ref_ptr<CameraCullCallback> CameraCullCallbackPtr;
+ typedef osg::observer_ptr<CameraCullCallback> CameraCullCallbackWeakPtr;
/**
* This callback is installed on every placement of the canvas in the
CullCallback(CameraCullCallback* camera_cull);
private:
- CameraCullCallback *_camera_cull;
+ CameraCullCallbackWeakPtr _camera_cull;
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv);
};
typedef osg::ref_ptr<CullCallback> CullCallbackPtr;
+ /**
+ * Callback for resetting the render_dirty flag after rendering a frame.
+ */
+ class DrawCallback;
+
Canvas(SGPropertyNode* node);
virtual ~Canvas();
int getSizeX() const
{ return _size_x; }
-
+
int getSizeY() const
{ return _size_y; }
-
+
void setSizeX(int sx);
void setSizeY(int sy);
_mouse_event;
bool _sampling_dirty,
- _color_dirty;
+ _color_dirty,
+ _render_dirty;
FGODGauge _texture;
std::auto_ptr<canvas::Group> _root_group;