33 #ifndef BOOST_FILESYSTEM_VERSION
34 #define BOOST_FILESYSTEM_VERSION 2
36 #include <boost/filesystem.hpp>
37 #include <boost/signals2/signal.hpp>
39 #include <osg/NodeCallback>
40 #include <osg/Program>
43 #include "../../common/WPathHelper.h"
44 #include "../../common/WSharedAssociativeContainer.h"
45 #include "../WExportWGE.h"
46 #include "WGEShaderDefine.h"
47 #include "WGEShaderPreprocessor.h"
58 typedef osg::ref_ptr< WGEShader >
RefPtr;
85 virtual void apply( osg::ref_ptr< osg::Node > node );
93 virtual void applyDirect( osg::State& state );
100 virtual void deactivate( osg::ref_ptr< osg::Node > node );
105 virtual void reload();
116 template <
typename T >
146 void clearPreprocessors();
160 std::string processShaderRecursive(
const std::string filename,
bool optional =
false,
int level = 0 );
173 std::string processShader(
const std::string filename,
bool optional =
false );
183 void updatePrograms();
267 virtual void operator()( osg::Node* node, osg::NodeVisitor* nv );
280 template <
typename T >
290 if( define && ( define->
getName() == key ) )
308 #endif // WGESHADER_H