Skip to content

Commit 6e80ea3

Browse files
committed
Render: Make transact and vertex private
1 parent 46e884f commit 6e80ea3

File tree

2 files changed

+61
-21
lines changed

2 files changed

+61
-21
lines changed

Libraries/Render/Render.cpp

+61-18
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,24 @@ static int compile_shader_source(StringView, GLenum type);
6060
static int link_program(GLuint program);
6161
static void uniform_location(GLuint program, GLuint locations[UniformSlot__Count]);
6262

63+
static void transact(Render* render, usize verticies);
64+
static void vertex(Render* render, Vec2f position, Vec4f color, Vec2f uv, u32 flags);
65+
static void triangle(Render* render,
66+
Vec2f p0, Vec4f c0, Vec2f uv0, u32 f0,
67+
Vec2f p1, Vec4f c1, Vec2f uv1, u32 f1,
68+
Vec2f p2, Vec4f c2, Vec2f uv2, u32 f2
69+
);
70+
71+
// 0-1
72+
// |/|
73+
// 2-3
74+
static void quad(Render* render,
75+
Vec2f p0, Vec4f c0, Vec2f uv0, u32 f0,
76+
Vec2f p1, Vec4f c1, Vec2f uv1, u32 f1,
77+
Vec2f p2, Vec4f c2, Vec2f uv2, u32 f2,
78+
Vec2f p3, Vec4f c3, Vec2f uv3, u32 f3
79+
);
80+
6381
c_string render_strerror(int error)
6482
{
6583
if (error == 0) return "no error";
@@ -243,16 +261,16 @@ void render_clear(Render* render, Vec4f color)
243261
glClear(GL_COLOR_BUFFER_BIT);
244262
}
245263

246-
void render_transact(Render* render, usize vertices)
264+
static void transact(Render* render, usize vertices)
247265
{
248266
if (render->vertices.size() <= render->vertex_index + vertices) {
249267
render_flush(render);
250268
}
251269
}
252270

253-
static void render_vertex_with_flags(Render* render, Vec2f position, Vec4f color, Vec2f uv, u32 flags)
271+
static void vertex(Render* render, Vec2f position, Vec4f color, Vec2f uv, u32 flags)
254272
{
255-
render_transact(render, 1);
273+
transact(render, 1);
256274
render->vertices[render->vertex_index++] = {
257275
.position = position,
258276
.color = color,
@@ -261,20 +279,48 @@ static void render_vertex_with_flags(Render* render, Vec2f position, Vec4f color
261279
};
262280
}
263281

264-
void render_vertex(Render* render, Vec2f position, Vec4f color, Vec2f uv)
282+
static void triangle(Render* render,
283+
Vec2f p0, Vec4f c0, Vec2f uv0, u32 f0,
284+
Vec2f p1, Vec4f c1, Vec2f uv1, u32 f1,
285+
Vec2f p2, Vec4f c2, Vec2f uv2, u32 f2)
265286
{
266-
render_vertex_with_flags(render, position, color, uv, Shader_Color);
287+
transact(render, 3);
288+
vertex(render, p0, c0, uv0, f0);
289+
vertex(render, p1, c1, uv1, f1);
290+
vertex(render, p2, c2, uv2, f2);
291+
}
292+
293+
// 0-1
294+
// |/|
295+
// 2-3
296+
static void quad(Render* render,
297+
Vec2f p0, Vec4f c0, Vec2f uv0, u32 f0,
298+
Vec2f p1, Vec4f c1, Vec2f uv1, u32 f1,
299+
Vec2f p2, Vec4f c2, Vec2f uv2, u32 f2,
300+
Vec2f p3, Vec4f c3, Vec2f uv3, u32 f3)
301+
{
302+
triangle(render,
303+
p0, c0, uv0, f0,
304+
p1, c1, uv1, f1,
305+
p2, c2, uv2, f2
306+
);
307+
triangle(render,
308+
p1, c1, uv1, f1,
309+
p2, c2, uv2, f2,
310+
p3, c3, uv3, f3
311+
);
267312
}
268313

269314
void render_triangle(Render* render,
270315
Vec2f p0, Vec4f c0, Vec2f uv0,
271316
Vec2f p1, Vec4f c1, Vec2f uv1,
272317
Vec2f p2, Vec4f c2, Vec2f uv2)
273318
{
274-
render_transact(render, 3);
275-
render_vertex(render, p0, c0, uv0);
276-
render_vertex(render, p1, c1, uv1);
277-
render_vertex(render, p2, c2, uv2);
319+
triangle(render,
320+
p0, c0, uv0, Shader_Color,
321+
p1, c1, uv1, Shader_Color,
322+
p2, c2, uv2, Shader_Color
323+
);
278324
}
279325

280326
// 0-1
@@ -300,15 +346,12 @@ void render_quad(Render* render,
300346

301347
void render_cursor(Render* render, Vec4f color)
302348
{
303-
render_transact(render, 3);
304-
render_vertex_with_flags(render, { 0.0, 0.0 }, color, vec2fs(0), Shader_Cursor);
305-
render_vertex_with_flags(render, { 1.0, 0.0 }, color, vec2fs(0), Shader_Cursor);
306-
render_vertex_with_flags(render, { 1.0, 1.0 }, color, vec2fs(0), Shader_Cursor);
307-
308-
render_transact(render, 3);
309-
render_vertex_with_flags(render, { 0.0, 0.0 }, color, vec2fs(0), Shader_Cursor);
310-
render_vertex_with_flags(render, { 0.0, 1.0 }, color, vec2fs(0), Shader_Cursor);
311-
render_vertex_with_flags(render, { 1.0, 1.0 }, color, vec2fs(0), Shader_Cursor);
349+
quad(render,
350+
vec2f(0.0f, 0.0f), color, vec2fs(0), Shader_Cursor,
351+
vec2f(1.0f, 0.0f), color, vec2fs(0), Shader_Cursor,
352+
vec2f(0.0f, 1.0f), color, vec2fs(0), Shader_Cursor,
353+
vec2f(1.0f, 1.0f), color, vec2fs(0), Shader_Cursor
354+
);
312355
}
313356

314357
static const char *shader_type_as_cstr(GLuint shader)

Libraries/Render/Render.h

-3
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ void render_flush(Render*);
1818

1919
void render_clear(Render*, Vec4f color);
2020

21-
void render_transact(Render* render, usize vertices);
22-
void render_vertex(Render*, Vec2f position, Vec4f color, Vec2f uv);
23-
2421
void render_triangle(Render*,
2522
Vec2f p0, Vec4f c0, Vec2f uv0,
2623
Vec2f p1, Vec4f c1, Vec2f uv1,

0 commit comments

Comments
 (0)