small3dlib uint/magnolia / include / renderer / test_block.h
 1#ifndef TEST_BLOCK_H
 2#define TEST_BLOCK_H
 3
 4#include "renderer/renderer.h"
 5
 6#define RGBA(r, g, b, a) ( \
 7	((u32)(r)      ) | \
 8	((u32)(g) <<  8) | \
 9	((u32)(b) << 16) | \
10	((u32)(a) << 24)   \
11)
12
13MGMesh block_mesh_create(void);
14
15static const MGVertex vtc[24] = {
16	/* north: -z */
17	{0.0f, 0.0f, 0.0f, 0.0f, 1.0f, RGBA(255, 0, 0, 255)},
18	{0.0f, 1.0f, 0.0f, 0.0f, 0.0f, RGBA(255, 0, 0, 255)},
19	{1.0f, 1.0f, 0.0f, 1.0f, 0.0f, RGBA(255, 0, 0, 255)},
20	{1.0f, 0.0f, 0.0f, 1.0f, 1.0f, RGBA(255, 0, 0, 255)},
21
22	/* south: +z */
23	{1.0f, 0.0f, 1.0f, 0.0f, 1.0f, RGBA(0, 255, 0, 255)},
24	{1.0f, 1.0f, 1.0f, 0.0f, 0.0f, RGBA(0, 255, 0, 255)},
25	{0.0f, 1.0f, 1.0f, 1.0f, 0.0f, RGBA(0, 255, 0, 255)},
26	{0.0f, 0.0f, 1.0f, 1.0f, 1.0f, RGBA(0, 255, 0, 255)},
27
28	/* west: -x */
29	{0.0f, 0.0f, 1.0f, 0.0f, 1.0f, RGBA(0, 0, 255, 255)},
30	{0.0f, 1.0f, 1.0f, 0.0f, 0.0f, RGBA(0, 0, 255, 255)},
31	{0.0f, 1.0f, 0.0f, 1.0f, 0.0f, RGBA(0, 0, 255, 255)},
32	{0.0f, 0.0f, 0.0f, 1.0f, 1.0f, RGBA(0, 0, 255, 255)},
33
34	/* east: +x */
35	{1.0f, 0.0f, 0.0f, 0.0f, 1.0f, RGBA(255, 255, 0, 255)},
36	{1.0f, 1.0f, 0.0f, 0.0f, 0.0f, RGBA(255, 255, 0, 255)},
37	{1.0f, 1.0f, 1.0f, 1.0f, 0.0f, RGBA(255, 255, 0, 255)},
38	{1.0f, 0.0f, 1.0f, 1.0f, 1.0f, RGBA(255, 255, 0, 255)},
39
40	/* bottom: -y */
41	{0.0f, 0.0f, 1.0f, 0.0f, 1.0f, RGBA(255, 0, 255, 255)},
42	{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, RGBA(255, 0, 255, 255)},
43	{1.0f, 0.0f, 0.0f, 1.0f, 0.0f, RGBA(255, 0, 255, 255)},
44	{1.0f, 0.0f, 1.0f, 1.0f, 1.0f, RGBA(255, 0, 255, 255)},
45
46	/* top: +y */
47	{0.0f, 1.0f, 0.0f, 0.0f, 1.0f, RGBA(0, 255, 255, 255)},
48	{0.0f, 1.0f, 1.0f, 0.0f, 0.0f, RGBA(0, 255, 255, 255)},
49	{1.0f, 1.0f, 1.0f, 1.0f, 0.0f, RGBA(0, 255, 255, 255)},
50	{1.0f, 1.0f, 0.0f, 1.0f, 1.0f, RGBA(0, 255, 255, 255)}
51};
52
53static const u16 idc[36] = {
54	0,  1,  2,  0,  2,  3,
55	4,  5,  6,  4,  6,  7,
56	8,  9,  10, 8,  10, 11,
57	12, 13, 14, 12, 14, 15,
58	16, 17, 18, 16, 18, 19,
59	20, 21, 22, 20, 22, 23,
60};
61
62MGMesh block_mesh_create(void)
63{
64	MGMeshDesc desc = { vtc, 24, idc, 36 };
65	return renderer_mesh_create(&desc);
66}
67
68#endif /* TEST_BLOCK_H */
69