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

Comparing libgender/shader.h (file contents):
Revision 1.32 by root, Sun Nov 7 03:31:07 2004 UTC vs.
Revision 1.33 by root, Sun Nov 7 22:07:05 2004 UTC

1181# undef SHADER_FUNC3_ 1181# undef SHADER_FUNC3_
1182# undef SHADER_FUNC4 1182# undef SHADER_FUNC4
1183# undef SHADER_FUNC5_ 1183# undef SHADER_FUNC5_
1184 1184
1185 template<class A, class B, class C> 1185 template<class A, class B, class C>
1186 struct sl_ternary 1186 struct sl_ifelse
1187 { 1187 {
1188 const A a; const B b; const C c; 1188 const A a; const B b; const C c;
1189 sl_ternary (const A &a, const B &b, const C &c) : a(a), b(b), c(c) { } 1189 sl_ifelse (const A &a, const B &b, const C &c) : a(a), b(b), c(c) { }
1190 void operator ()() const 1190 void operator ()() const
1191 { 1191 {
1192 shader_builder::cur->code << "("; 1192 shader_builder::cur->code << "(";
1193 a (); 1193 a ();
1194 shader_builder::cur->code << ") ? ("; 1194 shader_builder::cur->code << ") ? (";
1198 shader_builder::cur->code << ")"; 1198 shader_builder::cur->code << ")";
1199 } 1199 }
1200 }; 1200 };
1201 1201
1202 template<typename A, typename B, typename C> 1202 template<typename A, typename B, typename C>
1203 inline const sl_expr< sl_ternary<typename sl_convert<A>::T, typename sl_convert<B>::T, typename sl_convert<C>::T> > 1203 inline const sl_expr< sl_ifelse<typename sl_convert<A>::T, typename sl_convert<B>::T, typename sl_convert<C>::T> >
1204 ifelse (const A &a, const B &b, const C &c) 1204 ifelse (const A &a, const B &b, const C &c)
1205 { 1205 {
1206 return sl_ternary<typename sl_convert<A>::T, typename sl_convert<B>::T, typename sl_convert<C>::T> 1206 return sl_ifelse<typename sl_convert<A>::T, typename sl_convert<B>::T, typename sl_convert<C>::T>
1207 (sl_convert<A>::convert (a), sl_convert<B>::convert (b), sl_convert<C>::convert (c)); 1207 (sl_convert<A>::convert (a), sl_convert<B>::convert (b), sl_convert<C>::convert (c));
1208 } 1208 }
1209 1209
1210 } 1210 }
1211} 1211}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines