+public:
+ class Pass
+ {
+ private:
+ Tag tag;
+ const Lighting *lighting;
+ const DepthTest *depth_test;
+ const Blend *blend;
+ const Clipping *clipping;
+ Renderable *renderable;
+
+ public:
+ Pass(const Tag &, Renderable *);
+
+ const Tag &get_tag() const { return tag; }
+
+ void set_lighting(const Lighting *);
+ void set_depth_test(const DepthTest *);
+ void set_blend(const Blend *);
+ void set_clipping(const Clipping *);
+ const Lighting *get_lighting() const { return lighting; }
+ const DepthTest *get_depth_test() const { return depth_test; }
+ const Blend *get_blend() const { return blend; }
+ const Clipping *get_clipping() const { return clipping; }
+ Renderable *get_renderable() const { return renderable; }
+ };
+