add GLBuffer class
This commit is contained in:
parent
2f7bac1d75
commit
7c9c176c90
30
src/gui/GLBuffer.cc
Normal file
30
src/gui/GLBuffer.cc
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#include "GLBuffer.h"
|
||||||
|
|
||||||
|
namespace jes
|
||||||
|
{
|
||||||
|
GLBuffer::GLBuffer()
|
||||||
|
{
|
||||||
|
m_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
GLBuffer::~GLBuffer()
|
||||||
|
{
|
||||||
|
if (m_id > 0)
|
||||||
|
{
|
||||||
|
glDeleteBuffers(1, &m_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GLBuffer::create(GLenum target, GLenum usage, const void *ptr, size_t sz)
|
||||||
|
{
|
||||||
|
m_target = target;
|
||||||
|
glGenBuffers(1, &m_id);
|
||||||
|
if (m_id > 0)
|
||||||
|
{
|
||||||
|
bind();
|
||||||
|
glBufferData(target, sz, ptr, usage);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
24
src/gui/GLBuffer.h
Normal file
24
src/gui/GLBuffer.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#ifndef GLBUFFER_H
|
||||||
|
#define GLBUFFER_H
|
||||||
|
|
||||||
|
#include "gl3w.h"
|
||||||
|
#include "jes.h"
|
||||||
|
|
||||||
|
namespace jes
|
||||||
|
{
|
||||||
|
class GLBuffer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
GLBuffer();
|
||||||
|
~GLBuffer();
|
||||||
|
bool create(GLenum target, GLenum usage, const void *ptr, size_t sz);
|
||||||
|
GLuint get_id() { return m_id; }
|
||||||
|
void bind() { glBindBuffer(m_target, m_id); }
|
||||||
|
protected:
|
||||||
|
GLuint m_id;
|
||||||
|
GLenum m_target;
|
||||||
|
};
|
||||||
|
typedef Ref<GLBuffer> GLBufferRef;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
x
Reference in New Issue
Block a user