15#ifndef OSGFX_TECHNIQUE_
16#define OSGFX_TECHNIQUE_
32#define META_Technique(name, description) \
33 inline virtual const char *techniqueName() { return name; } \
34 inline virtual const char *techniqueDescription() { return description; }
82 inline int getNumPasses()
const;
104 inline void dirtyPasses();
125 typedef std::vector<osg::ref_ptr<osg::StateSet> > Pass_list;
135 return _passesDefined!=0 ?
static_cast<int>(_passes.size()) : 0;
140 return _passesDefined!=0 ? _passes[i].get() : 0;
145 return _passesDefined!=0 ? _passes[i].get() : 0;
This class provides an atomic increment and decrement operation.
Definition Atomic:48
_OPENTHREADS_ATOMIC_INLINE unsigned exchange(unsigned value=0)
Definition Atomic:200
This class provides an object-oriented thread mutex interface.
Definition Mutex:31
Technique & operator=(const Technique &)
Definition Technique:101
virtual const char * techniqueName()
Definition Technique:62
int getNumPasses() const
Definition Technique:133
virtual void define_passes()=0
virtual void getRequiredExtensions(std::vector< std::string > &) const
Definition Technique:72
void traverse_implementation(osg::NodeVisitor &nv, Effect *fx)
virtual bool validate(osg::State &) const
Technique(const Technique &)
Definition Technique:99
virtual void traverse(osg::NodeVisitor &nv, Effect *fx)
Definition Technique:155
virtual osg::Node * getOverrideChild(int)
Definition Technique:110
osg::StateSet * getPassStateSet(int i)
Definition Technique:138
virtual ~Technique()
Definition Technique:100
virtual const char * techniqueDescription()
Definition Technique:65
void addPass(osg::StateSet *ss=0)
void dirtyPasses()
Definition Technique:148
Definition NodeVisitor:82
Definition AnisotropicLighting:25
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
#define OSGFX_EXPORT
Definition osgFX/Export:27