///////////////////////////////////////////////////////
| 115 | |
| 116 | //////////////////////////////////////////////////////////// |
| 117 | bool VertexBuffer::create(std::size_t vertexCount) |
| 118 | { |
| 119 | if (!isAvailable()) |
| 120 | return false; |
| 121 | |
| 122 | const TransientContextLock contextLock; |
| 123 | |
| 124 | if (!m_buffer) |
| 125 | glCheck(GLEXT_glGenBuffers(1, &m_buffer)); |
| 126 | |
| 127 | if (!m_buffer) |
| 128 | { |
| 129 | err() << "Could not create vertex buffer, generation failed" << std::endl; |
| 130 | return false; |
| 131 | } |
| 132 | |
| 133 | glCheck(GLEXT_glBindBuffer(GLEXT_GL_ARRAY_BUFFER, m_buffer)); |
| 134 | glCheck(GLEXT_glBufferData(GLEXT_GL_ARRAY_BUFFER, |
| 135 | static_cast<GLsizeiptrARB>(sizeof(Vertex) * vertexCount), |
| 136 | nullptr, |
| 137 | VertexBufferImpl::usageToGlEnum(m_usage))); |
| 138 | glCheck(GLEXT_glBindBuffer(GLEXT_GL_ARRAY_BUFFER, 0)); |
| 139 | |
| 140 | m_size = vertexCount; |
| 141 | |
| 142 | return true; |
| 143 | } |
| 144 | |
| 145 | |
| 146 | //////////////////////////////////////////////////////////// |
no test coverage detected