Skip to content

Commit a6587ca

Browse files
committed
factory->context
1 parent 6d4c1bb commit a6587ca

File tree

6 files changed

+238
-206
lines changed

6 files changed

+238
-206
lines changed

src/ruis/render/null/context.cpp

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
/*
2+
ruis-render-null - null renderer
3+
4+
Copyright (C) 2024-2024 Ivan Gagis <igagis@gmail.com>
5+
6+
This program is free software: you can redistribute it and/or modify
7+
it under the terms of the GNU General Public License as published by
8+
the Free Software Foundation, either version 3 of the License, or
9+
(at your option) any later version.
10+
11+
This program is distributed in the hope that it will be useful,
12+
but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
GNU General Public License for more details.
15+
16+
You should have received a copy of the GNU General Public License
17+
along with this program. If not, see <http://www.gnu.org/licenses/>.
18+
*/
19+
20+
/* ================ LICENSE END ================ */
21+
22+
#include "context.hpp"
23+
24+
#include "frame_buffer.hpp"
25+
#include "index_buffer.hpp"
26+
#include "texture_2d.hpp"
27+
#include "texture_cube.hpp"
28+
#include "texture_depth.hpp"
29+
#include "vertex_array.hpp"
30+
#include "vertex_buffer.hpp"
31+
32+
using namespace ruis::render::null;
33+
34+
utki::shared_ref<ruis::render::frame_buffer> context::create_framebuffer(
35+
std::shared_ptr<ruis::render::texture_2d> color,
36+
std::shared_ptr<ruis::render::texture_depth> depth,
37+
std::shared_ptr<ruis::render::texture_stencil> stencil
38+
)
39+
{
40+
return utki::make_shared<frame_buffer>(
41+
this->get_shared_ref(), //
42+
std::move(color),
43+
std::move(depth),
44+
std::move(stencil)
45+
);
46+
}
47+
48+
utki::shared_ref<ruis::render::index_buffer> context::create_index_buffer(utki::span<const uint16_t> indices)
49+
{
50+
return utki::make_shared<index_buffer>(
51+
this->get_shared_ref(), //
52+
indices
53+
);
54+
}
55+
56+
utki::shared_ref<ruis::render::index_buffer> context::create_index_buffer(utki::span<const uint32_t> indices)
57+
{
58+
return utki::make_shared<index_buffer>(
59+
this->get_shared_ref(), //
60+
indices
61+
);
62+
}
63+
64+
utki::shared_ref<ruis::render::texture_2d> context::create_texture_2d(
65+
rasterimage::format format,
66+
rasterimage::dimensioned::dimensions_type dims,
67+
texture_2d_parameters params
68+
)
69+
{
70+
return utki::make_shared<texture_2d>(
71+
this->get_shared_ref(), //
72+
rasterimage::image_variant(dims, format),
73+
std::move(params)
74+
);
75+
}
76+
77+
utki::shared_ref<ruis::render::texture_2d> context::create_texture_2d(
78+
const rasterimage::image_variant& imvar,
79+
texture_2d_parameters params
80+
)
81+
{
82+
return utki::make_shared<texture_2d>(
83+
this->get_shared_ref(), //
84+
imvar,
85+
std::move(params)
86+
);
87+
}
88+
89+
utki::shared_ref<ruis::render::texture_2d> context::create_texture_2d(
90+
rasterimage::image_variant&& imvar,
91+
texture_2d_parameters params
92+
)
93+
{
94+
return utki::make_shared<texture_2d>(
95+
this->get_shared_ref(), //
96+
std::move(imvar),
97+
std::move(params)
98+
);
99+
}
100+
101+
utki::shared_ref<ruis::render::texture_depth> context::create_texture_depth(r4::vector2<uint32_t> dims)
102+
{
103+
return utki::make_shared<texture_depth>(
104+
this->get_shared_ref(), //
105+
dims
106+
);
107+
}
108+
109+
utki::shared_ref<ruis::render::texture_cube> context::create_texture_cube(
110+
rasterimage::image_variant&& positive_x,
111+
rasterimage::image_variant&& negative_x,
112+
rasterimage::image_variant&& positive_y,
113+
rasterimage::image_variant&& negative_y,
114+
rasterimage::image_variant&& positive_z,
115+
rasterimage::image_variant&& negative_z
116+
)
117+
{
118+
return utki::make_shared<texture_cube>(
119+
this->get_shared_ref(), //
120+
std::move(positive_x),
121+
std::move(negative_x),
122+
std::move(positive_y),
123+
std::move(negative_y),
124+
std::move(positive_z),
125+
std::move(negative_z)
126+
);
127+
}
128+
129+
utki::shared_ref<ruis::render::vertex_array> context::create_vertex_array(
130+
std::vector<utki::shared_ref<const ruis::render::vertex_buffer>> buffers,
131+
utki::shared_ref<const ruis::render::index_buffer> indices,
132+
ruis::render::vertex_array::mode rendering_mode
133+
)
134+
{
135+
return utki::make_shared<vertex_array>(
136+
this->get_shared_ref(), //
137+
std::move(buffers),
138+
std::move(indices),
139+
rendering_mode
140+
);
141+
}
142+
143+
utki::shared_ref<ruis::render::vertex_buffer> context::create_vertex_buffer(utki::span<const float> vertices)
144+
{
145+
return utki::make_shared<vertex_buffer>(
146+
this->get_shared_ref(), //
147+
vertices
148+
);
149+
}
150+
151+
utki::shared_ref<ruis::render::vertex_buffer> context::create_vertex_buffer(
152+
utki::span<const r4::vector2<float>> vertices
153+
)
154+
{
155+
return utki::make_shared<vertex_buffer>(
156+
this->get_shared_ref(), //
157+
vertices
158+
);
159+
}
160+
161+
utki::shared_ref<ruis::render::vertex_buffer> context::create_vertex_buffer(
162+
utki::span<const r4::vector3<float>> vertices
163+
)
164+
{
165+
return utki::make_shared<vertex_buffer>(
166+
this->get_shared_ref(), //
167+
vertices
168+
);
169+
}
170+
171+
utki::shared_ref<ruis::render::vertex_buffer> context::create_vertex_buffer(
172+
utki::span<const r4::vector4<float>> vertices
173+
)
174+
{
175+
return utki::make_shared<vertex_buffer>(
176+
this->get_shared_ref(), //
177+
vertices
178+
);
179+
}

src/ruis/render/null/context.hpp

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,62 @@ class context : public ruis::render::context
3232
{
3333
return utki::make_shared<ruis::render::context::shaders>();
3434
}
35+
36+
utki::shared_ref<ruis::render::frame_buffer> create_framebuffer(
37+
std::shared_ptr<ruis::render::texture_2d> color,
38+
std::shared_ptr<ruis::render::texture_depth> depth,
39+
std::shared_ptr<ruis::render::texture_stencil> stencil
40+
) override;
41+
42+
utki::shared_ref<ruis::render::index_buffer> create_index_buffer(utki::span<const uint16_t> indices) override;
43+
utki::shared_ref<ruis::render::index_buffer> create_index_buffer(utki::span<const uint32_t> indices) override;
44+
45+
utki::shared_ref<ruis::render::texture_2d> create_texture_2d(
46+
rasterimage::format format,
47+
rasterimage::dimensioned::dimensions_type dims,
48+
texture_2d_parameters params
49+
) override;
50+
51+
utki::shared_ref<ruis::render::texture_2d> create_texture_2d(
52+
const rasterimage::image_variant& imvar,
53+
texture_2d_parameters params
54+
) override;
55+
56+
utki::shared_ref<ruis::render::texture_2d> create_texture_2d(
57+
rasterimage::image_variant&& imvar,
58+
texture_2d_parameters params
59+
) override;
60+
61+
utki::shared_ref<ruis::render::texture_depth> create_texture_depth(r4::vector2<uint32_t> dims) override;
62+
63+
utki::shared_ref<ruis::render::texture_cube> create_texture_cube(
64+
rasterimage::image_variant&& positive_x,
65+
rasterimage::image_variant&& negative_x,
66+
rasterimage::image_variant&& positive_y,
67+
rasterimage::image_variant&& negative_y,
68+
rasterimage::image_variant&& positive_z,
69+
rasterimage::image_variant&& negative_z
70+
) override;
71+
72+
utki::shared_ref<ruis::render::vertex_array> create_vertex_array(
73+
std::vector<utki::shared_ref<const ruis::render::vertex_buffer>> buffers,
74+
utki::shared_ref<const ruis::render::index_buffer> indices,
75+
ruis::render::vertex_array::mode rendering_mode
76+
) override;
77+
78+
utki::shared_ref<ruis::render::vertex_buffer> create_vertex_buffer(utki::span<const float> vertices) override;
79+
80+
utki::shared_ref<ruis::render::vertex_buffer> create_vertex_buffer(
81+
utki::span<const r4::vector2<float>> vertices
82+
) override;
83+
84+
utki::shared_ref<ruis::render::vertex_buffer> create_vertex_buffer(
85+
utki::span<const r4::vector3<float>> vertices
86+
) override;
87+
88+
utki::shared_ref<ruis::render::vertex_buffer> create_vertex_buffer(
89+
utki::span<const r4::vector4<float>> vertices
90+
) override;
3591
};
3692

3793
} // namespace ruis::render::null

src/ruis/render/null/factory.cpp

Lines changed: 0 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -22,150 +22,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
2222
#include "factory.hpp"
2323

