X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbufferable.h;h=f47ef4cabf17c1664838195778910886fcda778b;hb=180b20bee11425a776c5ead05afcf6a63945d3b2;hp=f157c6281d2197d17b56bd78a7d61cd1754ee186;hpb=6c525eff3eaaa617648a869449ed3bddf9c1936d;p=libs%2Fgl.git diff --git a/source/bufferable.h b/source/bufferable.h index f157c628..f47ef4ca 100644 --- a/source/bufferable.h +++ b/source/bufferable.h @@ -37,7 +37,6 @@ private: protected: mutable bool dirty; -protected: Bufferable(); public: virtual ~Bufferable(); @@ -47,16 +46,20 @@ public: void use_buffer(Buffer *buf, Bufferable *prev = 0); /** Uploads new data into the buffer if necessary. */ - void refresh() const { if(dirty) update_buffer(); } + void refresh() const { if(buffer && dirty) update_buffer(); } AsyncUpdater *refresh_async() const; private: void unlink_from_buffer(); +public: + /** Returns the buffer in which the data is stored. */ + const Buffer *get_buffer() const { return buffer; } + protected: /** Returns the buffer in which the data is stored. */ - Buffer *get_buffer() const { return buffer; } + Buffer *get_mutable_buffer() const { return buffer; } /** Returns the amount of data to be stored in the buffer, in bytes. */ virtual unsigned get_data_size() const = 0;