private:
const Bufferable &bufferable;
char *mapped_address;
- bool buffer_resized;
public:
AsyncUpdater(const Bufferable &);
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();
+
+ /** Returns the total amount of storage required by this object and others
+ in the same chain, including any alignment between objects. */
+ unsigned get_required_buffer_size() const;
+
/** Uploads new data into the buffer if necessary. */
void refresh() const { if(buffer && dirty) upload_data(0); }
virtual void location_changed(Buffer *, unsigned, unsigned) const { }
private:
- bool resize_buffer() const;
-
- void update_buffer_size() const;
-
/** Uploads data to the buffer. Receives pointer to mapped buffer memory as
parameter. If null, buffer interface should be used instead. */
void upload_data(char *) const;