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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//! Shader and shader program utilities.

#[macro_use] mod macro_def;

def_programs_include! {

  SHADERS [
    VertPassthru2d,
      "../../shaders/vert_passthru_2d.glsl",
    VertPassthru2dColor,
      "../../shaders/vert_passthru_2d_color.glsl",
    VertPassthru2dSprite,
      "../../shaders/vert_passthru_2d_sprite.glsl",
    VertPassthru2dTile,
      "../../shaders/vert_passthru_2d_tile.glsl",
    VertWorldSpace2d,
      "../../shaders/vert_world_space_2d.glsl",
    VertWorldSpace3d,
      "../../shaders/vert_world_space_3d.glsl",
    VertPassthru3dScaleColor,
      "../../shaders/vert_passthru_3d_scale_color.glsl",
    VertModelSpace3dInstancedScaleColor,
      "../../shaders/vert_model_space_3d_instanced_scale_color.glsl",
    VertModelSpace3dInstancedOrientationScaleColor,
      "../../shaders/vert_model_space_3d_instanced_orientation_scale_color.glsl",
    VertModelSpace3dInstancedCapsule,
      "../../shaders/vert_model_space_3d_instanced_capsule.glsl",
    GeomWorldSpace2dSprite,
      "../../shaders/geom_world_space_2d_sprite.glsl",
    GeomWorldSpace2dTile,
      "../../shaders/geom_world_space_2d_tile.glsl",
    GeomWorldSpace3dAabb,
      "../../shaders/geom_world_space_3d_aabb.glsl",
    FragColor,
      "../../shaders/frag_color.glsl",
    FragUniColor,
      "../../shaders/frag_uni_color.glsl",
    FragTexture2d,
      "../../shaders/frag_texture2d.glsl",
    FragTexture2dSprite,
      "../../shaders/frag_texture2d_sprite.glsl",
    FragTexture2dTile,
      "../../shaders/frag_texture2d_tile.glsl"
  ]

  PROGRAMS [
    program ClipSpace2dColor {
      vertex_shader:   VertPassthru2dColor
      fragment_shader: FragColor
    }
    program ClipSpace2dUniColor {
      vertex_shader:   VertPassthru2d
      fragment_shader: FragUniColor
    }
    program WorldSpace2dUniColor {
      vertex_shader:   VertWorldSpace2d
      fragment_shader: FragUniColor
    }
    program WorldSpace2dSprite {
      vertex_shader:   VertPassthru2dSprite
      geometry_shader: GeomWorldSpace2dSprite
      fragment_shader: FragTexture2dSprite
    }
    program WorldSpace2dTile {
      vertex_shader:   VertPassthru2dTile
      geometry_shader: GeomWorldSpace2dTile
      fragment_shader: FragTexture2dTile
    }
    program WorldSpace3dUniColor {
      vertex_shader:   VertWorldSpace3d
      fragment_shader: FragUniColor
    }
    program WorldSpace3dAabb {
      vertex_shader:   VertPassthru3dScaleColor
      geometry_shader: GeomWorldSpace3dAabb
      fragment_shader: FragColor
    }
    program ModelSpace3dInstancedScaleColor {
      vertex_shader:   VertModelSpace3dInstancedScaleColor
      fragment_shader: FragColor
    }
    program ModelSpace3dInstancedOrientationScaleColor {
      vertex_shader:   VertModelSpace3dInstancedOrientationScaleColor
      fragment_shader: FragColor
    }
    program ModelSpace3dInstancedCapsule {
      vertex_shader:   VertModelSpace3dInstancedCapsule
      fragment_shader: FragColor
    }
  ]

}