Skip to main content

gl_utils/shader/
mod.rs

1//! Shader and shader program utilities.
2
3#[macro_use] mod macro_def;
4
5def_programs_include! {
6
7  SHADERS [
8    VertPassthru2d,
9      "../../shaders/vert_passthru_2d.glsl",
10    VertPassthru2dColor,
11      "../../shaders/vert_passthru_2d_color.glsl",
12    VertPassthru2dRectColor,
13      "../../shaders/vert_passthru_2d_rect_color.glsl",
14    VertPassthru2dRectUv,
15      "../../shaders/vert_passthru_2d_rect_uv.glsl",
16    VertPassthru2dRectUvLayer,
17      "../../shaders/vert_passthru_2d_rect_uv_layer.glsl",
18    VertPassthru2dLayer,
19      "../../shaders/vert_passthru_2d_layer.glsl",
20    VertTileSpace2dTile,
21      "../../shaders/vert_tile_space_2d_tile.glsl",
22    VertTileSpace2dTileColor,
23      "../../shaders/vert_tile_space_2d_tile_color.glsl",
24    VertWorldSpace2d,
25      "../../shaders/vert_world_space_2d.glsl",
26    VertWorldSpace3d,
27      "../../shaders/vert_world_space_3d.glsl",
28    VertWorldSpace3dColor,
29      "../../shaders/vert_world_space_3d_color.glsl",
30    VertPassthru3d,
31      "../../shaders/vert_passthru_3d.glsl",
32    VertPassthru3dScaleColor,
33      "../../shaders/vert_passthru_3d_scale_color.glsl",
34    VertModelSpace3dInstancedScaleColor,
35      "../../shaders/vert_model_space_3d_instanced_scale_color.glsl",
36    VertModelSpace3dInstancedOrientationScaleColor,
37      "../../shaders/vert_model_space_3d_instanced_orientation_scale_color.glsl",
38    VertModelSpace3dInstancedCapsule,
39      "../../shaders/vert_model_space_3d_instanced_capsule.glsl",
40    GeomWorldSpace2dRect,
41      "../../shaders/geom_world_space_2d_rect.glsl",
42    GeomWorldSpace2dRectUv,
43      "../../shaders/geom_world_space_2d_rect_uv.glsl",
44    GeomWorldSpace2dRectUvLayer,
45      "../../shaders/geom_world_space_2d_rect_uv_layer.glsl",
46    GeomWorldSpace2dSprite,
47      "../../shaders/geom_world_space_2d_sprite.glsl",
48    GeomWorldSpace2dSpriteLayer,
49      "../../shaders/geom_world_space_2d_sprite_layer.glsl",
50    GeomWorldSpace2dTile,
51      "../../shaders/geom_world_space_2d_tile.glsl",
52    GeomWorldSpace2dTileColor,
53      "../../shaders/geom_world_space_2d_tile_color.glsl",
54    GeomWorldSpace3dAabbLines,
55      "../../shaders/geom_world_space_3d_aabb_lines.glsl",
56    GeomWorldSpace3dAabbTriangles,
57      "../../shaders/geom_world_space_3d_aabb_triangles.glsl",
58    GeomWorldSpace3dSphereRaycast,
59      "../../shaders/geom_world_space_3d_sphere_raycast.glsl",
60    GeomWorldSpace3dSprite,
61      "../../shaders/geom_world_space_3d_sprite.glsl",
62    FragColor,
63      "../../shaders/frag_color.glsl",
64    FragUniColor,
65      "../../shaders/frag_uni_color.glsl",
66    FragSphereRaycast,
67      "../../shaders/frag_sphere_raycast.glsl",
68    FragTexture2d,
69      "../../shaders/frag_texture2d.glsl",
70    FragTexture2dLayer,
71      "../../shaders/frag_texture2d_layer.glsl",
72    FragTexture2dTile,
73      "../../shaders/frag_texture2d_tile.glsl",
74    FragTexture2dTileColor,
75      "../../shaders/frag_texture2d_tile_color.glsl"
76  ]
77
78  PROGRAMS [
79    program ClipSpace2dColor {
80      vertex_shader:   VertPassthru2dColor
81      fragment_shader: FragColor
82    }
83    program ClipSpace2dUniColor {
84      vertex_shader:   VertPassthru2d
85      fragment_shader: FragUniColor
86    }
87    program WorldSpace2dUniColor {
88      vertex_shader:   VertWorldSpace2d
89      fragment_shader: FragUniColor
90    }
91    program WorldSpace2dRect {
92      vertex_shader:   VertPassthru2dRectColor
93      geometry_shader: GeomWorldSpace2dRect
94      fragment_shader: FragColor
95    }
96    program WorldSpace2dRectUv {
97      vertex_shader:   VertPassthru2dRectUv
98      geometry_shader: GeomWorldSpace2dRectUv
99      fragment_shader: FragTexture2d
100    }
101    program WorldSpace2dRectUvLayer {
102      vertex_shader:   VertPassthru2dRectUvLayer
103      geometry_shader: GeomWorldSpace2dRectUvLayer
104      fragment_shader: FragTexture2dLayer
105    }
106    program WorldSpace2dSprite {
107      vertex_shader:   VertPassthru2d
108      geometry_shader: GeomWorldSpace2dSprite
109      fragment_shader: FragTexture2d
110    }
111    program WorldSpace2dSpriteLayer {
112      vertex_shader:   VertPassthru2dLayer
113      geometry_shader: GeomWorldSpace2dSpriteLayer
114      fragment_shader: FragTexture2dLayer
115    }
116    program TileSpace2dTile {
117      vertex_shader:   VertTileSpace2dTile
118      geometry_shader: GeomWorldSpace2dTile
119      fragment_shader: FragTexture2dTile
120    }
121    program TileSpace2dTileColor {
122      vertex_shader:   VertTileSpace2dTileColor
123      geometry_shader: GeomWorldSpace2dTileColor
124      fragment_shader: FragTexture2dTileColor
125    }
126    program WorldSpace3dUniColor {
127      vertex_shader:   VertWorldSpace3d
128      fragment_shader: FragUniColor
129    }
130    program WorldSpace3dColor {
131      vertex_shader:   VertWorldSpace3dColor
132      fragment_shader: FragColor
133    }
134    program WorldSpace3dAabbLines {
135      vertex_shader:   VertPassthru3dScaleColor
136      geometry_shader: GeomWorldSpace3dAabbLines
137      fragment_shader: FragColor
138    }
139    program WorldSpace3dAabbTriangles {
140      vertex_shader:   VertPassthru3dScaleColor
141      geometry_shader: GeomWorldSpace3dAabbTriangles
142      fragment_shader: FragColor
143    }
144    program WorldSpace3dSprite {
145      vertex_shader:   VertPassthru3d
146      geometry_shader: GeomWorldSpace3dSprite
147      fragment_shader: FragTexture2d
148    }
149    program WorldSpace3dSphere {
150      vertex_shader:   VertPassthru3dScaleColor
151      geometry_shader: GeomWorldSpace3dSphereRaycast
152      fragment_shader: FragSphereRaycast
153    }
154    program ModelSpace3dInstancedScaleColor {
155      vertex_shader:   VertModelSpace3dInstancedScaleColor
156      fragment_shader: FragColor
157    }
158    program ModelSpace3dInstancedOrientationScaleColor {
159      vertex_shader:   VertModelSpace3dInstancedOrientationScaleColor
160      fragment_shader: FragColor
161    }
162    program ModelSpace3dInstancedCapsule {
163      vertex_shader:   VertModelSpace3dInstancedCapsule
164      fragment_shader: FragColor
165    }
166  ]
167
168}