[42] | 1 | // Copyright (C) 2012-2013 Kornel Kisielewicz
|
---|
| 2 | // This file is part of NV Libraries.
|
---|
| 3 | // For conditions of distribution and use, see copyright notice in nv.hh
|
---|
| 4 |
|
---|
| 5 | #include "nv/gl/gl_vertex_buffer.hh"
|
---|
| 6 |
|
---|
| 7 | #include "nv/lib/gl.hh"
|
---|
| 8 | #include "nv/gl/gl_enum.hh"
|
---|
| 9 |
|
---|
| 10 | using namespace nv;
|
---|
| 11 |
|
---|
[153] | 12 | gl_vertex_buffer::gl_vertex_buffer( buffer_hint hint, size_t size, const void* data )
|
---|
[300] | 13 | : vertex_buffer( hint, size )
|
---|
[42] | 14 | {
|
---|
[300] | 15 | glGenBuffers( 1, &glid );
|
---|
| 16 | glBindBuffer( GL_ARRAY_BUFFER, glid );
|
---|
[121] | 17 | glBufferData( GL_ARRAY_BUFFER, (GLsizeiptr)m_size, data, buffer_hint_to_enum( m_hint ) );
|
---|
[42] | 18 | glBindBuffer( GL_ARRAY_BUFFER, 0 );
|
---|
| 19 | }
|
---|
| 20 |
|
---|
[300] | 21 | nv::gl_vertex_buffer::~gl_vertex_buffer()
|
---|
| 22 | {
|
---|
| 23 | if ( glid != 0 )
|
---|
| 24 | {
|
---|
| 25 | glDeleteBuffers( 1, &glid );
|
---|
| 26 | }
|
---|
| 27 | }
|
---|
| 28 |
|
---|
[153] | 29 | gl_index_buffer::gl_index_buffer( buffer_hint hint, size_t size, const void* data )
|
---|
[300] | 30 | : index_buffer( hint, size )
|
---|
[44] | 31 | {
|
---|
[300] | 32 | glGenBuffers( 1, &glid );
|
---|
| 33 |
|
---|
| 34 | glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, glid );
|
---|
[121] | 35 | glBufferData( GL_ELEMENT_ARRAY_BUFFER, (GLsizeiptr)m_size, data, buffer_hint_to_enum( m_hint ) );
|
---|
[44] | 36 | glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 0 );
|
---|
| 37 | }
|
---|
| 38 |
|
---|
[300] | 39 | nv::gl_index_buffer::~gl_index_buffer()
|
---|
| 40 | {
|
---|
| 41 | if ( glid != 0 )
|
---|
| 42 | {
|
---|
| 43 | glDeleteBuffers( 1, &glid );
|
---|
| 44 | }
|
---|
| 45 | }
|
---|