2424
using namespace ruis::render::null;
25-
26-
utki::shared_ref<ruis::render::frame_buffer> factory::create_framebuffer(
27-
std::shared_ptr<ruis::render::texture_2d> color,
28-
std::shared_ptr<ruis::render::texture_depth> depth,
29-
std::shared_ptr<ruis::render::texture_stencil> stencil
30-
)
31-
{
32-
return utki::make_shared<frame_buffer>(
33-
this->render_context, //
34-
std::move(color),
35-
std::move(depth),
36-
std::move(stencil)
37-
);
38-
}
39-
40-
utki::shared_ref<ruis::render::index_buffer> factory::create_index_buffer(utki::span<const uint16_t> indices)
41-
{
42-
return utki::make_shared<index_buffer>(
43-
this->render_context, //
44-
indices
45-
);
46-
}
47-
48-
utki::shared_ref<ruis::render::index_buffer> factory::create_index_buffer(utki::span<const uint32_t> indices)
49-
{
50-
return utki::make_shared<index_buffer>(
51-
this->render_context, //
52-
indices
53-
);
54-
}
55-
56-
utki::shared_ref<ruis::render::texture_2d> factory::create_texture_2d(
57-
rasterimage::format format,
58-
rasterimage::dimensioned::dimensions_type dims,
59-
texture_2d_parameters params
60-
)
61-
{
62-
return utki::make_shared<texture_2d>(
63-
this->render_context, //
64-
rasterimage::image_variant(dims, format),
65-
std::move(params)
66-
);
67-
}
68-
69-
utki::shared_ref<ruis::render::texture_2d> factory::create_texture_2d(
70-
const rasterimage::image_variant& imvar,
71-
texture_2d_parameters params
72-
)
73-
{
74-
return utki::make_shared<texture_2d>(
75-
this->render_context, //
76-
imvar,
77-
std::move(params)
78-
);
79-
}
80-
81-
utki::shared_ref<ruis::render::texture_2d> factory::create_texture_2d(
82-
rasterimage::image_variant&& imvar,
83-
texture_2d_parameters params
84-
)
85-
{
86-
return utki::make_shared<texture_2d>(
87-
this->render_context, //
88-
std::move(imvar),
89-
std::move(params)
90-
);
91-
}
92-
93-
utki::shared_ref<ruis::render::texture_depth> factory::create_texture_depth(r4::vector2<uint32_t> dims)
94-
{
95-
return utki::make_shared<texture_depth>(
96-
this->render_context, //
97-
dims
98-
);
99-
}
100-
101-
utki::shared_ref<ruis::render::texture_cube> factory::create_texture_cube(
102-
rasterimage::image_variant&& positive_x,
103-
rasterimage::image_variant&& negative_x,
104-
rasterimage::image_variant&& positive_y,
105-
rasterimage::image_variant&& negative_y,
106-
rasterimage::image_variant&& positive_z,
107-
rasterimage::image_variant&& negative_z
108-
)
109-
{
110-
return utki::make_shared<texture_cube>(
111-
this->render_context, //
112-
std::move(positive_x),
113-
std::move(negative_x),
114-
std::move(positive_y),
115-
std::move(negative_y),
116-
std::move(positive_z),
117-
std::move(negative_z)
118-
);
119-
}
120-
121-
utki::shared_ref<ruis::render::vertex_array> factory::create_vertex_array(
122-
std::vector<utki::shared_ref<const ruis::render::vertex_buffer>> buffers,
123-
utki::shared_ref<const ruis::render::index_buffer> indices,
124-
ruis::render::vertex_array::mode rendering_mode
125-
)
126-
{
127-
return utki::make_shared<vertex_array>(
128-
this->render_context, //
129-
std::move(buffers),
130-
std::move(indices),
131-
rendering_mode
132-
);
133-
}
134-
135-
utki::shared_ref<ruis::render::vertex_buffer> factory::create_vertex_buffer(utki::span<const float> vertices)
136-
{
137-
return utki::make_shared<vertex_buffer>(
138-
this->render_context, //
139-
vertices
140-
);
141-
}
142-
143-
utki::shared_ref<ruis::render::vertex_buffer> factory::create_vertex_buffer(
144-
utki::span<const r4::vector2<float>> vertices
145-
)
146-
{
147-
return utki::make_shared<vertex_buffer>(
148-
this->render_context, //
149-
vertices
150-
);
151-
}
152-
153-
utki::shared_ref<ruis::render::vertex_buffer> factory::create_vertex_buffer(
154-
utki::span<const r4::vector3<float>> vertices
155-
)
156-
{
157-
return utki::make_shared<vertex_buffer>(
158-
this->render_context, //
159-
vertices
160-
);
161-
}
162-
163-
utki::shared_ref<ruis::render::vertex_buffer> factory::create_vertex_buffer(
164-
utki::span<const r4::vector4<float>> vertices
165-
)
166-
{
167-
return utki::make_shared<vertex_buffer>(
168-
this->render_context, //
169-
vertices
170-
);
171-
}

0 commit comments

Comments
 (0)