#include <osg/Camera>
#include <string>
+#include <simgear/structure/SGExpression.hxx>
+
namespace simgear
{
class SGReaderWriterOptions;
class FGRenderingPipeline : public osg::Referenced {
public:
- struct Buffer : public osg::Referenced {
+ class Conditionable : public osg::Referenced {
+ public:
+ Conditionable() : _alwaysValid(true) {}
+ void parseCondition(SGPropertyNode* prop);
+ bool getAlwaysValid() const { return _alwaysValid; }
+ void setAlwaysValid(bool val) { _alwaysValid = val; }
+ void setValidExpression(SGExpressionb* exp);
+ bool valid();
+ protected:
+ bool _alwaysValid;
+ SGSharedPtr<SGExpressionb> _validExpression;
+ };
+ struct Buffer : public Conditionable {
Buffer(SGPropertyNode* prop);
std::string name;
//osg::Vec4 borderColor;
};
- struct Pass : public osg::Referenced {
+ struct Pass : public Conditionable {
Pass(SGPropertyNode* prop);
std::string name;
std::string type;
+ int orderNum;
+ std::string effect;
+ std::string debugProperty;
};
- struct Attachment : public osg::Referenced {
+ struct Attachment : public Conditionable {
Attachment(SGPropertyNode* prop);
Attachment(osg::Camera::BufferComponent c, const std::string& b ) : component(c), buffer(b) {}
};
typedef std::vector<osg::ref_ptr<Attachment> > AttachmentList;
- struct Stage : public osg::Referenced {
+ struct Stage : public Pass {
Stage(SGPropertyNode* prop);
- std::string name;
- std::string type;
- int orderNum;
- std::string effect;
+ bool needsDuDv;
+ float scaleFactor;
std::vector<osg::ref_ptr<Pass> > passes;
AttachmentList attachments;
const simgear::SGReaderWriterOptions* options);
};
+namespace flightgear {
+
+class PipelinePredParser : public simgear::expression::ExpressionParser
+{
+public:
+protected:
+};
+}
+
#endif