1#ifndef __H__RENDERING_INSTANCES__
2#define __H__RENDERING_INSTANCES__
39 glGenBuffers(1, &buffer->
vbo);
40 glBindBuffer(GL_ARRAY_BUFFER, buffer->
vbo);
44 glEnableVertexAttribArray(2);
45 glVertexAttribIPointer(2, 1, GL_UNSIGNED_INT,
sizeof(
instance_t), (
void *)0);
46 glVertexAttribDivisor(2, 1);
48 glEnableVertexAttribArray(3);
49 glVertexAttribPointer(3, 2, GL_FLOAT, GL_FALSE,
sizeof(
instance_t),
51 glVertexAttribDivisor(3, 1);
55 glBindBuffer(GL_ARRAY_BUFFER, 0);
73 glBindBuffer(GL_ARRAY_BUFFER, buffer->
vbo);
78 glBufferSubData(GL_ARRAY_BUFFER, offset,
sizeof(
instance_t),
#define ASSERT__(expr)
Definition defs.h:21
size_t sz
Definition defs.h:51
uint32_t u32
Definition defs.h:45
static void instance_buffer_clear(instance_buffer_t *buffer)
Definition instances.h:67
static void instance_buffer_flush(instance_buffer_t *buffer)
Definition instances.h:72
static void instance_init(instance_t *instance, vec2 position, u32 tile_index)
Definition instances.h:15
static void instance_buffer_init(instance_buffer_t *buffer, allocator_t alloc, sz capacity)
Definition instances.h:29
static void instance_buffer_push(instance_buffer_t *buffer, instance_t instance)
Definition instances.h:58
#define list_init_ty(ty, ls, alloc)
Definition list.h:36
#define list_get_ty(ty, ls, idx)
Definition list.h:130
static void list_push(list_t *ls, const void *data)
Definition list.h:72
static void list_clear(list_t *ls)
Definition list.h:161
A generic allocator type passed by value. Contains a fallback allocator and a set of function pointer...
Definition memory.h:30
Definition instances.h:20
instance_t * instances
Definition instances.h:22
sz size
Definition instances.h:24
GLuint vbo
Definition instances.h:21
sz capacity
Definition instances.h:23
list_t write_indices
Definition instances.h:26
Definition instances.h:10
vec2 position
Definition instances.h:12
u32 tile_index
Definition instances.h:11
sz size
Definition list.h:17