Visual Computing Library  devel
Loading...
Searching...
No Matches
vert_frag_program.h
1/*****************************************************************************
2 * VCLib *
3 * Visual Computing Library *
4 * *
5 * Copyright(C) 2021-2026 *
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_ENVIRONMENT_PBR,
31 DRAWABLE_DIRECTIONAL_LIGHT,
32
33 DRAWABLE_MESH_EDGES,
34 DRAWABLE_MESH_POINTS,
35 DRAWABLE_MESH_POINTS_INSTANCE,
36
37 DRAWABLE_MESH_SURFACE_UBER,
38 DRAWABLE_MESH_SURFACE_UBER_PBR,
39 // SURFACE_NONE
40 DRAWABLE_MESH_SURFACE_NONE_COLOR_VERTEX,
41 DRAWABLE_MESH_SURFACE_NONE_COLOR_MESH,
42 DRAWABLE_MESH_SURFACE_NONE_COLOR_FACE,
43 DRAWABLE_MESH_SURFACE_NONE_COLOR_USER,
44 DRAWABLE_MESH_SURFACE_NONE_TEX_VERTEX,
45 DRAWABLE_MESH_SURFACE_NONE_TEX_WEDGE,
46 // SURFACE_FLAT
47 DRAWABLE_MESH_SURFACE_FLAT_COLOR_VERTEX,
48 DRAWABLE_MESH_SURFACE_FLAT_COLOR_MESH,
49 DRAWABLE_MESH_SURFACE_FLAT_COLOR_FACE,
50 DRAWABLE_MESH_SURFACE_FLAT_COLOR_USER,
51 DRAWABLE_MESH_SURFACE_FLAT_TEX_VERTEX,
52 DRAWABLE_MESH_SURFACE_FLAT_TEX_WEDGE,
53 // SURFACE_SMOOTH
54 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_VERTEX,
55 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_MESH,
56 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_FACE,
57 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_USER,
58 DRAWABLE_MESH_SURFACE_SMOOTH_TEX_VERTEX,
59 DRAWABLE_MESH_SURFACE_SMOOTH_TEX_WEDGE,
60
61 // SURFACE_NONE
62 DRAWABLE_MESH_SURFACE_NONE_COLOR_VERTEX_SI,
63 DRAWABLE_MESH_SURFACE_NONE_COLOR_MESH_SI,
64 DRAWABLE_MESH_SURFACE_NONE_COLOR_FACE_SI,
65 DRAWABLE_MESH_SURFACE_NONE_COLOR_USER_SI,
66 DRAWABLE_MESH_SURFACE_NONE_TEX_VERTEX_SI,
67 DRAWABLE_MESH_SURFACE_NONE_TEX_WEDGE_SI,
68 // SURFACE_FLAT
69 DRAWABLE_MESH_SURFACE_FLAT_COLOR_VERTEX_SI,
70 DRAWABLE_MESH_SURFACE_FLAT_COLOR_MESH_SI,
71 DRAWABLE_MESH_SURFACE_FLAT_COLOR_FACE_SI,
72 DRAWABLE_MESH_SURFACE_FLAT_COLOR_USER_SI,
73 DRAWABLE_MESH_SURFACE_FLAT_TEX_VERTEX_SI,
74 DRAWABLE_MESH_SURFACE_FLAT_TEX_WEDGE_SI,
75 // SURFACE_SMOOTH
76 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_VERTEX_SI,
77 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_MESH_SI,
78 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_FACE_SI,
79 DRAWABLE_MESH_SURFACE_SMOOTH_COLOR_USER_SI,
80 DRAWABLE_MESH_SURFACE_SMOOTH_TEX_VERTEX_SI,
81 DRAWABLE_MESH_SURFACE_SMOOTH_TEX_WEDGE_SI,
82
83 DRAWABLE_MESH_WIREFRAME,
84 DRAWABLE_MESH_EDGES_ID,
85 DRAWABLE_MESH_POINTS_ID,
86 DRAWABLE_MESH_POINTS_INSTANCE_ID,
87 DRAWABLE_MESH_SURFACE_ID,
88 DRAWABLE_MESH_WIREFRAME_ID,
89
90 DRAWABLE_TRACKBALL,
91
92 FONT_BASIC,
93 FONT_DISTANCE_FIELD,
94 FONT_DISTANCE_FIELD_DROP_SHADOW,
95 FONT_DISTANCE_FIELD_DROP_SHADOW_IMAGE,
96 FONT_DISTANCE_FIELD_OUTLINE,
97 FONT_DISTANCE_FIELD_OUTLINE_DROP_SHADOW_IMAGE,
98 FONT_DISTANCE_FIELD_OUTLINE_IMAGE,
99 FONT_DISTANCE_FIELD_SUBPIXEL,
100
101 PRIMITIVE_LINES,
102 CUSTOM_CPU_LINES, // TODO: change this name to a more meaningful one
103
104 COUNT
105};
106
107} // namespace vcl
108
109#endif // VCL_BGFX_PROGRAMS_VERT_FRAG_PROGRAM_H