blob: 0d5837574f9f39a524d87ee8dc559e4f56f6450f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/**
* @brief Immediate-mode drawing APIs
*/
#pragma once
#include "defines.h"
#include "maths_types.h"
#include "ral_impl.h"
#include "render_types.h"
typedef struct Immdraw_Storage {
Mesh plane;
Mesh cube;
Mesh sphere;
GPU_Pipeline* colour_pipeline;
} Immdraw_Storage;
// --- Public API
PUB void Immdraw_Init(Immdraw_Storage* storage);
PUB void Immdraw_Shutdown(Immdraw_Storage* storage);
// These functions cause a pipeline switch and so aren't optimised for performance
PUB void Immdraw_Plane(Transform tf, Vec4 colour, bool wireframe);
PUB void Immdraw_Cuboid(Transform tf, Vec4 colour, bool wireframe);
PUB void Immdraw_Sphere(Transform tf, f32 size, Vec4 colour, bool wireframe);
PUB void Immdraw_TransformGizmo(Transform tf, f32 size);
|