buffer, and this object is inserted after it. */
void use_buffer(Buffer *buf, Bufferable *prev = 0);
- /** Informs the objects in this chain that the buffer has been resized and
- data should be reuploaded. */
- void buffer_resized();
+ /** Sets the buffer for the entire chain of objects. */
+ void change_buffer(Buffer *);
/** Returns the total amount of storage required by this object and others
in the same chain, including any alignment between objects. */
/** Uploads new data into the buffer if necessary. */
void refresh() const { if(buffer && dirty) upload_data(0); }
+ /** Returns an object which can be used to upload data to the buffer using
+ mapped memory. */
AsyncUpdater *refresh_async() const;
private:
private:
/** Uploads data to the buffer. Receives pointer to mapped buffer memory as
- parameter. If null, buffer interface should be used instead. */
+ parameter, or null to use the buffer upload interface. */
void upload_data(char *) const;
};