]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/bufferable.h
Rewrite state management
[libs/gl.git] / source / core / bufferable.h
index cbbde4e1b93f1e07266c097c150774f2b5621d3c..47e2770c58675fd128d16afa6b50446e7f53a62f 100644 (file)
@@ -66,10 +66,10 @@ public:
        /** Returns the buffer in which the data is stored. */
        const Buffer *get_buffer() const { return buffer; }
 
-protected:
-       /** Returns the amount of data to be stored in the buffer, in bytes. */
+       /** Returns the size of the data, in bytes. */
        virtual unsigned get_data_size() const = 0;
 
+protected:
        /** Returns a pointer to the start of data in client memory. */
        virtual const void *get_data_pointer() const = 0;
 
@@ -82,13 +82,14 @@ protected:
        changes. */
        void update_offset();
 
-       /** Returns the offset where the data should be uploaded. */
+public:
+       /** Returns the offset of the data from the beginning of the buffer. */
        unsigned get_offset() const { return offset; }
 
+private:
        /** Called when the target buffer or offset within it has changed. */
        virtual void location_changed(Buffer *, unsigned, unsigned) const { }
 
-private:
        /** Uploads data to the buffer.  Receives pointer to mapped buffer memory as
        parameter, or null to use the buffer upload interface. */
        void upload_data(char *) const;