Visual Computing Library  devel
Loading...
Searching...
No Matches
vert_frag_program.h
1/*****************************************************************************
2 * VCLib *
3 * Visual Computing Library *
4 * *
5 * Copyright(C) 2021-2025 *
6 * Visual Computing Lab *
7 * ISTI - Italian National Research Council *
8 * *
9 * All rights reserved. *
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the Mozilla Public License Version 2.0 as published *
13 * by the Mozilla Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 * This program is distributed in the hope that it will be useful, *
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
19 * Mozilla Public License Version 2.0 *
20 * (https://www.mozilla.org/en-US/MPL/2.0/) for more details. *
21 ****************************************************************************/
22
23#ifndef VCL_BGFX_PROGRAMS_VERT_FRAG_PROGRAM_H
24#define VCL_BGFX_PROGRAMS_VERT_FRAG_PROGRAM_H
25
26namespace vcl {
27
28enum class VertFragProgram {
29 DRAWABLE_AXIS,
30 DRAWABLE_DIRECTIONAL_LIGHT,
31
32 DRAWABLE_MESH_EDGES,
33 DRAWABLE_MESH_POINTS,
34 DRAWABLE_MESH_POINTS_INSTANCE,
35
36 DRAWABLE_MESH_SURFACE_UBER,
37 DRAWABLE_MESH_SURFACE_UBER_PBR,
38 // SURFACE_NONE
39 DRAWABLE_MESH_SURFACE_NONE_COLOR_VERTEX,
40 DRAWABLE_MESH_SURFACE_NONE_COLOR_MESH,
41 DRAWABLE_MESH_SURFACE_NONE_COLOR_FACE,
42 DRAWABLE_MESH_SURFACE_NONE_COLOR_USER,
43 DRAWABLE_MESH_SURFACE_NONE_TEX_VERTEX,
44 DRAWABLE_MESH_SURFACE_NONE_TEX_WEDGE,
45 // SURFACE_FLAT
46 DRAWABLE_MESH_SURFACE_FLAT_COLOR_VERTEX,
47 DRAWABLE_MESH_SURFACE_FLAT_COLOR_MESH,
48 DRAWABLE_MESH_SURFACE_FLAT_COLOR_FACE,
49 DRAWABLE_MESH_SURFACE_FLAT_COLOR_USER,
50 DRAWABLE_MESH_SURFACE_FLAT_TEX_VERTEX,
51 DRAWABLE_MESH_SURFACE_FLAT_TEX_WEDGE,
52 // SURFACE_SMOOTH
53 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_VERTEX,
54 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_MESH,
55 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_FACE,
56 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_USER,
57 DRAWABLE_MESH_SURFACE_SMOOTH_TEX_VERTEX,
58 DRAWABLE_MESH_SURFACE_SMOOTH_TEX_WEDGE,
59
60 // SURFACE_NONE
61 DRAWABLE_MESH_SURFACE_NONE_COLOR_VERTEX_SI,
62 DRAWABLE_MESH_SURFACE_NONE_COLOR_MESH_SI,
63 DRAWABLE_MESH_SURFACE_NONE_COLOR_FACE_SI,
64 DRAWABLE_MESH_SURFACE_NONE_COLOR_USER_SI,
65 DRAWABLE_MESH_SURFACE_NONE_TEX_VERTEX_SI,
66 DRAWABLE_MESH_SURFACE_NONE_TEX_WEDGE_SI,
67 // SURFACE_FLAT
68 DRAWABLE_MESH_SURFACE_FLAT_COLOR_VERTEX_SI,
69 DRAWABLE_MESH_SURFACE_FLAT_COLOR_MESH_SI,
70 DRAWABLE_MESH_SURFACE_FLAT_COLOR_FACE_SI,
71 DRAWABLE_MESH_SURFACE_FLAT_COLOR_USER_SI,
72 DRAWABLE_MESH_SURFACE_FLAT_TEX_VERTEX_SI,
73 DRAWABLE_MESH_SURFACE_FLAT_TEX_WEDGE_SI,
74 // SURFACE_SMOOTH
75 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_VERTEX_SI,
76 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_MESH_SI,
77 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_FACE_SI,
78 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_USER_SI,
79 DRAWABLE_MESH_SURFACE_SMOOTH_TEX_VERTEX_SI,
80 DRAWABLE_MESH_SURFACE_SMOOTH_TEX_WEDGE_SI,
81
82 DRAWABLE_MESH_WIREFRAME,
83 DRAWABLE_MESH_EDGES_ID,
84 DRAWABLE_MESH_POINTS_ID,
85 DRAWABLE_MESH_POINTS_INSTANCE_ID,
86 DRAWABLE_MESH_SURFACE_ID,
87 DRAWABLE_MESH_WIREFRAME_ID,
88
89 DRAWABLE_TRACKBALL,
90
91 FONT_BASIC,
92 FONT_DISTANCE_FIELD,
93 FONT_DISTANCE_FIELD_DROP_SHADOW,
94 FONT_DISTANCE_FIELD_DROP_SHADOW_IMAGE,
95 FONT_DISTANCE_FIELD_OUTLINE,
96 FONT_DISTANCE_FIELD_OUTLINE_DROP_SHADOW_IMAGE,
97 FONT_DISTANCE_FIELD_OUTLINE_IMAGE,
98 FONT_DISTANCE_FIELD_SUBPIXEL,
99
100 PRIMITIVE_LINES,
101 CUSTOM_CPU_LINES, // TODO: change this name to a more meaningful one
102
103 COUNT
104};
105
106} // namespace vcl
107
108#endif // VCL_BGFX_PROGRAMS_VERT_FRAG_PROGRAM_H