X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbufferable.h;h=86c5c77fc4d39226295c3e442903eb476e85de1b;hb=ffe1debbd757d20f7250fd8572c2c46cd901f559;hp=9b2f0bf8bfe2fb58323a3be15f781d8b5aa83091;hpb=9be04243c92f024327e74ad8d48861581d83b7ed;p=libs%2Fgl.git diff --git a/source/bufferable.h b/source/bufferable.h index 9b2f0bf8..86c5c77f 100644 --- a/source/bufferable.h +++ b/source/bufferable.h @@ -20,7 +20,6 @@ public: private: const Bufferable &bufferable; char *mapped_address; - bool buffer_resized; public: AsyncUpdater(const Bufferable &); @@ -46,6 +45,14 @@ public: 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); } @@ -81,10 +88,6 @@ protected: 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;