2 #ifndef __FG_RENDERINGPIPELINE_HXX
3 #define __FG_RENDERINGPIPELINE_HXX 1
10 class SGReaderWriterOptions;
18 class FGRenderingPipeline;
19 namespace flightgear {
20 FGRenderingPipeline* makeRenderingPipeline(const std::string& name,
21 const simgear::SGReaderWriterOptions* options);
24 class FGRenderingPipeline : public osg::Referenced {
26 struct Buffer : public osg::Referenced {
27 Buffer(SGPropertyNode* prop);
37 bool shadowComparison;
38 //GLenum shadowTextureMode;
39 //osg::Vec4 borderColor;
42 struct Pass : public osg::Referenced {
43 Pass(SGPropertyNode* prop);
49 struct Stage : public osg::Referenced {
50 Stage(SGPropertyNode* prop);
55 std::vector<osg::ref_ptr<Pass> > passes;
57 FGRenderingPipeline();
59 flightgear::CameraInfo* buildCamera(flightgear::CameraGroup* cgroup,
62 const osg::Matrix& view,
63 const osg::Matrix& projection,
64 osg::GraphicsContext* gc);
67 std::vector<osg::ref_ptr<Buffer> > buffers;
68 std::vector<osg::ref_ptr<Stage> > stages;
70 void buildBuffers(flightgear::CameraInfo* info);
71 void buildStage(flightgear::CameraInfo* info,
73 flightgear::CameraGroup* cgroup,
75 const osg::Matrix& view,
76 const osg::Matrix& projection,
77 osg::GraphicsContext* gc);
78 void buildMainCamera(flightgear::CameraInfo* info,
80 flightgear::CameraGroup* cgroup,
82 const osg::Matrix& view,
83 const osg::Matrix& projection,
84 osg::GraphicsContext* gc);
86 friend FGRenderingPipeline* flightgear::makeRenderingPipeline(const std::string& name,
87 const simgear::SGReaderWriterOptions* options);