OpenSceneGraph/include/osg/RenderInfo
Robert Osfield def74d3471 Introduced new osg::View, and osg::RenderInfo classes into the core OSG to help
handle scenes with multiple views with elements that need coordinating on a per view basis.

Added beginings of new osgText::FadeText class (not functionality yet).
2006-09-18 20:54:48 +00:00

71 lines
1.9 KiB
C++

/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSG_RENDERINFO
#define OSG_RENDERINFO 1
#include <osg/State>
#include <osg/View>
#include <osg/observer_ptr>
namespace osg {
class RenderInfo
{
public:
RenderInfo():
_view(0) {}
RenderInfo(const RenderInfo& rhs):
_state(rhs._state),
_view(rhs._view),
_userData(rhs._userData) {}
RenderInfo(State* state, View* view):
_state(state),
_view(view) {}
RenderInfo& operator = (const RenderInfo& rhs)
{
_state = rhs._state;
_view = rhs._view;
_userData = rhs._userData;
return *this;
}
unsigned int getContextID() const { return _state.valid() ? _state->getContextID() : 0; }
void setState(State* state) { _state = state; }
State* getState() { return _state.get(); }
const State* getState() const { return _state.get(); }
void setView(View* view) { _view = view; }
View* getView() { return _view.get(); }
const View* getView() const { return _view.get(); }
void setUserData(Referenced* userData) { _userData = userData; }
Referenced* getUserData() { return _userData.get(); }
const Referenced* getUserData() const { return _userData.get(); }
protected:
ref_ptr<State> _state;
observer_ptr<View> _view;
ref_ptr<Referenced> _userData;
};
}
#endif