Skip to content

Commit 3b7bd7d

Browse files
committed
huge rfactoring
1 parent 6da2772 commit 3b7bd7d

28 files changed

+143
-106
lines changed

src/ruis/render/opengl/context.cpp

Lines changed: 64 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ context::context(utki::shared_ref<ruis::render::native_window> native_window) :
120120
});
121121
}
122122

123-
utki::shared_ref<ruis::render::context::shaders> context::make_shaders()
123+
utki::shared_ref<ruis::render::context::shaders> context::make_shaders() const
124124
{
125125
// TODO: are those lint supressions still valid?
126126
auto ret = utki::make_shared<ruis::render::context::shaders>();
@@ -140,27 +140,35 @@ utki::shared_ref<ruis::render::context::shaders> context::make_shaders()
140140
}
141141

142142
utki::shared_ref<ruis::render::texture_2d> context::make_texture_2d(
143-
rasterimage::format format,
143+
rasterimage::format format, //
144144
rasterimage::dimensioned::dimensions_type dims,
145145
texture_2d_parameters params
146-
)
146+
) const
147147
{
148-
return this->create_texture_2d_internal(format, dims, {}, std::move(params));
148+
return this->create_texture_2d_internal(
149+
format, //
150+
dims,
151+
{},
152+
std::move(params)
153+
);
149154
}
150155

151156
utki::shared_ref<ruis::render::texture_2d> context::make_texture_2d(
152-
const rasterimage::image_variant& imvar,
157+
const rasterimage::image_variant& imvar, //
153158
texture_2d_parameters params
154-
)
159+
) const
155160
{
156161
auto imvar_copy = imvar;
157-
return this->make_texture_2d(std::move(imvar_copy), std::move(params));
162+
return this->make_texture_2d(
163+
std::move(imvar_copy), //
164+
std::move(params)
165+
);
158166
}
159167

