Euphoria
buffer2d.cc
Go to the documentation of this file.
1 #include "render/buffer2d.h"
2 
3 #include "assert/assert.h"
4 #include "core/bufferbuilder2d.h"
5 #include "base/cint.h"
6 
8 
9 namespace eu::render
10 {
12  : index_count(c_sizet_to_int(bb.tris.size()))
13  {
14  PointLayout::bind(&vao);
15  VertexBuffer::bind(&vbo);
16 
17  vbo.set_data(bb.data);
18 
19  IndexBuffer::bind(&ebo);
20  ebo.set_data(bb.tris);
21 
22  vao.bind_data(attributes2d::vertex, sizeof(float) * 4, 0);
23 
24  PointLayout::bind(nullptr);
25 
26  IndexBuffer::bind(nullptr);
27  VertexBuffer::bind(nullptr);
28  }
29 
30 
31  void
33  {
34  IndexBuffer::bind(&ebo);
35  PointLayout::bind(&vao);
36  ebo.draw(RenderMode::triangles, index_count);
37  PointLayout::bind(nullptr);
38  IndexBuffer::bind(nullptr);
39  }
40 
41 }
constexpr ShaderAttribute vertex
int c_sizet_to_int(size_t t)
Definition: cint.cc:11
std::vector< unsigned int > tris
std::vector< float > data
Buffer2d(const core::BufferBuilder2 &bb)
Definition: buffer2d.cc:11
void draw() const
Definition: buffer2d.cc:32
void set_data(const std::vector< unsigned int > &indices)
Definition: buffer.cc:162
void draw(RenderMode mode, int count) const
Definition: buffer.cc:176
static void bind(const IndexBuffer *ebo)
Definition: buffer.cc:216
static void bind(const PointLayout *vao)
Definition: buffer.cc:130
void bind_data(const ShaderAttribute &attribute, int stride, int offset)
Definition: buffer.cc:110
void set_data(const std::vector< float > &data)
Definition: buffer.cc:29
static void bind(const VertexBuffer *vbo)
Definition: buffer.cc:38