1 | #include "shader_vars.h" |
1 | #include "shader_vars.h" |
2 | |
2 | |
3 | namespace shader { |
3 | namespace shader { |
4 | |
4 | namespace compile { |
5 | struct vin vin; |
5 | struct vin vin; |
6 | |
6 | |
7 | #if 0 |
7 | #if 0 |
8 | varying_3f vin::vertex_3f ("gl_Vertex"); |
8 | varying_3f vin::vertex_3f ("gl_Vertex"); |
9 | varying_4f vin::vertex_4f ("gl_Vertex"); |
9 | varying_4f vin::vertex_4f ("gl_Vertex"); |
10 | varying_3f vin::normal_3f ("gl_Normal"); |
10 | varying_3f vin::normal_3f ("gl_Normal"); |
11 | varying_3f vin::color_3f ("gl_Color"); |
11 | varying_3f vin::color_3f ("gl_Color"); |
12 | varying_4f vin::color_4f ("gl_Color"); |
12 | varying_4f vin::color_4f ("gl_Color"); |
13 | varying_3f vin::secondary_color_3f ("gl_SecondaryColor"); |
13 | varying_3f vin::secondary_color_3f ("gl_SecondaryColor"); |
14 | varying_4f vin::secondary_color_4f ("gl_SecondaryColor"); |
14 | varying_4f vin::secondary_color_4f ("gl_SecondaryColor"); |
15 | varying_1f vin::tex_coord_1f[8] = |
15 | varying_1f vin::tex_coord_1f[8] = |
16 | { |
16 | { |
17 | varying_1f ("gl_TexCoord[0]"), varying_1f ("gl_TexCoord[1]"), varying_1f ("gl_TexCoord[2]"), varying_1f ("gl_TexCoord[3]"), |
17 | varying_1f ("gl_TexCoord[0]"), varying_1f ("gl_TexCoord[1]"), varying_1f ("gl_TexCoord[2]"), varying_1f ("gl_TexCoord[3]"), |
18 | varying_1f ("gl_TexCoord[4]"), varying_1f ("gl_TexCoord[5]"), varying_1f ("gl_TexCoord[6]"), varying_1f ("gl_TexCoord[7]"), |
18 | varying_1f ("gl_TexCoord[4]"), varying_1f ("gl_TexCoord[5]"), varying_1f ("gl_TexCoord[6]"), varying_1f ("gl_TexCoord[7]"), |
19 | }; |
19 | }; |
20 | varying_2f vin::tex_coord_2f[8] = |
20 | varying_2f vin::tex_coord_2f[8] = |
21 | { |
21 | { |
22 | varying_2f ("gl_TexCoord[0]"), varying_2f ("gl_TexCoord[1]"), varying_2f ("gl_TexCoord[2]"), varying_2f ("gl_TexCoord[3]"), |
22 | varying_2f ("gl_TexCoord[0]"), varying_2f ("gl_TexCoord[1]"), varying_2f ("gl_TexCoord[2]"), varying_2f ("gl_TexCoord[3]"), |
23 | varying_2f ("gl_TexCoord[4]"), varying_2f ("gl_TexCoord[5]"), varying_2f ("gl_TexCoord[6]"), varying_2f ("gl_TexCoord[7]"), |
23 | varying_2f ("gl_TexCoord[4]"), varying_2f ("gl_TexCoord[5]"), varying_2f ("gl_TexCoord[6]"), varying_2f ("gl_TexCoord[7]"), |
24 | }; |
24 | }; |
25 | varying_3f vin::tex_coord_3f[8] = |
25 | varying_3f vin::tex_coord_3f[8] = |
26 | { |
26 | { |
27 | varying_3f ("gl_TexCoord[0]"), varying_3f ("gl_TexCoord[1]"), varying_3f ("gl_TexCoord[2]"), varying_3f ("gl_TexCoord[3]"), |
27 | varying_3f ("gl_TexCoord[0]"), varying_3f ("gl_TexCoord[1]"), varying_3f ("gl_TexCoord[2]"), varying_3f ("gl_TexCoord[3]"), |
28 | varying_3f ("gl_TexCoord[4]"), varying_3f ("gl_TexCoord[5]"), varying_3f ("gl_TexCoord[6]"), varying_3f ("gl_TexCoord[7]"), |
28 | varying_3f ("gl_TexCoord[4]"), varying_3f ("gl_TexCoord[5]"), varying_3f ("gl_TexCoord[6]"), varying_3f ("gl_TexCoord[7]"), |
29 | }; |
29 | }; |
30 | varying_4f vin::tex_coord_4f[8] = |
30 | varying_4f vin::tex_coord_4f[8] = |
31 | { |
31 | { |
32 | varying_4f ("gl_TexCoord[0]"), varying_4f ("gl_TexCoord[1]"), varying_4f ("gl_TexCoord[2]"), varying_4f ("gl_TexCoord[3]"), |
32 | varying_4f ("gl_TexCoord[0]"), varying_4f ("gl_TexCoord[1]"), varying_4f ("gl_TexCoord[2]"), varying_4f ("gl_TexCoord[3]"), |
33 | varying_4f ("gl_TexCoord[4]"), varying_4f ("gl_TexCoord[5]"), varying_4f ("gl_TexCoord[6]"), varying_4f ("gl_TexCoord[7]"), |
33 | varying_4f ("gl_TexCoord[4]"), varying_4f ("gl_TexCoord[5]"), varying_4f ("gl_TexCoord[6]"), varying_4f ("gl_TexCoord[7]"), |
34 | }; |
34 | }; |
35 | #endif |
35 | #endif |
36 | |
36 | |
37 | gluvar const vin::vertex ("gl_Vertex"); |
37 | gluvar const vin::vertex ("gl_Vertex"); |
38 | gluvar const vin::normal ("gl_Normal"); |
38 | gluvar const vin::normal ("gl_Normal"); |
39 | gluvar const vin::color ("gl_Color"); |
39 | gluvar const vin::color ("gl_Color"); |
40 | gluvar const vin::secondary_color ("gl_SecondaryColor"); |
40 | gluvar const vin::secondary_color ("gl_SecondaryColor"); |
41 | gluvar const vin::tex_coord[8] = |
41 | gluvar const vin::tex_coord[8] = |
42 | { |
42 | { |
43 | gluvar ("gl_MultiTexCoord0"), gluvar ("gl_MultiTexCoord1"), gluvar ("gl_MultiTexCoord2"), gluvar ("gl_MultiTexCoord3"), |
43 | gluvar ("gl_MultiTexCoord0"), gluvar ("gl_MultiTexCoord1"), gluvar ("gl_MultiTexCoord2"), gluvar ("gl_MultiTexCoord3"), |
44 | gluvar ("gl_MultiTexCoord4"), gluvar ("gl_MultiTexCoord5"), gluvar ("gl_MultiTexCoord6"), gluvar ("gl_MultiTexCoord7"), |
44 | gluvar ("gl_MultiTexCoord4"), gluvar ("gl_MultiTexCoord5"), gluvar ("gl_MultiTexCoord6"), gluvar ("gl_MultiTexCoord7"), |
45 | }; |
45 | }; |
46 | gluvar const vin::fog_coord ("gl_FogCoord"); |
46 | gluvar const vin::fog_coord ("gl_FogCoord"); |
47 | |
47 | |
48 | struct vout vout; |
48 | struct vout vout; |
49 | |
49 | |
50 | gluvar const vout::position ("gl_Position"); |
50 | gluvar const vout::position ("gl_Position"); |
51 | gluvar const vout::point_size ("gl_PointSize"); |
51 | gluvar const vout::point_size ("gl_PointSize"); |
52 | gluvar const vout::clip_vertex ("gl_ClipVertex"); |
52 | gluvar const vout::clip_vertex ("gl_ClipVertex"); |
53 | gluvar const vout::front_color ("gl_FontColor"); |
53 | gluvar const vout::front_color ("gl_FontColor"); |
54 | gluvar const vout::back_color ("gl_BackColor"); |
54 | gluvar const vout::back_color ("gl_BackColor"); |
55 | gluvar const vout::front_secondary_color ("gl_FrontSecondaryColor"); |
55 | gluvar const vout::front_secondary_color ("gl_FrontSecondaryColor"); |
56 | gluvar const vout::back_secondary_color ("gl_BackSecondaryColor"); |
56 | gluvar const vout::back_secondary_color ("gl_BackSecondaryColor"); |
57 | gluvar const vout::tex_coord[8] = |
57 | gluvar const vout::tex_coord[8] = |
58 | { |
58 | { |
59 | gluvar ("gl_TexCoord[0]"), gluvar ("gl_TexCoord[1]"), gluvar ("gl_TexCoord[2]"), gluvar ("gl_TexCoord[3]"), |
59 | gluvar ("gl_TexCoord[0]"), gluvar ("gl_TexCoord[1]"), gluvar ("gl_TexCoord[2]"), gluvar ("gl_TexCoord[3]"), |
60 | gluvar ("gl_TexCoord[4]"), gluvar ("gl_TexCoord[5]"), gluvar ("gl_TexCoord[6]"), gluvar ("gl_TexCoord[7]"), |
60 | gluvar ("gl_TexCoord[4]"), gluvar ("gl_TexCoord[5]"), gluvar ("gl_TexCoord[6]"), gluvar ("gl_TexCoord[7]"), |
61 | }; |
61 | }; |
62 | gluvar const vout::fog_frag_coord ("gl_FogFragCoord"); |
62 | gluvar const vout::fog_frag_coord ("gl_FogFragCoord"); |
63 | |
63 | |
64 | struct fin fin; |
64 | struct fin fin; |
65 | |
65 | |
66 | gluvar const fin::frag_coord ("gl_FragCoord"); |
66 | gluvar const fin::frag_coord ("gl_FragCoord"); |
67 | gluvar const fin::front_facing ("gl_FrontFacing"); |
67 | gluvar const fin::front_facing ("gl_FrontFacing"); |
68 | gluvar const fin::color ("gl_Color"); |
68 | gluvar const fin::color ("gl_Color"); |
69 | gluvar const fin::secondary_color ("gl_SecondaryColor"); |
69 | gluvar const fin::secondary_color ("gl_SecondaryColor"); |
70 | gluvar const fin::tex_coord[8] = |
70 | gluvar const fin::tex_coord[8] = |
71 | { |
71 | { |
72 | gluvar ("gl_TexCoord[0]"), gluvar ("gl_TexCoord[1]"), gluvar ("gl_TexCoord[2]"), gluvar ("gl_TexCoord[3]"), |
72 | gluvar ("gl_TexCoord[0]"), gluvar ("gl_TexCoord[1]"), gluvar ("gl_TexCoord[2]"), gluvar ("gl_TexCoord[3]"), |
73 | gluvar ("gl_TexCoord[4]"), gluvar ("gl_TexCoord[5]"), gluvar ("gl_TexCoord[6]"), gluvar ("gl_TexCoord[7]"), |
73 | gluvar ("gl_TexCoord[4]"), gluvar ("gl_TexCoord[5]"), gluvar ("gl_TexCoord[6]"), gluvar ("gl_TexCoord[7]"), |
74 | }; |
74 | }; |
75 | gluvar const fin::fog_frag_coord ("gl_FogFragCoord"); |
75 | gluvar const fin::fog_frag_coord ("gl_FogFragCoord"); |
76 | |
76 | |
77 | struct fout fout; |
77 | struct fout fout; |
78 | |
78 | |
79 | gluvar const fout::frag_color ("gl_FragColor"); |
79 | gluvar const fout::frag_color ("gl_FragColor"); |
80 | gluvar const fout::frag_depth ("gl_FragDepth"); |
80 | gluvar const fout::frag_depth ("gl_FragDepth"); |
81 | gluvar const fout::frag_data[2] = { gluvar ("gl_FragData[0]"), gluvar ("gl_FragData[1]") }; |
81 | gluvar const fout::frag_data[2] = { gluvar ("gl_FragData[0]"), gluvar ("gl_FragData[1]") }; |
82 | |
82 | |
83 | gluvar gl::model_view_matrix ("gl_ModelViewMatrix"), |
83 | gluvar model_view_matrix ("gl_ModelViewMatrix"), |
84 | gl::projection_matrix ("gl_ProjectionMatrix"), |
84 | projection_matrix ("gl_ProjectionMatrix"), |
85 | gl::model_view_projection_matrix ("gl_ModelViewProjectionMatrix"), |
85 | model_view_projection_matrix ("gl_ModelViewProjectionMatrix"), |
86 | gl::texture_matrix[8] = |
86 | texture_matrix[8] = |
87 | { |
87 | { |
88 | gluvar ("gl_TextureMatrix[0]"), gluvar ("gl_TextureMatrix[1]"), |
88 | gluvar ("gl_TextureMatrix[0]"), gluvar ("gl_TextureMatrix[1]"), |
89 | gluvar ("gl_TextureMatrix[2]"), gluvar ("gl_TextureMatrix[3]"), |
89 | gluvar ("gl_TextureMatrix[2]"), gluvar ("gl_TextureMatrix[3]"), |
90 | gluvar ("gl_TextureMatrix[4]"), gluvar ("gl_TextureMatrix[5]"), |
90 | gluvar ("gl_TextureMatrix[4]"), gluvar ("gl_TextureMatrix[5]"), |
91 | gluvar ("gl_TextureMatrix[6]"), gluvar ("gl_TextureMatrix[7]"), |
91 | gluvar ("gl_TextureMatrix[6]"), gluvar ("gl_TextureMatrix[7]"), |
92 | }; |
92 | }; |
93 | gluvar gl::model_view_matrix_inverse ("gl_ModelViewMatrixInverse"), |
93 | gluvar model_view_matrix_inverse ("gl_ModelViewMatrixInverse"), |
94 | gl::projection_matrix_inverse ("gl_ProjectionMatrixInverse"), |
94 | projection_matrix_inverse ("gl_ProjectionMatrixInverse"), |
95 | gl::model_view_projection_matrix_inverse ("gl_ModelViewProjectionMatrixInverse"), |
95 | model_view_projection_matrix_inverse ("gl_ModelViewProjectionMatrixInverse"), |
96 | gl::texture_matrix_inverse[8] = |
96 | texture_matrix_inverse[8] = |
97 | { |
97 | { |
98 | gluvar ("gl_TextureMatrixInverse[0]"), gluvar ("gl_TextureMatrixInverse[1]"), |
98 | gluvar ("gl_TextureMatrixInverse[0]"), gluvar ("gl_TextureMatrixInverse[1]"), |
99 | gluvar ("gl_TextureMatrixInverse[2]"), gluvar ("gl_TextureMatrixInverse[3]"), |
99 | gluvar ("gl_TextureMatrixInverse[2]"), gluvar ("gl_TextureMatrixInverse[3]"), |
100 | gluvar ("gl_TextureMatrixInverse[4]"), gluvar ("gl_TextureMatrixInverse[5]"), |
100 | gluvar ("gl_TextureMatrixInverse[4]"), gluvar ("gl_TextureMatrixInverse[5]"), |
101 | gluvar ("gl_TextureMatrixInverse[6]"), gluvar ("gl_TextureMatrixInverse[7]"), |
101 | gluvar ("gl_TextureMatrixInverse[6]"), gluvar ("gl_TextureMatrixInverse[7]"), |
102 | }; |
102 | }; |
103 | gluvar gl::model_view_matrix_transpose ("gl_ModelViewMatrixTranspose"), |
103 | gluvar model_view_matrix_transpose ("gl_ModelViewMatrixTranspose"), |
104 | gl::projection_matrix_transpose ("gl_ProjectionMatrixTranspose"), |
104 | projection_matrix_transpose ("gl_ProjectionMatrixTranspose"), |
105 | gl::model_view_projection_matrix_transpose ("gl_ModelViewProjectionMatrixTranspose"), |
105 | model_view_projection_matrix_transpose ("gl_ModelViewProjectionMatrixTranspose"), |
106 | gl::texture_matrix_transpose[8] = |
106 | texture_matrix_transpose[8] = |
107 | { |
107 | { |
108 | gluvar ("gl_TextureMatrixTranspose[0]"), gluvar ("gl_TextureMatrixTranspose[1]"), |
108 | gluvar ("gl_TextureMatrixTranspose[0]"), gluvar ("gl_TextureMatrixTranspose[1]"), |
109 | gluvar ("gl_TextureMatrixTranspose[2]"), gluvar ("gl_TextureMatrixTranspose[3]"), |
109 | gluvar ("gl_TextureMatrixTranspose[2]"), gluvar ("gl_TextureMatrixTranspose[3]"), |
110 | gluvar ("gl_TextureMatrixTranspose[4]"), gluvar ("gl_TextureMatrixTranspose[5]"), |
110 | gluvar ("gl_TextureMatrixTranspose[4]"), gluvar ("gl_TextureMatrixTranspose[5]"), |
111 | gluvar ("gl_TextureMatrixTranspose[6]"), gluvar ("gl_TextureMatrixTranspose[7]"), |
111 | gluvar ("gl_TextureMatrixTranspose[6]"), gluvar ("gl_TextureMatrixTranspose[7]"), |
112 | }; |
112 | }; |
113 | gluvar gl::model_view_matrix_inverse_transpose ("gl_ModelViewMatrixInverseTranspose"), |
113 | gluvar model_view_matrix_inverse_transpose ("gl_ModelViewMatrixInverseTranspose"), |
114 | gl::projection_matrix_inverse_transpose ("gl_ProjectionMatrixInverseTranspose"), |
114 | projection_matrix_inverse_transpose ("gl_ProjectionMatrixInverseTranspose"), |
115 | gl::model_view_projection_matrix_inverse_transpose ("gl_ModelViewProjectionMatrixInverseTranspose"), |
115 | model_view_projection_matrix_inverse_transpose ("gl_ModelViewProjectionMatrixInverseTranspose"), |
116 | gl::texture_matrix_inverse_transpose[8] = |
116 | texture_matrix_inverse_transpose[8] = |
117 | { |
117 | { |
118 | gluvar ("gl_TextureMatrixInverseTranspose[0]"), gluvar ("gl_TextureMatrixInverseTranspose[1]"), |
118 | gluvar ("gl_TextureMatrixInverseTranspose[0]"), gluvar ("gl_TextureMatrixInverseTranspose[1]"), |
119 | gluvar ("gl_TextureMatrixInverseTranspose[2]"), gluvar ("gl_TextureMatrixInverseTranspose[3]"), |
119 | gluvar ("gl_TextureMatrixInverseTranspose[2]"), gluvar ("gl_TextureMatrixInverseTranspose[3]"), |
120 | gluvar ("gl_TextureMatrixInverseTranspose[4]"), gluvar ("gl_TextureMatrixInverseTranspose[5]"), |
120 | gluvar ("gl_TextureMatrixInverseTranspose[4]"), gluvar ("gl_TextureMatrixInverseTranspose[5]"), |
121 | gluvar ("gl_TextureMatrixInverseTranspose[6]"), gluvar ("gl_TextureMatrixInverseTranspose[7]"), |
121 | gluvar ("gl_TextureMatrixInverseTranspose[6]"), gluvar ("gl_TextureMatrixInverseTranspose[7]"), |
122 | }; |
122 | }; |
123 | |
123 | |
124 | gluvar gl::normal_matrix ("gl_NormalMatrix"); |
124 | gluvar normal_matrix ("gl_NormalMatrix"); |
125 | |
125 | |
126 | gluvar gl::normal_scale ("gl_NormalScale"); |
126 | gluvar normal_scale ("gl_NormalScale"); |
127 | gluvar gl::depth_range_near ("gl_DepthRange.near"), |
127 | gluvar depth_range_near ("gl_DepthRange.near"), |
128 | gl::depth_range_far ("gl_DepthRange.far"), |
128 | depth_range_far ("gl_DepthRange.far"), |
129 | gl::depth_range_diff ("gl_DepthRange.diff"); |
129 | depth_range_diff ("gl_DepthRange.diff"); |
130 | |
130 | |
131 | gluvar gl::clip_plane[2] = { gluvar ("gl_ClipPlane[0]"), gluvar ("gl_ClipPlane[1]") }; |
131 | gluvar clip_plane[2] = { gluvar ("gl_ClipPlane[0]"), gluvar ("gl_ClipPlane[1]") }; |
132 | |
132 | |
133 | gluvar gl::front_material_emission ("gl_FrontMaterialEmission"), |
133 | gluvar front_material_emission ("gl_FrontMaterialEmission"), |
134 | gl::front_material_ambient ("gl_FrontMaterialAmbient"), |
134 | front_material_ambient ("gl_FrontMaterialAmbient"), |
135 | gl::front_material_diffuse ("gl_FrontMaterialDiffuse"), |
135 | front_material_diffuse ("gl_FrontMaterialDiffuse"), |
136 | gl::front_material_specular ("gl_FrontMaterialSpecular"), |
136 | front_material_specular ("gl_FrontMaterialSpecular"), |
137 | gl::front_material_shininess ("gl_FrontMaterialShininess"); |
137 | front_material_shininess ("gl_FrontMaterialShininess"); |
138 | gluvar gl::back_material_emission ("gl_BackMaterialEmission"), |
138 | gluvar back_material_emission ("gl_BackMaterialEmission"), |
139 | gl::back_material_ambient ("gl_BackMaterialAmbient"), |
139 | back_material_ambient ("gl_BackMaterialAmbient"), |
140 | gl::back_material_diffuse ("gl_BackMaterialDiffuse"), |
140 | back_material_diffuse ("gl_BackMaterialDiffuse"), |
141 | gl::back_material_specular ("gl_BackMaterialSpecular"), |
141 | back_material_specular ("gl_BackMaterialSpecular"), |
142 | gl::back_material_shininess ("gl_BackMaterialShininess"); |
142 | back_material_shininess ("gl_BackMaterialShininess"); |
143 | |
143 | |
144 | gluvar gl::light_model_ambient ("gl_LightModel.ambient"); |
144 | gluvar light_model_ambient ("gl_LightModel.ambient"); |
145 | gluvar gl::front_light_model_product_scene_color ("gl_FrontLightModelProduct.sceneColor"); |
145 | gluvar front_light_model_product_scene_color ("gl_FrontLightModelProduct.sceneColor"); |
146 | gluvar gl::back_light_model_product_scene_color ("gl_BackLightModelProduct.sceneColor"); |
146 | gluvar back_light_model_product_scene_color ("gl_BackLightModelProduct.sceneColor"); |
147 | |
147 | } |
148 | } |
148 | } |
149 | |
149 | |
150 | |
150 | |