buffer, and this object is inserted after it. */
void use_buffer(Buffer *buf, Bufferable *prev = 0);
buffer, and this object is inserted after it. */
void use_buffer(Buffer *buf, Bufferable *prev = 0);
/** Returns the total amount of storage required by this object and others
in the same chain, including any alignment between objects. */
/** 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); }
/** Uploads new data into the buffer if necessary. */
void refresh() const { if(buffer && dirty) upload_data(0); }