#pragma once



class GlVBO
{
public:
	GlVBO(GLenum target);
	virtual ~GlVBO(void);

	void GenerateBuffer(void);

	GLuint GetID(void);
	bool HasBuffer(void) const;

	void ReleaseBufferElement(void);

	void Bind(void);
	void AssginBuffer2f(const std::vector<lm::vec2f>& buf);
	void AssginBuffer3f(const std::vector<lm::vec3f>& buf);
	void AssginBufferi(const std::vector<GLuint>& buf);

	void BindPtrAsNoral(void);
	void BindPtrAsColor(void);
	void BindPtrAsTexcoord(void);
	void BindPtrAsAttrib3f(GLint buf_id);

protected:
	GLuint m_BufID;
	GLenum m_Target;
};
