ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libgender/material.C
(Generate patch)

Comparing libgender/material.C (file contents):
Revision 1.10 by root, Thu Oct 21 21:30:34 2004 UTC vs.
Revision 1.11 by root, Thu Oct 21 22:28:42 2004 UTC

19 const char str_float [] = "float"; 19 const char str_float [] = "float";
20 const char str_float2 [] = "float2"; 20 const char str_float2 [] = "float2";
21 const char str_float3 [] = "float3"; 21 const char str_float3 [] = "float3";
22 const char str_float4 [] = "float4"; 22 const char str_float4 [] = "float4";
23 const char str_float4x4 [] = "float4x4"; 23 const char str_float4x4 [] = "float4x4";
24
25 const char str_sampler1d [] = "sampler1d";
26 const char str_sampler2d [] = "sampler2d";
27 const char str_sampler3d [] = "sampler3d";
28 const char str_samplerCUBE [] = "samplerCUBE";
29 const char str_samplerRECT [] = "samplerRECT";
24 30
25 static CGcontext cg_context = cgCreateContext (); 31 static CGcontext cg_context = cgCreateContext ();
26 32
27 int var_i::next_name = 0; 33 int var_i::next_name = 0;
28 34
97 varying_4f vin::normal_4f ("NORMAL"); 103 varying_4f vin::normal_4f ("NORMAL");
98 varying_3f vin::color0_3f ("COLOR0"); 104 varying_3f vin::color0_3f ("COLOR0");
99 varying_4f vin::color0_4f ("COLOR0"); 105 varying_4f vin::color0_4f ("COLOR0");
100 varying_3f vin::color1_3f ("COLOR1"); 106 varying_3f vin::color1_3f ("COLOR1");
101 varying_4f vin::color1_4f ("COLOR1"); 107 varying_4f vin::color1_4f ("COLOR1");
102 varying_2f vin::texcoord0_2f ("TEXCOORD0"); 108 varying_1f vin::texcoord_1f[8] =
103 varying_4f vin::texcoord0_4f ("TEXCOORD0"); 109 {
104 varying_2f vin::texcoord1_2f ("TEXCOORD1"); 110 varying_1f ("TEXCOORD0"), varying_1f ("TEXCOORD1"), varying_1f ("TEXCOORD2"), varying_1f ("TEXCOORD3"),
105 varying_4f vin::texcoord1_4f ("TEXCOORD1"); 111 varying_1f ("TEXCOORD4"), varying_1f ("TEXCOORD5"), varying_1f ("TEXCOORD6"), varying_1f ("TEXCOORD7"),
106 varying_2f vin::texcoord2_2f ("TEXCOORD2"); 112 };
107 varying_4f vin::texcoord2_4f ("TEXCOORD2"); 113 varying_2f vin::texcoord_2f[8] =
108 varying_2f vin::texcoord3_2f ("TEXCOORD3"); 114 {
109 varying_4f vin::texcoord3_4f ("TEXCOORD3"); 115 varying_2f ("TEXCOORD0"), varying_2f ("TEXCOORD1"), varying_2f ("TEXCOORD2"), varying_2f ("TEXCOORD3"),
110 varying_2f vin::texcoord4_2f ("TEXCOORD4"); 116 varying_2f ("TEXCOORD4"), varying_2f ("TEXCOORD5"), varying_2f ("TEXCOORD6"), varying_2f ("TEXCOORD7"),
111 varying_4f vin::texcoord4_4f ("TEXCOORD4"); 117 };
112 varying_2f vin::texcoord5_2f ("TEXCOORD5"); 118 varying_3f vin::texcoord_3f[8] =
113 varying_4f vin::texcoord5_4f ("TEXCOORD5"); 119 {
114 varying_2f vin::texcoord6_2f ("TEXCOORD6"); 120 varying_3f ("TEXCOORD0"), varying_3f ("TEXCOORD1"), varying_3f ("TEXCOORD2"), varying_3f ("TEXCOORD3"),
115 varying_4f vin::texcoord6_4f ("TEXCOORD6"); 121 varying_3f ("TEXCOORD4"), varying_3f ("TEXCOORD5"), varying_3f ("TEXCOORD6"), varying_3f ("TEXCOORD7"),
116 varying_2f vin::texcoord7_2f ("TEXCOORD7"); 122 };
117 varying_4f vin::texcoord7_4f ("TEXCOORD7"); 123 varying_4f vin::texcoord_4f[8] =
124 {
125 varying_4f ("TEXCOORD0"), varying_4f ("TEXCOORD1"), varying_4f ("TEXCOORD2"), varying_4f ("TEXCOORD3"),
126 varying_4f ("TEXCOORD4"), varying_4f ("TEXCOORD5"), varying_4f ("TEXCOORD6"), varying_4f ("TEXCOORD7"),
127 };
118 varying_1f vin::psize_1f ("PSIZE"); 128 varying_1f vin::psize_1f ("PSIZE");
119 varying_1f vin::attr6_1f ("ATTR6"); 129 varying_1f vin::attr6_1f ("ATTR6");
120 varying_1f vin::attr7_1f ("ATTR7"); 130 varying_1f vin::attr7_1f ("ATTR7");
121 varying_2f vin::attr6_2f ("ATTR6"); 131 varying_2f vin::attr6_2f ("ATTR6");
122 varying_2f vin::attr7_2f ("ATTR7"); 132 varying_2f vin::attr7_2f ("ATTR7");
133 || r == vin::normal_4f 143 || r == vin::normal_4f
134 || r == vin::color0_3f 144 || r == vin::color0_3f
135 || r == vin::color0_4f 145 || r == vin::color0_4f
136 || r == vin::color1_3f 146 || r == vin::color1_3f
137 || r == vin::color1_4f 147 || r == vin::color1_4f
138 || r == vin::texcoord0_2f 148 || r == vin::texcoord_1f[0] || r == vin::texcoord_1f[1] || r == vin::texcoord_1f[2] || r == vin::texcoord_1f[3]
139 || r == vin::texcoord0_4f 149 || r == vin::texcoord_1f[4] || r == vin::texcoord_1f[5] || r == vin::texcoord_1f[6] || r == vin::texcoord_1f[7]
140 || r == vin::texcoord1_2f 150 || r == vin::texcoord_2f[0] || r == vin::texcoord_2f[1] || r == vin::texcoord_2f[2] || r == vin::texcoord_2f[3]
141 || r == vin::texcoord1_4f 151 || r == vin::texcoord_2f[4] || r == vin::texcoord_2f[5] || r == vin::texcoord_2f[6] || r == vin::texcoord_2f[7]
142 || r == vin::texcoord2_2f 152 || r == vin::texcoord_3f[0] || r == vin::texcoord_3f[1] || r == vin::texcoord_3f[2] || r == vin::texcoord_3f[3]
143 || r == vin::texcoord2_4f 153 || r == vin::texcoord_3f[4] || r == vin::texcoord_3f[5] || r == vin::texcoord_3f[6] || r == vin::texcoord_3f[7]
144 || r == vin::texcoord3_2f 154 || r == vin::texcoord_4f[0] || r == vin::texcoord_4f[1] || r == vin::texcoord_4f[2] || r == vin::texcoord_4f[3]
145 || r == vin::texcoord3_4f 155 || r == vin::texcoord_4f[4] || r == vin::texcoord_4f[5] || r == vin::texcoord_4f[6] || r == vin::texcoord_4f[7]
146 || r == vin::texcoord4_2f
147 || r == vin::texcoord4_4f
148 || r == vin::texcoord5_2f
149 || r == vin::texcoord5_4f
150 || r == vin::texcoord6_2f
151 || r == vin::texcoord6_4f
152 || r == vin::texcoord7_2f
153 || r == vin::texcoord7_4f
154 || r == vin::psize_1f 156 || r == vin::psize_1f
155 || r == vin::attr6_1f 157 || r == vin::attr6_1f
156 || r == vin::attr7_1f 158 || r == vin::attr7_1f
157 || r == vin::attr6_2f 159 || r == vin::attr6_2f
158 || r == vin::attr7_2f 160 || r == vin::attr7_2f
167 169
168 // MUST update is-function below 170 // MUST update is-function below
169 varying_4f fin::position_4f ("HPOS"); 171 varying_4f fin::position_4f ("HPOS");
170 varying_4f fin::color0_4f ("COLOR0"); 172 varying_4f fin::color0_4f ("COLOR0");
171 varying_4f fin::color1_4f ("COLOR1"); 173 varying_4f fin::color1_4f ("COLOR1");
172 varying_4f fin::texcoord0_4f ("TEXCOORD0"); 174 varying_4f fin::texcoord_4f[8] =
173 varying_4f fin::texcoord1_4f ("TEXCOORD1"); 175 {
174 varying_4f fin::texcoord2_4f ("TEXCOORD2"); 176 varying_4f ("TEXCOORD0"), varying_4f ("TEXCOORD1"), varying_4f ("TEXCOORD2"), varying_4f ("TEXCOORD3"),
175 varying_4f fin::texcoord3_4f ("TEXCOORD3"); 177 varying_4f ("TEXCOORD4"), varying_4f ("TEXCOORD5"), varying_4f ("TEXCOORD6"), varying_4f ("TEXCOORD7"),
176 varying_4f fin::texcoord4_4f ("TEXCOORD4"); 178 };
177 varying_4f fin::texcoord5_4f ("TEXCOORD5");
178 varying_4f fin::texcoord6_4f ("TEXCOORD6");
179 varying_4f fin::texcoord7_4f ("TEXCOORD7");
180 179
181 bool fin::is (const var &r) 180 bool fin::is (const var &r)
182 { 181 {
183 return r == fin::position_4f 182 return r == fin::position_4f
184 || r == fin::color0_4f 183 || r == fin::color0_4f
185 || r == fin::color1_4f 184 || r == fin::color1_4f
186 || r == fin::texcoord0_4f 185 || r == fin::texcoord_4f[0]
187 || r == fin::texcoord1_4f 186 || r == fin::texcoord_4f[1]
188 || r == fin::texcoord2_4f 187 || r == fin::texcoord_4f[2]
189 || r == fin::texcoord3_4f 188 || r == fin::texcoord_4f[3]
190 || r == fin::texcoord4_4f 189 || r == fin::texcoord_4f[4]
191 || r == fin::texcoord5_4f 190 || r == fin::texcoord_4f[5]
192 || r == fin::texcoord6_4f 191 || r == fin::texcoord_4f[6]
193 || r == fin::texcoord7_4f; 192 || r == fin::texcoord_4f[7];
194 } 193 }
195 194
196 struct fout fout; 195 struct fout fout;
197 196
198 // MUST update is-function below 197 // MUST update is-function below
209 || r == fout::color1_4f 208 || r == fout::color1_4f
210 || r == fout::color1_3f 209 || r == fout::color1_3f
211 || r == fout::depth_1f; 210 || r == fout::depth_1f;
212 } 211 }
213 212
214 uniform_matrix_f_i mvp, mv, proj; 213 uniform_matrix_f mvp, mv, proj;
215 214
216 void fragment_vector_i::build (shader_builder &b) 215 void fragment_vector_i::build (shader_builder &b)
217 { 216 {
218 for (vector<fragment>::iterator i = begin (); i != end (); i++) 217 for (vector<fragment>::iterator i = begin (); i != end (); i++)
219 (*i)->build (b); 218 (*i)->build (b);
270 } 269 }
271 270
272void debdebdebdebug ()//D 271void debdebdebdebug ()//D
273{ 272{
274 vertex_program p; 273 vertex_program p;
275 temp_4f t1; 274 temp_4f t1, t2;
275 sampler2d s2d (1);
276 276
277 p << t2 << " = tex2D (" << s2d << ", " << vin.position_4f << ".xy);\n";
277 p << t1 << " = mul(" << vin.position_4f << "," << mvp << ");\n"; 278 p << t1 << " = mul (" << vin.position_4f << "," << mvp << ");\n";
278 p << vout.position_4f << " = " << t1 << ";\n"; 279 p << vout.position_4f << " = " << t1 << ";\n";
279 280
280 p.print (); 281 p.print ();
281 exit (0); 282 //exit (0);
282} 283}
283 284
284} 285}
285 286
286material::~material () 287material::~material ()

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines