Skip to content

Commit 77e2c66

Browse files
committed
stuff
1 parent 23a243a commit 77e2c66

File tree

5 files changed

+78
-22
lines changed

5 files changed

+78
-22
lines changed

src/ruis/render/opengl/factory.cpp

+18-5
Original file line numberDiff line numberDiff line change
@@ -180,26 +180,38 @@ utki::shared_ref<ruis::render::vertex_buffer> factory::create_vertex_buffer(
180180
utki::span<const r4::vector4<float>> vertices
181181
)
182182
{
183-
return utki::make_shared<vertex_buffer>(vertices);
183+
return utki::make_shared<vertex_buffer>(
184+
this->get_renderer(), //
185+
vertices
186+
);
184187
}
185188

186189
utki::shared_ref<ruis::render::vertex_buffer> factory::create_vertex_buffer(
187190
utki::span<const r4::vector3<float>> vertices
188191
)
189192
{
190-
return utki::make_shared<vertex_buffer>(vertices);
193+
return utki::make_shared<vertex_buffer>(
194+
this->get_renderer(), //
195+
vertices
196+
);
191197
}
192198

193199
utki::shared_ref<ruis::render::vertex_buffer> factory::create_vertex_buffer(
194200
utki::span<const r4::vector2<float>> vertices
195201
)
196202
{
197-
return utki::make_shared<vertex_buffer>(vertices);
203+
return utki::make_shared<vertex_buffer>(
204+
this->get_renderer(), //
205+
vertices
206+
);
198207
}
199208

200209
utki::shared_ref<ruis::render::vertex_buffer> factory::create_vertex_buffer(utki::span<const float> vertices)
201210
{
202-
return utki::make_shared<vertex_buffer>(vertices);
211+
return utki::make_shared<vertex_buffer>(
212+
this->get_renderer(), //
213+
vertices
214+
);
203215
}
204216

205217
utki::shared_ref<ruis::render::vertex_array> factory::create_vertex_array(
@@ -209,7 +221,8 @@ utki::shared_ref<ruis::render::vertex_array> factory::create_vertex_array(
209221
)
210222
{
211223
return utki::make_shared<vertex_array>(
212-
std::move(buffers), //
224+
this->get_renderer(), //
225+
std::move(buffers),
213226
std::move(indices),
214227
mode
215228
);

src/ruis/render/opengl/vertex_array.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
2828
using namespace ruis::render::opengl;
2929

3030
vertex_array::vertex_array(
31+
utki::shared_ref<ruis::render::renderer> renderer, //
3132
buffers_type buffers,
3233
utki::shared_ref<const ruis::render::index_buffer> indices,
3334
mode rendering_mode
3435
) :
3536
ruis::render::vertex_array(
36-
std::move(buffers), //
37+
std::move(renderer), //
38+
std::move(buffers),
3739
std::move(indices),
3840
rendering_mode
3941
),

src/ruis/render/opengl/vertex_array.hpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,12 @@ class vertex_array : public ruis::render::vertex_array
3131
public:
3232
const GLuint vao;
3333

34-
vertex_array(buffers_type buffers, utki::shared_ref<const ruis::render::index_buffer> indices, mode rendering_mode);
34+
vertex_array(
35+
utki::shared_ref<ruis::render::renderer> renderer, //
36+
buffers_type buffers,
37+
utki::shared_ref<const ruis::render::index_buffer> indices,
38+
mode rendering_mode
39+
);
3540

3641
vertex_array(const vertex_array&) = delete;
3742
vertex_array& operator=(const vertex_array&) = delete;

src/ruis/render/opengl/vertex_buffer.cpp

+32-8
Original file line numberDiff line numberDiff line change
@@ -34,32 +34,56 @@ void vertex_buffer::init(GLsizeiptr size, const GLvoid* data)
3434
assert_opengl_no_error();
3535
}
3636

37-
vertex_buffer::vertex_buffer(utki::span<const r4::vector4<float>> vertices) :
38-
ruis::render::vertex_buffer(vertices.size()),
37+
vertex_buffer::vertex_buffer(
38+
utki::shared_ref<ruis::render::renderer> renderer, //
39+
utki::span<const r4::vector4<float>> vertices
40+
) :
41+
ruis::render::vertex_buffer(
42+
std::move(renderer), //
43+
vertices.size()
44+
),
3945
num_components(4),
4046
type(GL_FLOAT)
4147
{
4248
this->init(GLsizeiptr(vertices.size_bytes()), vertices.data());
4349
}
4450

45-
vertex_buffer::vertex_buffer(utki::span<const r4::vector3<float>> vertices) :
46-
ruis::render::vertex_buffer(vertices.size()),
51+
vertex_buffer::vertex_buffer(
52+
utki::shared_ref<ruis::render::renderer> renderer, //
53+
utki::span<const r4::vector3<float>> vertices
54+
) :
55+
ruis::render::vertex_buffer(
56+
std::move(renderer), //
57+
vertices.size()
58+
),
4759
num_components(3),
4860
type(GL_FLOAT)
4961
{
5062
this->init(GLsizeiptr(vertices.size_bytes()), vertices.data());
5163
}
5264

53-
vertex_buffer::vertex_buffer(utki::span<const r4::vector2<float>> vertices) :
54-
ruis::render::vertex_buffer(vertices.size()),
65+
vertex_buffer::vertex_buffer(
66+
utki::shared_ref<ruis::render::renderer> renderer, //
67+
utki::span<const r4::vector2<float>> vertices
68+
) :
69+
ruis::render::vertex_buffer(
70+
std::move(renderer), //
71+
vertices.size()
72+
),
5573
num_components(2),
5674
type(GL_FLOAT)
5775
{
5876
this->init(GLsizeiptr(vertices.size_bytes()), vertices.data());
5977
}
6078

61-
vertex_buffer::vertex_buffer(utki::span<const float> vertices) :
62-
ruis::render::vertex_buffer(vertices.size()),
79+
vertex_buffer::vertex_buffer(
80+
utki::shared_ref<ruis::render::renderer> renderer, //
81+
utki::span<const float> vertices
82+
) :
83+
ruis::render::vertex_buffer(
84+
std::move(renderer), //
85+
vertices.size()
86+
),
6387
num_components(1),
6488
type(GL_FLOAT)
6589
{

src/ruis/render/opengl/vertex_buffer.hpp

+19-7
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,25 @@ class vertex_buffer :
3737
const GLint num_components;
3838
const GLenum type;
3939

40-
vertex_buffer(utki::span<const r4::vector4<float>> vertices);
41-
42-
vertex_buffer(utki::span<const r4::vector3<float>> vertices);
43-
44-
vertex_buffer(utki::span<const r4::vector2<float>> vertices);
45-
46-
vertex_buffer(utki::span<const float> vertices);
40+
vertex_buffer(
41+
utki::shared_ref<ruis::render::renderer> renderer, //
42+
utki::span<const r4::vector4<float>> vertices
43+
);
44+
45+
vertex_buffer(
46+
utki::shared_ref<ruis::render::renderer> renderer, //
47+
utki::span<const r4::vector3<float>> vertices
48+
);
49+
50+
vertex_buffer(
51+
utki::shared_ref<ruis::render::renderer> renderer, //
52+
utki::span<const r4::vector2<float>> vertices
53+
);
54+
55+
vertex_buffer(
56+
utki::shared_ref<ruis::render::renderer> renderer, //
57+
utki::span<const float> vertices
58+
);
4759

4860
vertex_buffer(const vertex_buffer&) = delete;
4961
vertex_buffer& operator=(const vertex_buffer&) = delete;

0 commit comments

Comments
 (0)