160168
utki::shared_ref<ruis::render::texture_2d> context::make_texture_2d(
161-
rasterimage::image_variant&& imvar,
169+
rasterimage::image_variant&& imvar, //
162170
texture_2d_parameters params
163-
)
171+
) const
164172
{
165173
auto iv = std::move(imvar);
166174
return std::visit(
@@ -186,11 +194,11 @@ utki::shared_ref<ruis::render::texture_2d> context::make_texture_2d(
186194
}
187195

188196
utki::shared_ref<ruis::render::texture_2d> context::create_texture_2d_internal(
189-
rasterimage::format type,
197+
rasterimage::format type, //
190198
rasterimage::dimensioned::dimensions_type dims,
191199
utki::span<const uint8_t> data,
192200
texture_2d_parameters params
193-
)
201+
) const
194202
{
195203
return utki::make_shared<texture_2d>(
196204
this->get_shared_ref(), //
@@ -203,7 +211,7 @@ utki::shared_ref<ruis::render::texture_2d> context::create_texture_2d_internal(
203211

204212
utki::shared_ref<ruis::render::texture_depth> context::make_texture_depth( //
205213
rasterimage::dimensioned::dimensions_type dims
206-
)
214+
) const
207215
{
208216
return utki::make_shared<texture_depth>(
209217
this->get_shared_ref(), //
@@ -218,7 +226,7 @@ utki::shared_ref<ruis::render::texture_cube> context::make_texture_cube(
218226
rasterimage::image_variant&& negative_y,
219227
rasterimage::image_variant&& positive_z,
220228
rasterimage::image_variant&& negative_z
221-
)
229+
) const
222230
{
223231
constexpr auto num_cube_sides = 6;
224232
std::array<rasterimage::image_variant, num_cube_sides> sides = {
@@ -264,31 +272,39 @@ utki::shared_ref<ruis::render::texture_cube> context::make_texture_cube(
264272
);
265273
}
266274

267-
utki::shared_ref<ruis::render::vertex_buffer> context::make_vertex_buffer(utki::span<const r4::vector4<float>> vertices)
275+
utki::shared_ref<ruis::render::vertex_buffer> context::make_vertex_buffer( //
276+
utki::span<const r4::vector4<float>> vertices
277+
) const
268278
{
269279
return utki::make_shared<vertex_buffer>(
270280
this->get_shared_ref(), //
271281
vertices
272282
);
273283
}
274284

275-
utki::shared_ref<ruis::render::vertex_buffer> context::make_vertex_buffer(utki::span<const r4::vector3<float>> vertices)
285+
utki::shared_ref<ruis::render::vertex_buffer> context::make_vertex_buffer( //
286+
utki::span<const r4::vector3<float>> vertices
287+
) const
276288
{
277289
return utki::make_shared<vertex_buffer>(
278290
this->get_shared_ref(), //
279291
vertices
280292
);
281293
}
282294

283-
utki::shared_ref<ruis::render::vertex_buffer> context::make_vertex_buffer(utki::span<const r4::vector2<float>> vertices)
295+
utki::shared_ref<ruis::render::vertex_buffer> context::make_vertex_buffer( //
296+
utki::span<const r4::vector2<float>> vertices
297+
) const
284298
{
285299
return utki::make_shared<vertex_buffer>(
286300
this->get_shared_ref(), //
287301
vertices
288302
);
289303
}
290304

291-
utki::shared_ref<ruis::render::vertex_buffer> context::make_vertex_buffer(utki::span<const float> vertices)
305+
utki::shared_ref<ruis::render::vertex_buffer> context::make_vertex_buffer( //
306+
utki::span<const float> vertices
307+
) const
292308
{
293309
return utki::make_shared<vertex_buffer>(
294310
this->get_shared_ref(), //
@@ -297,10 +313,10 @@ utki::shared_ref<ruis::render::vertex_buffer> context::make_vertex_buffer(utki::
297313
}
298314

299315
utki::shared_ref<ruis::render::vertex_array> context::make_vertex_array(
300-
std::vector<utki::shared_ref<const ruis::render::vertex_buffer>> buffers,
316+
std::vector<utki::shared_ref<const ruis::render::vertex_buffer>> buffers, //
301317
utki::shared_ref<const ruis::render::index_buffer> indices,
302318
ruis::render::vertex_array::mode mode
303-
)
319+
) const
304320
{
305321
return utki::make_shared<vertex_array>(
306322
this->get_shared_ref(), //
@@ -310,24 +326,28 @@ utki::shared_ref<ruis::render::vertex_array> context::make_vertex_array(
310326
);
311327
}
312328

313-
utki::shared_ref<ruis::render::index_buffer> context::make_index_buffer(utki::span<const uint16_t> indices)
329+
utki::shared_ref<ruis::render::index_buffer> context::make_index_buffer( //
330+
utki::span<const uint16_t> indices
331+
) const
314332
{
315333
return utki::make_shared<index_buffer>(
316334
this->get_shared_ref(), //
317335
indices
318336
);
319337
}
320338

321-
utki::shared_ref<ruis::render::index_buffer> context::make_index_buffer(utki::span<const uint32_t> indices)
339+
utki::shared_ref<ruis::render::index_buffer> context::make_index_buffer( //
340+
utki::span<const uint32_t> indices
341+
) const
322342
{
323343
return utki::make_shared<index_buffer>(
324344
this->get_shared_ref(), //
325345
indices
326346
);
327347
}
328348

329-
utki::shared_ref<ruis::render::frame_buffer> context::make_framebuffer( //
330-
std::shared_ptr<ruis::render::texture_2d> color,
349+
utki::shared_ref<ruis::render::frame_buffer> context::make_framebuffer(
350+
std::shared_ptr<ruis::render::texture_2d> color, //
331351
std::shared_ptr<ruis::render::texture_depth> depth,
332352
std::shared_ptr<ruis::render::texture_stencil> stencil
333353
)
@@ -377,16 +397,16 @@ void context::clear_framebuffer_stencil()
377397
assert_opengl_no_error();
378398
}
379399

380-
r4::vector2<uint32_t> context::to_window_coords(ruis::vec2 point) const
400+
r4::vector2<uint32_t> context::to_window_coords(const ruis::vec2& point) const
381401
{
382402
auto vp = this->get_viewport();
383403

384-
point += ruis::vec2(1, 1);
385-
point = max(point, {0, 0}); // clamp to >= 0
386-
point /= 2;
387-
point.comp_multiply(vp.d.to<real>());
388-
point = round(point);
389-
return point.to<uint32_t>() + vp.p;
404+
auto p = point + ruis::vec2(1, 1);
405+
p = max(p, {0, 0}); // clamp to >= 0
406+
p /= 2;
407+
p.comp_multiply(vp.d.to<real>());
408+
p = round(p);
409+
return p.to<uint32_t>() + vp.p;
390410
}
391411

392412
bool context::is_scissor_enabled() const noexcept
@@ -422,9 +442,14 @@ r4::rectangle<uint32_t> context::get_scissor() const
422442
};
423443
}
424444

425-
void context::set_scissor(r4::rectangle<uint32_t> r)
445+
void context::set_scissor(const r4::rectangle<uint32_t>& r)
426446
{
427-
glScissor(GLint(r.p.x()), GLint(r.p.y()), GLint(r.d.x()), GLint(r.d.y()));
447+
glScissor(
448+
GLint(r.p.x()), //
449+
GLint(r.p.y()),
450+
GLint(r.d.x()),
451+
GLint(r.d.y())
452+
);
428453
assert_opengl_no_error();
429454
}
430455

@@ -448,9 +473,14 @@ r4::rectangle<uint32_t> context::get_viewport() const
448473
};
449474
}
450475

451-
void context::set_viewport(r4::rectangle<uint32_t> r)
476+
void context::set_viewport(const r4::rectangle<uint32_t>& r)
452477
{
453-
glViewport(GLint(r.p.x()), GLint(r.p.y()), GLint(r.d.x()), GLint(r.d.y()));
478+
glViewport(
479+
GLint(r.p.x()), //
480+
GLint(r.p.y()),
481+
GLint(r.d.x()),
482+
GLint(r.d.y())
483+
);
454484
assert_opengl_no_error();
455485
}
456486

src/ruis/render/opengl/context.hpp

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,27 +37,27 @@ class context : public ruis::render::context
3737
// ===============================
3838
// ====== factory functions ======
3939

40-
utki::shared_ref<shaders> make_shaders() override;
40+
utki::shared_ref<shaders> make_shaders() const override;
4141

4242
utki::shared_ref<ruis::render::texture_2d> make_texture_2d(
4343
rasterimage::format format,
4444
rasterimage::dimensioned::dimensions_type dims,
4545
texture_2d_parameters params
46-
) override;
46+
) const override;
4747

4848
utki::shared_ref<ruis::render::texture_2d> make_texture_2d(
4949
const rasterimage::image_variant& imvar,
5050
texture_2d_parameters params
51-
) override;
51+
) const override;
5252

5353
utki::shared_ref<ruis::render::texture_2d> make_texture_2d(
5454
rasterimage::image_variant&& imvar,
5555
texture_2d_parameters params
56-
) override;
56+
) const override;
5757

