+ /** Begins rendering, allowing commands to be issued. */
+ void begin();
+
+ /** Ends rendering. Any global state is reset to defaults. No further
+ commands are allowed before the next call to begin(). */
+ void end();
+
+ using RendererBackend::begin;
+ using RendererBackend::end;
+
+ /** Saves the current state so it can be restored later. */
+ void push_state();
+
+ /** Restores a previously saved state. Must be matched with an earlier
+ push_state call. */
+ void pop_state();
+
+private:
+ State &get_state() const;
+
+public: