]> git.tdb.fi Git - libs/gl.git/blobdiff - source/buffer.h
Present Mesh's index buffer as current while the Mesh is bound
[libs/gl.git] / source / buffer.h
index b3a2902f6cb2ca89f663b8c20a8ea0207e8bbdd7..a7d4c2ba4314f8cbbc9db9fb6c2422cf0e85da2c 100644 (file)
@@ -58,6 +58,12 @@ private:
        static void require_buffer_type(BufferType);
 
 public:
+       /** Returns the OpenGL ID of the buffer.  For internal use only. */
+       unsigned get_id() const { return id; }
+
+       /** Returns the default binding type for the buffer. */
+       BufferType get_type() const { return type; }
+
        /** Sets the usage hint of the buffer.  It will take effect the next time
        the buffer's contents are defined. */
        void set_usage(BufferUsage);
@@ -83,30 +89,11 @@ public:
        /** Unbinds the buffer from its default slot. */
        void unbind() const { unbind_from(type); }
 
-       static const Buffer *current(BufferType t) { return binding(t); }
+       static const Buffer *current(BufferType);
        static void unbind_from(BufferType);
 private:
        static const Buffer *&binding(BufferType);
        static bool set_current(BufferType, const Buffer *);
-       static void restore(const Buffer *, BufferType);
-};
-
-
-/**
-An adaptor for Buffer to make it compatible with Bind.
-*/
-template<BufferType T>
-class BufferAlias
-{
-private:
-       const Buffer &buffer;
-
-public:
-       BufferAlias(const Buffer &b): buffer(b) { }
-
-       void bind() const { buffer.bind_to(T); }
-       static const Buffer *current() { return Buffer::current(T); }
-       static void unbind() { Buffer::unbind_from(T); }
 };