Sha256: 03c4347d70f29a41cdfff45506b9020c823e63000de7dca9e062c4a1e50b28f5

Contents?: true

Size: 1.38 KB

Versions: 2

Compression:

Stored size: 1.38 KB

Contents

#ifndef SAY_BUFFER_H_
#define SAY_BUFFER_H_

#include "say_basic_type.h"

#define SAY_STATIC  GL_STATIC_DRAW_ARB
#define SAY_STREAM  GL_STREAM_DRAW_ARB
#define SAY_DYNAMIC GL_DYNAMIC_DRAW_ARB

typedef struct {
  size_t vtype;

  GLuint vbo, instance_vbo;
  GLenum type;

  mo_hash *vaos;

  mo_array buffer, *instance_buffer;
} say_buffer;

say_buffer *say_buffer_create(size_t vtype, GLenum type, size_t size);
void say_buffer_free(say_buffer *buf);

bool say_buffer_has_instance(say_buffer *buf);

void *say_buffer_get_vertex(say_buffer *buf, size_t id);
void *say_buffer_get_instance(say_buffer *buf, size_t id);

void say_buffer_bind(say_buffer *buf);
void say_buffer_bind_vbo(say_buffer *buf);
void say_buffer_bind_instance_vbo(say_buffer *buf);

void say_buffer_unbind();
void say_buffer_unbind_vbo();

void say_buffer_update_part(say_buffer *buf, size_t index, size_t size);
void say_buffer_update(say_buffer *buf);

size_t say_buffer_get_size(say_buffer *buf);
void say_buffer_resize(say_buffer *buf, size_t size);

void say_buffer_update_instance_part(say_buffer *buf, size_t index,
                                     size_t size);
void say_buffer_update_instance(say_buffer *buf);

size_t say_buffer_get_instance_size(say_buffer *buf);
void say_buffer_resize_instance(say_buffer *buf, size_t size);

GLuint say_buffer_get_vbo(say_buffer *buf);
GLuint say_buffer_get_instance_vbo(say_buffer *buf);

#endif

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ray-0.2.1 ext/say_buffer.h
ray-0.2.0 ext/say_buffer.h