bool load_vb_buffers(struct gs_program *program, struct gs_vertex_buffer *vb)
{
	struct gs_shader *shader = program->vertex_shader;
	size_t i;

	if (!gl_bind_vertex_array(vb->vao))
		return false;

	for (i = 0; i < shader->attribs.num; i++) {
		struct shader_attrib *attrib = shader->attribs.array+i;
		if (!load_vb_buffer(attrib, vb, program->attribs.array[i]))
			return false;
	}

	return true;
}
Exemple #2
0
static inline bool load_vb_buffers(struct gs_shader *shader,
		struct gs_vertex_buffer *vb)
{
	size_t i;

	if (!gl_bind_vertex_array(vb->vao))
		return false;

	for (i = 0; i < shader->attribs.num; i++) {
		struct shader_attrib *attrib = shader->attribs.array+i;
		if (!load_vb_buffer(shader, attrib, vb))
			return false;
	}

	return true;
}
Exemple #3
0
bool load_vb_buffers(struct gs_program *program, struct gs_vertex_buffer *vb,
                     struct gs_index_buffer *ib)
{
    struct gs_shader *shader = program->vertex_shader;
    size_t i;

    if (!gl_bind_vertex_array(vb->vao))
        return false;

    for (i = 0; i < shader->attribs.num; i++) {
        struct shader_attrib *attrib = shader->attribs.array+i;
        if (!load_vb_buffer(attrib, vb, program->attribs.array[i]))
            return false;
    }

    if (ib && !gl_bind_buffer(GL_ELEMENT_ARRAY_BUFFER, ib->buffer))
        return false;

    return true;
}