5858
utki::shared_ref<ruis::render::texture_depth> make_texture_depth( //
5959
rasterimage::dimensioned::dimensions_type dims
60-
) override;
60+
) const override;
6161

6262
utki::shared_ref<ruis::render::texture_cube> make_texture_cube(
6363
rasterimage::image_variant&& positive_x,
@@ -66,25 +66,31 @@ class context : public ruis::render::context
6666
rasterimage::image_variant&& negative_y,
6767
rasterimage::image_variant&& positive_z,
6868
rasterimage::image_variant&& negative_z
69-
) override;
69+
) const override;
7070

7171
utki::shared_ref<ruis::render::vertex_buffer> make_vertex_buffer( //
7272
utki::span<const r4::vector4<float>> vertices
73-
) override;
73+
) const override;
7474
utki::shared_ref<ruis::render::vertex_buffer> make_vertex_buffer( //
7575
utki::span<const r4::vector3<float>> vertices
76-
) override;
76+
) const override;
7777
utki::shared_ref<ruis::render::vertex_buffer> make_vertex_buffer( //
7878
utki::span<const r4::vector2<float>> vertices
79-
) override;
80-
utki::shared_ref<ruis::render::vertex_buffer> make_vertex_buffer(utki::span<const float> vertices) override;
81-
utki::shared_ref<ruis::render::index_buffer> make_index_buffer(utki::span<const uint16_t> indices) override;
82-
utki::shared_ref<ruis::render::index_buffer> make_index_buffer(utki::span<const uint32_t> indices) override;
79+
) const override;
80+
utki::shared_ref<ruis::render::vertex_buffer> make_vertex_buffer( //
81+
utki::span<const float> vertices
82+
) const override;
83+
utki::shared_ref<ruis::render::index_buffer> make_index_buffer( //
84+
utki::span<const uint16_t> indices
85+
) const override;
86+
utki::shared_ref<ruis::render::index_buffer> make_index_buffer( //
87+
utki::span<const uint32_t> indices
88+
) const override;
8389
utki::shared_ref<ruis::render::vertex_array> make_vertex_array(
84-
std::vector<utki::shared_ref<const ruis::render::vertex_buffer>> buffers,
90+
std::vector<utki::shared_ref<const ruis::render::vertex_buffer>> buffers, //
8591
utki::shared_ref<const ruis::render::index_buffer> indices,
8692
ruis::render::vertex_array::mode mode
87-
) override;
93+
) const override;
8894

