59 if (src->vbo_id_ != 0) {
62 glGenBuffers(1, &dst->vbo_id_);
63 glBindBuffer(GL_COPY_WRITE_BUFFER, dst->vbo_id_);
64 glBufferData(GL_COPY_WRITE_BUFFER, dst->vbo_size_,
nullptr,
to_gl(dst->
usage_));
66 glBindBuffer(GL_COPY_READ_BUFFER, src->vbo_id_);
68 glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, 0, 0, dst->vbo_size_);
73 if (
data !=
nullptr) {
88 glGenBuffers(1, &vbo_id_);
91 glBindBuffer(GL_ARRAY_BUFFER, vbo_id_);
96 glBufferData(GL_ARRAY_BUFFER, vbo_size_,
nullptr,
to_gl(
usage_));
97 glBufferSubData(GL_ARRAY_BUFFER, 0, vbo_size_,
data);
111 glBufferSubData(GL_ARRAY_BUFFER, start,
len,
data);
@ GPU_VERTBUF_DATA_UPLOADED
#define MEM_reallocN(vmemh, len)
static void buf_free(GLuint buf_id)
void resize_data(void) override
void duplicate_data(VertBuf *dst) override
void acquire_data(void) override
void release_data(void) override
void upload_data(void) override
void update_sub(uint start, uint len, void *data) override
static size_t memory_usage
size_t size_used_get(void) const
size_t size_alloc_get(void) const
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_mallocN)(size_t len, const char *str)
static GLenum to_gl(const GPUAttachmentType type)