8995
utki::shared_ref<ruis::render::frame_buffer> make_framebuffer( //
9096
std::shared_ptr<ruis::render::texture_2d> color,
@@ -98,7 +104,7 @@ class context : public ruis::render::context
98104
rasterimage::dimensioned::dimensions_type dims,
99105
utki::span<const uint8_t> data,
100106
texture_2d_parameters params
101-
);
107+
) const;
102108

103109
public:
104110
// =====================================
@@ -112,19 +118,19 @@ class context : public ruis::render::context
112118

113119
void clear_framebuffer_stencil() override;
114120

115-
r4::vector2<uint32_t> to_window_coords(ruis::vec2 point) const override;
121+
r4::vector2<uint32_t> to_window_coords(const ruis::vec2& point) const override;
116122

117123
bool is_scissor_enabled() const noexcept override;
118124

119125
void enable_scissor(bool enable) override;
120126

121127
r4::rectangle<uint32_t> get_scissor() const override;
122128

123-
void set_scissor(r4::rectangle<uint32_t> r) override;
129+
void set_scissor(const r4::rectangle<uint32_t>& r) override;
124130

125131
r4::rectangle<uint32_t> get_viewport() const override;
126132

127-
void set_viewport(r4::rectangle<uint32_t> r) override;
133+
void set_viewport(const r4::rectangle<uint32_t>& r) override;
128134

129135
void enable_blend(bool enable) override;
130136

src/ruis/render/opengl/frame_buffer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
3131
using namespace ruis::render::opengl;
3232

3333
frame_buffer::frame_buffer(
34-
utki::shared_ref<ruis::render::context> render_context,
34+
utki::shared_ref<ruis::render::context> rendering_context,
3535
std::shared_ptr<ruis::render::texture_2d> color,
3636
std::shared_ptr<ruis::render::texture_depth> depth,
3737
std::shared_ptr<ruis::render::texture_stencil> stencil
3838
) :
3939
ruis::render::frame_buffer( //
40-
std::move(render_context),
40+
std::move(rendering_context),
4141
std::move(color),
4242
std::move(depth),
4343
std::move(stencil)

src/ruis/render/opengl/frame_buffer.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class frame_buffer : public ruis::render::frame_buffer
3232
GLuint fbo = 0;
3333

3434
frame_buffer( //
35-
utki::shared_ref<ruis::render::context> render_context,
35+
utki::shared_ref<ruis::render::context> rendering_context,
3636
std::shared_ptr<ruis::render::texture_2d> color,
3737
std::shared_ptr<ruis::render::texture_depth> depth,
3838
std::shared_ptr<ruis::render::texture_stencil> stencil

0 commit comments

Comments
 (0)