00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00030
00031 #ifndef SH_SHATTRIB_HPP
00032 #define SH_SHATTRIB_HPP
00033
00034 #ifndef SH_DO_NOT_INCLUDE_GENERIC_IMPL
00035 # define SH_DO_NOT_INCLUDE_GENERIC_IMPL
00036 # include "ShGeneric.hpp"
00037 # undef SH_DO_NOT_INCLUDE_GENERIC_IMPL
00038 #else
00039 # include "ShGeneric.hpp"
00040 #endif
00041 namespace SH {
00042
00057 template<int N, ShBindingType Binding, typename T=float, ShSemanticType Semantic=SH_ATTRIB, bool Swizzled=false>
00058 class ShAttrib : public ShGeneric<N, T> {
00059 public:
00060 typedef T storage_type;
00061 typedef typename ShHostType<T>::type host_type;
00062 typedef typename ShMemType<T>::type mem_type;
00063 static const ShBindingType binding_type = Binding;
00064 static const ShSemanticType semantic_type = Semantic;
00065
00066 typedef ShAttrib<N, SH_INPUT, T, Semantic> InputType;
00067 typedef ShAttrib<N, SH_OUTPUT, T, Semantic> OutputType;
00068 typedef ShAttrib<N, SH_INOUT, T, Semantic> InOutType;
00069 typedef ShAttrib<N, SH_TEMP, T, Semantic> TempType;
00070 typedef ShAttrib<N, SH_CONST, T, Semantic> ConstType;
00071 ShAttrib();
00072
00073 template<typename T2>
00074 ShAttrib(const ShGeneric<N, T2>& other);
00075 ShAttrib(const ShAttrib<N, Binding, T, Semantic, Swizzled>& other);
00076
00077 template<typename T2>
00078 ShAttrib(const ShAttrib<N, Binding, T2, Semantic, Swizzled>& other);
00079 ShAttrib(const ShVariableNodePtr& node, const ShSwizzle& swizzle, bool neg);
00080 explicit ShAttrib(host_type data[N]);
00081
00082 ~ShAttrib();
00083
00084
00085 template<typename T2>
00086 ShAttrib& operator=(const ShGeneric<N, T2>& other);
00087
00088 template<typename T2>
00089 ShAttrib& operator=(const ShAttrib<N, Binding, T2, Semantic, Swizzled>& other);
00090 ShAttrib& operator=(const ShAttrib<N, Binding, T, Semantic, Swizzled>& other);
00091
00092 ShAttrib& operator=(const ShProgram& prg);
00093
00094
00095 ShAttrib& operator++();
00096
00097 ShAttrib& operator--();
00098
00099 template<typename T2>
00100 ShAttrib& operator+=(const ShGeneric<N, T2>& right);
00101
00102 template<typename T2>
00103 ShAttrib& operator-=(const ShGeneric<N, T2>& right);
00104
00105 template<typename T2>
00106 ShAttrib& operator*=(const ShGeneric<N, T2>& right);
00107
00108 template<typename T2>
00109 ShAttrib& operator/=(const ShGeneric<N, T2>& right);
00110
00111 template<typename T2>
00112 ShAttrib& operator%=(const ShGeneric<N, T2>& right);
00113 ShAttrib& operator*=(host_type);
00114 ShAttrib& operator/=(host_type);
00115 ShAttrib& operator%=(host_type);
00116 ShAttrib& operator+=(host_type);
00117 ShAttrib& operator-=(host_type);
00118
00119 template<typename T2>
00120 ShAttrib& operator+=(const ShGeneric<1, T2>&);
00121
00122 template<typename T2>
00123 ShAttrib& operator-=(const ShGeneric<1, T2>&);
00124
00125 template<typename T2>
00126 ShAttrib& operator*=(const ShGeneric<1, T2>&);
00127
00128 template<typename T2>
00129 ShAttrib& operator/=(const ShGeneric<1, T2>&);
00130
00131 template<typename T2>
00132 ShAttrib& operator%=(const ShGeneric<1, T2>&);
00133 ShAttrib<1, Binding, T, Semantic, true> operator()(int) const;
00134 ShAttrib<2, Binding, T, Semantic, true> operator()(int, int) const;
00135 ShAttrib<3, Binding, T, Semantic, true> operator()(int, int, int) const;
00136 ShAttrib<4, Binding, T, Semantic, true> operator()(int, int, int, int) const;
00137 ShAttrib<1, Binding, T, Semantic, true> operator[](int) const;
00138
00139 template<int N2>
00140 ShAttrib<N2, Binding, T, Semantic, true> swiz(int indices[]) const;
00141
00142 ShAttrib operator-() const;
00143 private:
00144 typedef ShGeneric<N, T> ParentType;
00145 };
00146
00147 template<ShBindingType Binding, typename T, ShSemanticType Semantic, bool Swizzled>
00148 class ShAttrib<1, Binding, T, Semantic, Swizzled> : public ShGeneric<1, T> {
00149 public:
00150 typedef T storage_type;
00151 typedef typename ShHostType<T>::type host_type;
00152 typedef typename ShMemType<T>::type mem_type;
00153 static const ShBindingType binding_type = Binding;
00154 static const ShSemanticType semantic_type = Semantic;
00155
00156 typedef ShAttrib<1, SH_INPUT, T, Semantic> InputType;
00157 typedef ShAttrib<1, SH_OUTPUT, T, Semantic> OutputType;
00158 typedef ShAttrib<1, SH_INOUT, T, Semantic> InOutType;
00159 typedef ShAttrib<1, SH_TEMP, T, Semantic> TempType;
00160 typedef ShAttrib<1, SH_CONST, T, Semantic> ConstType;
00161 ShAttrib();
00162
00163 template<typename T2>
00164 ShAttrib(const ShGeneric<1, T2>& other);
00165 ShAttrib(const ShAttrib<1, Binding, T, Semantic, Swizzled>& other);
00166
00167 template<typename T2>
00168 ShAttrib(const ShAttrib<1, Binding, T2, Semantic, Swizzled>& other);
00169 ShAttrib(const ShVariableNodePtr& node, const ShSwizzle& swizzle, bool neg);
00170 explicit ShAttrib(host_type data[1]);
00171
00172 ShAttrib(host_type);
00173
00174 ~ShAttrib();
00175
00176
00177 template<typename T2>
00178 ShAttrib& operator=(const ShGeneric<1, T2>& other);
00179
00180 template<typename T2>
00181 ShAttrib& operator=(const ShAttrib<1, Binding, T2, Semantic, Swizzled>& other);
00182 ShAttrib& operator=(const ShAttrib<1, Binding, T, Semantic, Swizzled>& other);
00183
00184 ShAttrib& operator=(host_type other);
00185
00186 ShAttrib& operator=(const ShProgram& prg);
00187
00188
00189 ShAttrib& operator++();
00190
00191 ShAttrib& operator--();
00192
00193 template<typename T2>
00194 ShAttrib& operator+=(const ShGeneric<1, T2>& right);
00195
00196 template<typename T2>
00197 ShAttrib& operator-=(const ShGeneric<1, T2>& right);
00198
00199 template<typename T2>
00200 ShAttrib& operator*=(const ShGeneric<1, T2>& right);
00201
00202 template<typename T2>
00203 ShAttrib& operator/=(const ShGeneric<1, T2>& right);
00204
00205 template<typename T2>
00206 ShAttrib& operator%=(const ShGeneric<1, T2>& right);
00207 ShAttrib& operator*=(host_type);
00208 ShAttrib& operator/=(host_type);
00209 ShAttrib& operator%=(host_type);
00210 ShAttrib& operator+=(host_type);
00211 ShAttrib& operator-=(host_type);
00212 ShAttrib<1, Binding, T, Semantic, true> operator()(int) const;
00213 ShAttrib<2, Binding, T, Semantic, true> operator()(int, int) const;
00214 ShAttrib<3, Binding, T, Semantic, true> operator()(int, int, int) const;
00215 ShAttrib<4, Binding, T, Semantic, true> operator()(int, int, int, int) const;
00216 ShAttrib<1, Binding, T, Semantic, true> operator[](int) const;
00217
00218 template<int N2>
00219 ShAttrib<N2, Binding, T, Semantic, true> swiz(int indices[]) const;
00220
00221 ShAttrib operator-() const;
00222 private:
00223 typedef ShGeneric<1, T> ParentType;
00224 };
00225
00226 template<ShBindingType Binding, typename T, ShSemanticType Semantic, bool Swizzled>
00227 class ShAttrib<2, Binding, T, Semantic, Swizzled> : public ShGeneric<2, T> {
00228 public:
00229 typedef T storage_type;
00230 typedef typename ShHostType<T>::type host_type;
00231 typedef typename ShMemType<T>::type mem_type;
00232 static const ShBindingType binding_type = Binding;
00233 static const ShSemanticType semantic_type = Semantic;
00234
00235 typedef ShAttrib<2, SH_INPUT, T, Semantic> InputType;
00236 typedef ShAttrib<2, SH_OUTPUT, T, Semantic> OutputType;
00237 typedef ShAttrib<2, SH_INOUT, T, Semantic> InOutType;
00238 typedef ShAttrib<2, SH_TEMP, T, Semantic> TempType;
00239 typedef ShAttrib<2, SH_CONST, T, Semantic> ConstType;
00240 ShAttrib();
00241
00242 template<typename T2>
00243 ShAttrib(const ShGeneric<2, T2>& other);
00244 ShAttrib(const ShAttrib<2, Binding, T, Semantic, Swizzled>& other);
00245
00246 template<typename T2>
00247 ShAttrib(const ShAttrib<2, Binding, T2, Semantic, Swizzled>& other);
00248 ShAttrib(const ShVariableNodePtr& node, const ShSwizzle& swizzle, bool neg);
00249 explicit ShAttrib(host_type data[2]);
00250
00251 ShAttrib(host_type, host_type);
00252 template<typename T2, typename T3>
00253 ShAttrib(const ShGeneric<1, T2>&, const ShGeneric<1, T3>&);
00254
00255 ~ShAttrib();
00256
00257
00258 template<typename T2>
00259 ShAttrib& operator=(const ShGeneric<2, T2>& other);
00260
00261 template<typename T2>
00262 ShAttrib& operator=(const ShAttrib<2, Binding, T2, Semantic, Swizzled>& other);
00263 ShAttrib& operator=(const ShAttrib<2, Binding, T, Semantic, Swizzled>& other);
00264
00265 ShAttrib& operator=(const ShProgram& prg);
00266
00267
00268 ShAttrib& operator++();
00269
00270 ShAttrib& operator--();
00271
00272 template<typename T2>
00273 ShAttrib& operator+=(const ShGeneric<2, T2>& right);
00274
00275 template<typename T2>
00276 ShAttrib& operator-=(const ShGeneric<2, T2>& right);
00277
00278 template<typename T2>
00279 ShAttrib& operator*=(const ShGeneric<2, T2>& right);
00280
00281 template<typename T2>
00282 ShAttrib& operator/=(const ShGeneric<2, T2>& right);
00283
00284 template<typename T2>
00285 ShAttrib& operator%=(const ShGeneric<2, T2>& right);
00286 ShAttrib& operator*=(host_type);
00287 ShAttrib& operator/=(host_type);
00288 ShAttrib& operator%=(host_type);
00289 ShAttrib& operator+=(host_type);
00290 ShAttrib& operator-=(host_type);
00291
00292 template<typename T2>
00293 ShAttrib& operator+=(const ShGeneric<1, T2>&);
00294
00295 template<typename T2>
00296 ShAttrib& operator-=(const ShGeneric<1, T2>&);
00297
00298 template<typename T2>
00299 ShAttrib& operator*=(const ShGeneric<1, T2>&);
00300
00301 template<typename T2>
00302 ShAttrib& operator/=(const ShGeneric<1, T2>&);
00303
00304 template<typename T2>
00305 ShAttrib& operator%=(const ShGeneric<1, T2>&);
00306 ShAttrib<1, Binding, T, Semantic, true> operator()(int) const;
00307 ShAttrib<2, Binding, T, Semantic, true> operator()(int, int) const;
00308 ShAttrib<3, Binding, T, Semantic, true> operator()(int, int, int) const;
00309 ShAttrib<4, Binding, T, Semantic, true> operator()(int, int, int, int) const;
00310 ShAttrib<1, Binding, T, Semantic, true> operator[](int) const;
00311
00312 template<int N2>
00313 ShAttrib<N2, Binding, T, Semantic, true> swiz(int indices[]) const;
00314
00315 ShAttrib operator-() const;
00316 private:
00317 typedef ShGeneric<2, T> ParentType;
00318 };
00319
00320 template<ShBindingType Binding, typename T, ShSemanticType Semantic, bool Swizzled>
00321 class ShAttrib<3, Binding, T, Semantic, Swizzled> : public ShGeneric<3, T> {
00322 public:
00323 typedef T storage_type;
00324 typedef typename ShHostType<T>::type host_type;
00325 typedef typename ShMemType<T>::type mem_type;
00326 static const ShBindingType binding_type = Binding;
00327 static const ShSemanticType semantic_type = Semantic;
00328
00329 typedef ShAttrib<3, SH_INPUT, T, Semantic> InputType;
00330 typedef ShAttrib<3, SH_OUTPUT, T, Semantic> OutputType;
00331 typedef ShAttrib<3, SH_INOUT, T, Semantic> InOutType;
00332 typedef ShAttrib<3, SH_TEMP, T, Semantic> TempType;
00333 typedef ShAttrib<3, SH_CONST, T, Semantic> ConstType;
00334 ShAttrib();
00335
00336 template<typename T2>
00337 ShAttrib(const ShGeneric<3, T2>& other);
00338 ShAttrib(const ShAttrib<3, Binding, T, Semantic, Swizzled>& other);
00339
00340 template<typename T2>
00341 ShAttrib(const ShAttrib<3, Binding, T2, Semantic, Swizzled>& other);
00342 ShAttrib(const ShVariableNodePtr& node, const ShSwizzle& swizzle, bool neg);
00343 explicit ShAttrib(host_type data[3]);
00344
00345 ShAttrib(host_type, host_type, host_type);
00346 template<typename T2, typename T3, typename T4>
00347 ShAttrib(const ShGeneric<1, T2>&, const ShGeneric<1, T3>&, const ShGeneric<1, T4>&);
00348
00349 ~ShAttrib();
00350
00351
00352 template<typename T2>
00353 ShAttrib& operator=(const ShGeneric<3, T2>& other);
00354
00355 template<typename T2>
00356 ShAttrib& operator=(const ShAttrib<3, Binding, T2, Semantic, Swizzled>& other);
00357 ShAttrib& operator=(const ShAttrib<3, Binding, T, Semantic, Swizzled>& other);
00358
00359 ShAttrib& operator=(const ShProgram& prg);
00360
00361
00362 ShAttrib& operator++();
00363
00364 ShAttrib& operator--();
00365
00366 template<typename T2>
00367 ShAttrib& operator+=(const ShGeneric<3, T2>& right);
00368
00369 template<typename T2>
00370 ShAttrib& operator-=(const ShGeneric<3, T2>& right);
00371
00372 template<typename T2>
00373 ShAttrib& operator*=(const ShGeneric<3, T2>& right);
00374
00375 template<typename T2>
00376 ShAttrib& operator/=(const ShGeneric<3, T2>& right);
00377
00378 template<typename T2>
00379 ShAttrib& operator%=(const ShGeneric<3, T2>& right);
00380 ShAttrib& operator*=(host_type);
00381 ShAttrib& operator/=(host_type);
00382 ShAttrib& operator%=(host_type);
00383 ShAttrib& operator+=(host_type);
00384 ShAttrib& operator-=(host_type);
00385
00386 template<typename T2>
00387 ShAttrib& operator+=(const ShGeneric<1, T2>&);
00388
00389 template<typename T2>
00390 ShAttrib& operator-=(const ShGeneric<1, T2>&);
00391
00392 template<typename T2>
00393 ShAttrib& operator*=(const ShGeneric<1, T2>&);
00394
00395 template<typename T2>
00396 ShAttrib& operator/=(const ShGeneric<1, T2>&);
00397
00398 template<typename T2>
00399 ShAttrib& operator%=(const ShGeneric<1, T2>&);
00400 ShAttrib<1, Binding, T, Semantic, true> operator()(int) const;
00401 ShAttrib<2, Binding, T, Semantic, true> operator()(int, int) const;
00402 ShAttrib<3, Binding, T, Semantic, true> operator()(int, int, int) const;
00403 ShAttrib<4, Binding, T, Semantic, true> operator()(int, int, int, int) const;
00404 ShAttrib<1, Binding, T, Semantic, true> operator[](int) const;
00405
00406 template<int N2>
00407 ShAttrib<N2, Binding, T, Semantic, true> swiz(int indices[]) const;
00408
00409 ShAttrib operator-() const;
00410 private:
00411 typedef ShGeneric<3, T> ParentType;
00412 };
00413
00414 template<ShBindingType Binding, typename T, ShSemanticType Semantic, bool Swizzled>
00415 class ShAttrib<4, Binding, T, Semantic, Swizzled> : public ShGeneric<4, T> {
00416 public:
00417 typedef T storage_type;
00418 typedef typename ShHostType<T>::type host_type;
00419 typedef typename ShMemType<T>::type mem_type;
00420 static const ShBindingType binding_type = Binding;
00421 static const ShSemanticType semantic_type = Semantic;
00422
00423 typedef ShAttrib<4, SH_INPUT, T, Semantic> InputType;
00424 typedef ShAttrib<4, SH_OUTPUT, T, Semantic> OutputType;
00425 typedef ShAttrib<4, SH_INOUT, T, Semantic> InOutType;
00426 typedef ShAttrib<4, SH_TEMP, T, Semantic> TempType;
00427 typedef ShAttrib<4, SH_CONST, T, Semantic> ConstType;
00428 ShAttrib();
00429
00430 template<typename T2>
00431 ShAttrib(const ShGeneric<4, T2>& other);
00432 ShAttrib(const ShAttrib<4, Binding, T, Semantic, Swizzled>& other);
00433
00434 template<typename T2>
00435 ShAttrib(const ShAttrib<4, Binding, T2, Semantic, Swizzled>& other);
00436 ShAttrib(const ShVariableNodePtr& node, const ShSwizzle& swizzle, bool neg);
00437 explicit ShAttrib(host_type data[4]);
00438
00439 ShAttrib(host_type, host_type, host_type, host_type);
00440 template<typename T2, typename T3, typename T4, typename T5>
00441 ShAttrib(const ShGeneric<1, T2>&, const ShGeneric<1, T3>&, const ShGeneric<1, T4>&, const ShGeneric<1, T5>&);
00442
00443 ~ShAttrib();
00444
00445
00446 template<typename T2>
00447 ShAttrib& operator=(const ShGeneric<4, T2>& other);
00448
00449 template<typename T2>
00450 ShAttrib& operator=(const ShAttrib<4, Binding, T2, Semantic, Swizzled>& other);
00451 ShAttrib& operator=(const ShAttrib<4, Binding, T, Semantic, Swizzled>& other);
00452
00453 ShAttrib& operator=(const ShProgram& prg);
00454
00455
00456 ShAttrib& operator++();
00457
00458 ShAttrib& operator--();
00459
00460 template<typename T2>
00461 ShAttrib& operator+=(const ShGeneric<4, T2>& right);
00462
00463 template<typename T2>
00464 ShAttrib& operator-=(const ShGeneric<4, T2>& right);
00465
00466 template<typename T2>
00467 ShAttrib& operator*=(const ShGeneric<4, T2>& right);
00468
00469 template<typename T2>
00470 ShAttrib& operator/=(const ShGeneric<4, T2>& right);
00471
00472 template<typename T2>
00473 ShAttrib& operator%=(const ShGeneric<4, T2>& right);
00474 ShAttrib& operator*=(host_type);
00475 ShAttrib& operator/=(host_type);
00476 ShAttrib& operator%=(host_type);
00477 ShAttrib& operator+=(host_type);
00478 ShAttrib& operator-=(host_type);
00479
00480 template<typename T2>
00481 ShAttrib& operator+=(const ShGeneric<1, T2>&);
00482
00483 template<typename T2>
00484 ShAttrib& operator-=(const ShGeneric<1, T2>&);
00485
00486 template<typename T2>
00487 ShAttrib& operator*=(const ShGeneric<1, T2>&);
00488
00489 template<typename T2>
00490 ShAttrib& operator/=(const ShGeneric<1, T2>&);
00491
00492 template<typename T2>
00493 ShAttrib& operator%=(const ShGeneric<1, T2>&);
00494 ShAttrib<1, Binding, T, Semantic, true> operator()(int) const;
00495 ShAttrib<2, Binding, T, Semantic, true> operator()(int, int) const;
00496 ShAttrib<3, Binding, T, Semantic, true> operator()(int, int, int) const;
00497 ShAttrib<4, Binding, T, Semantic, true> operator()(int, int, int, int) const;
00498 ShAttrib<1, Binding, T, Semantic, true> operator[](int) const;
00499
00500 template<int N2>
00501 ShAttrib<N2, Binding, T, Semantic, true> swiz(int indices[]) const;
00502
00503 ShAttrib operator-() const;
00504 private:
00505 typedef ShGeneric<4, T> ParentType;
00506 };
00507
00508 typedef ShAttrib<1, SH_INPUT, ShFracUShort, SH_ATTRIB> ShInputAttrib1fus;
00509 typedef ShAttrib<1, SH_OUTPUT, ShFracUShort, SH_ATTRIB> ShOutputAttrib1fus;
00510 typedef ShAttrib<1, SH_INOUT, ShFracUShort, SH_ATTRIB> ShInOutAttrib1fus;
00511 typedef ShAttrib<1, SH_TEMP, ShFracUShort, SH_ATTRIB> ShAttrib1fus;
00512 typedef ShAttrib<1, SH_CONST, ShFracUShort, SH_ATTRIB> ShConstAttrib1fus;
00513 typedef ShAttrib<2, SH_INPUT, ShFracUShort, SH_ATTRIB> ShInputAttrib2fus;
00514 typedef ShAttrib<2, SH_OUTPUT, ShFracUShort, SH_ATTRIB> ShOutputAttrib2fus;
00515 typedef ShAttrib<2, SH_INOUT, ShFracUShort, SH_ATTRIB> ShInOutAttrib2fus;
00516 typedef ShAttrib<2, SH_TEMP, ShFracUShort, SH_ATTRIB> ShAttrib2fus;
00517 typedef ShAttrib<2, SH_CONST, ShFracUShort, SH_ATTRIB> ShConstAttrib2fus;
00518 typedef ShAttrib<3, SH_INPUT, ShFracUShort, SH_ATTRIB> ShInputAttrib3fus;
00519 typedef ShAttrib<3, SH_OUTPUT, ShFracUShort, SH_ATTRIB> ShOutputAttrib3fus;
00520 typedef ShAttrib<3, SH_INOUT, ShFracUShort, SH_ATTRIB> ShInOutAttrib3fus;
00521 typedef ShAttrib<3, SH_TEMP, ShFracUShort, SH_ATTRIB> ShAttrib3fus;
00522 typedef ShAttrib<3, SH_CONST, ShFracUShort, SH_ATTRIB> ShConstAttrib3fus;
00523 typedef ShAttrib<4, SH_INPUT, ShFracUShort, SH_ATTRIB> ShInputAttrib4fus;
00524 typedef ShAttrib<4, SH_OUTPUT, ShFracUShort, SH_ATTRIB> ShOutputAttrib4fus;
00525 typedef ShAttrib<4, SH_INOUT, ShFracUShort, SH_ATTRIB> ShInOutAttrib4fus;
00526 typedef ShAttrib<4, SH_TEMP, ShFracUShort, SH_ATTRIB> ShAttrib4fus;
00527 typedef ShAttrib<4, SH_CONST, ShFracUShort, SH_ATTRIB> ShConstAttrib4fus;
00528
00529
00530 typedef ShAttrib<1, SH_INPUT, short, SH_ATTRIB> ShInputAttrib1s;
00531 typedef ShAttrib<1, SH_OUTPUT, short, SH_ATTRIB> ShOutputAttrib1s;
00532 typedef ShAttrib<1, SH_INOUT, short, SH_ATTRIB> ShInOutAttrib1s;
00533 typedef ShAttrib<1, SH_TEMP, short, SH_ATTRIB> ShAttrib1s;
00534 typedef ShAttrib<1, SH_CONST, short, SH_ATTRIB> ShConstAttrib1s;
00535 typedef ShAttrib<2, SH_INPUT, short, SH_ATTRIB> ShInputAttrib2s;
00536 typedef ShAttrib<2, SH_OUTPUT, short, SH_ATTRIB> ShOutputAttrib2s;
00537 typedef ShAttrib<2, SH_INOUT, short, SH_ATTRIB> ShInOutAttrib2s;
00538 typedef ShAttrib<2, SH_TEMP, short, SH_ATTRIB> ShAttrib2s;
00539 typedef ShAttrib<2, SH_CONST, short, SH_ATTRIB> ShConstAttrib2s;
00540 typedef ShAttrib<3, SH_INPUT, short, SH_ATTRIB> ShInputAttrib3s;
00541 typedef ShAttrib<3, SH_OUTPUT, short, SH_ATTRIB> ShOutputAttrib3s;
00542 typedef ShAttrib<3, SH_INOUT, short, SH_ATTRIB> ShInOutAttrib3s;
00543 typedef ShAttrib<3, SH_TEMP, short, SH_ATTRIB> ShAttrib3s;
00544 typedef ShAttrib<3, SH_CONST, short, SH_ATTRIB> ShConstAttrib3s;
00545 typedef ShAttrib<4, SH_INPUT, short, SH_ATTRIB> ShInputAttrib4s;
00546 typedef ShAttrib<4, SH_OUTPUT, short, SH_ATTRIB> ShOutputAttrib4s;
00547 typedef ShAttrib<4, SH_INOUT, short, SH_ATTRIB> ShInOutAttrib4s;
00548 typedef ShAttrib<4, SH_TEMP, short, SH_ATTRIB> ShAttrib4s;
00549 typedef ShAttrib<4, SH_CONST, short, SH_ATTRIB> ShConstAttrib4s;
00550
00551
00552 typedef ShAttrib<1, SH_INPUT, ShFracUInt, SH_ATTRIB> ShInputAttrib1fui;
00553 typedef ShAttrib<1, SH_OUTPUT, ShFracUInt, SH_ATTRIB> ShOutputAttrib1fui;
00554 typedef ShAttrib<1, SH_INOUT, ShFracUInt, SH_ATTRIB> ShInOutAttrib1fui;
00555 typedef ShAttrib<1, SH_TEMP, ShFracUInt, SH_ATTRIB> ShAttrib1fui;
00556 typedef ShAttrib<1, SH_CONST, ShFracUInt, SH_ATTRIB> ShConstAttrib1fui;
00557 typedef ShAttrib<2, SH_INPUT, ShFracUInt, SH_ATTRIB> ShInputAttrib2fui;
00558 typedef ShAttrib<2, SH_OUTPUT, ShFracUInt, SH_ATTRIB> ShOutputAttrib2fui;
00559 typedef ShAttrib<2, SH_INOUT, ShFracUInt, SH_ATTRIB> ShInOutAttrib2fui;
00560 typedef ShAttrib<2, SH_TEMP, ShFracUInt, SH_ATTRIB> ShAttrib2fui;
00561 typedef ShAttrib<2, SH_CONST, ShFracUInt, SH_ATTRIB> ShConstAttrib2fui;
00562 typedef ShAttrib<3, SH_INPUT, ShFracUInt, SH_ATTRIB> ShInputAttrib3fui;
00563 typedef ShAttrib<3, SH_OUTPUT, ShFracUInt, SH_ATTRIB> ShOutputAttrib3fui;
00564 typedef ShAttrib<3, SH_INOUT, ShFracUInt, SH_ATTRIB> ShInOutAttrib3fui;
00565 typedef ShAttrib<3, SH_TEMP, ShFracUInt, SH_ATTRIB> ShAttrib3fui;
00566 typedef ShAttrib<3, SH_CONST, ShFracUInt, SH_ATTRIB> ShConstAttrib3fui;
00567 typedef ShAttrib<4, SH_INPUT, ShFracUInt, SH_ATTRIB> ShInputAttrib4fui;
00568 typedef ShAttrib<4, SH_OUTPUT, ShFracUInt, SH_ATTRIB> ShOutputAttrib4fui;
00569 typedef ShAttrib<4, SH_INOUT, ShFracUInt, SH_ATTRIB> ShInOutAttrib4fui;
00570 typedef ShAttrib<4, SH_TEMP, ShFracUInt, SH_ATTRIB> ShAttrib4fui;
00571 typedef ShAttrib<4, SH_CONST, ShFracUInt, SH_ATTRIB> ShConstAttrib4fui;
00572
00573
00574 typedef ShAttrib<1, SH_INPUT, ShFracByte, SH_ATTRIB> ShInputAttrib1fb;
00575 typedef ShAttrib<1, SH_OUTPUT, ShFracByte, SH_ATTRIB> ShOutputAttrib1fb;
00576 typedef ShAttrib<1, SH_INOUT, ShFracByte, SH_ATTRIB> ShInOutAttrib1fb;
00577 typedef ShAttrib<1, SH_TEMP, ShFracByte, SH_ATTRIB> ShAttrib1fb;
00578 typedef ShAttrib<1, SH_CONST, ShFracByte, SH_ATTRIB> ShConstAttrib1fb;
00579 typedef ShAttrib<2, SH_INPUT, ShFracByte, SH_ATTRIB> ShInputAttrib2fb;
00580 typedef ShAttrib<2, SH_OUTPUT, ShFracByte, SH_ATTRIB> ShOutputAttrib2fb;
00581 typedef ShAttrib<2, SH_INOUT, ShFracByte, SH_ATTRIB> ShInOutAttrib2fb;
00582 typedef ShAttrib<2, SH_TEMP, ShFracByte, SH_ATTRIB> ShAttrib2fb;
00583 typedef ShAttrib<2, SH_CONST, ShFracByte, SH_ATTRIB> ShConstAttrib2fb;
00584 typedef ShAttrib<3, SH_INPUT, ShFracByte, SH_ATTRIB> ShInputAttrib3fb;
00585 typedef ShAttrib<3, SH_OUTPUT, ShFracByte, SH_ATTRIB> ShOutputAttrib3fb;
00586 typedef ShAttrib<3, SH_INOUT, ShFracByte, SH_ATTRIB> ShInOutAttrib3fb;
00587 typedef ShAttrib<3, SH_TEMP, ShFracByte, SH_ATTRIB> ShAttrib3fb;
00588 typedef ShAttrib<3, SH_CONST, ShFracByte, SH_ATTRIB> ShConstAttrib3fb;
00589 typedef ShAttrib<4, SH_INPUT, ShFracByte, SH_ATTRIB> ShInputAttrib4fb;
00590 typedef ShAttrib<4, SH_OUTPUT, ShFracByte, SH_ATTRIB> ShOutputAttrib4fb;
00591 typedef ShAttrib<4, SH_INOUT, ShFracByte, SH_ATTRIB> ShInOutAttrib4fb;
00592 typedef ShAttrib<4, SH_TEMP, ShFracByte, SH_ATTRIB> ShAttrib4fb;
00593 typedef ShAttrib<4, SH_CONST, ShFracByte, SH_ATTRIB> ShConstAttrib4fb;
00594
00595
00596 typedef ShAttrib<1, SH_INPUT, int, SH_ATTRIB> ShInputAttrib1i;
00597 typedef ShAttrib<1, SH_OUTPUT, int, SH_ATTRIB> ShOutputAttrib1i;
00598 typedef ShAttrib<1, SH_INOUT, int, SH_ATTRIB> ShInOutAttrib1i;
00599 typedef ShAttrib<1, SH_TEMP, int, SH_ATTRIB> ShAttrib1i;
00600 typedef ShAttrib<1, SH_CONST, int, SH_ATTRIB> ShConstAttrib1i;
00601 typedef ShAttrib<2, SH_INPUT, int, SH_ATTRIB> ShInputAttrib2i;
00602 typedef ShAttrib<2, SH_OUTPUT, int, SH_ATTRIB> ShOutputAttrib2i;
00603 typedef ShAttrib<2, SH_INOUT, int, SH_ATTRIB> ShInOutAttrib2i;
00604 typedef ShAttrib<2, SH_TEMP, int, SH_ATTRIB> ShAttrib2i;
00605 typedef ShAttrib<2, SH_CONST, int, SH_ATTRIB> ShConstAttrib2i;
00606 typedef ShAttrib<3, SH_INPUT, int, SH_ATTRIB> ShInputAttrib3i;
00607 typedef ShAttrib<3, SH_OUTPUT, int, SH_ATTRIB> ShOutputAttrib3i;
00608 typedef ShAttrib<3, SH_INOUT, int, SH_ATTRIB> ShInOutAttrib3i;
00609 typedef ShAttrib<3, SH_TEMP, int, SH_ATTRIB> ShAttrib3i;
00610 typedef ShAttrib<3, SH_CONST, int, SH_ATTRIB> ShConstAttrib3i;
00611 typedef ShAttrib<4, SH_INPUT, int, SH_ATTRIB> ShInputAttrib4i;
00612 typedef ShAttrib<4, SH_OUTPUT, int, SH_ATTRIB> ShOutputAttrib4i;
00613 typedef ShAttrib<4, SH_INOUT, int, SH_ATTRIB> ShInOutAttrib4i;
00614 typedef ShAttrib<4, SH_TEMP, int, SH_ATTRIB> ShAttrib4i;
00615 typedef ShAttrib<4, SH_CONST, int, SH_ATTRIB> ShConstAttrib4i;
00616
00617
00618 typedef ShAttrib<1, SH_INPUT, double, SH_ATTRIB> ShInputAttrib1d;
00619 typedef ShAttrib<1, SH_OUTPUT, double, SH_ATTRIB> ShOutputAttrib1d;
00620 typedef ShAttrib<1, SH_INOUT, double, SH_ATTRIB> ShInOutAttrib1d;
00621 typedef ShAttrib<1, SH_TEMP, double, SH_ATTRIB> ShAttrib1d;
00622 typedef ShAttrib<1, SH_CONST, double, SH_ATTRIB> ShConstAttrib1d;
00623 typedef ShAttrib<2, SH_INPUT, double, SH_ATTRIB> ShInputAttrib2d;
00624 typedef ShAttrib<2, SH_OUTPUT, double, SH_ATTRIB> ShOutputAttrib2d;
00625 typedef ShAttrib<2, SH_INOUT, double, SH_ATTRIB> ShInOutAttrib2d;
00626 typedef ShAttrib<2, SH_TEMP, double, SH_ATTRIB> ShAttrib2d;
00627 typedef ShAttrib<2, SH_CONST, double, SH_ATTRIB> ShConstAttrib2d;
00628 typedef ShAttrib<3, SH_INPUT, double, SH_ATTRIB> ShInputAttrib3d;
00629 typedef ShAttrib<3, SH_OUTPUT, double, SH_ATTRIB> ShOutputAttrib3d;
00630 typedef ShAttrib<3, SH_INOUT, double, SH_ATTRIB> ShInOutAttrib3d;
00631 typedef ShAttrib<3, SH_TEMP, double, SH_ATTRIB> ShAttrib3d;
00632 typedef ShAttrib<3, SH_CONST, double, SH_ATTRIB> ShConstAttrib3d;
00633 typedef ShAttrib<4, SH_INPUT, double, SH_ATTRIB> ShInputAttrib4d;
00634 typedef ShAttrib<4, SH_OUTPUT, double, SH_ATTRIB> ShOutputAttrib4d;
00635 typedef ShAttrib<4, SH_INOUT, double, SH_ATTRIB> ShInOutAttrib4d;
00636 typedef ShAttrib<4, SH_TEMP, double, SH_ATTRIB> ShAttrib4d;
00637 typedef ShAttrib<4, SH_CONST, double, SH_ATTRIB> ShConstAttrib4d;
00638
00639
00640 typedef ShAttrib<1, SH_INPUT, unsigned char, SH_ATTRIB> ShInputAttrib1ub;
00641 typedef ShAttrib<1, SH_OUTPUT, unsigned char, SH_ATTRIB> ShOutputAttrib1ub;
00642 typedef ShAttrib<1, SH_INOUT, unsigned char, SH_ATTRIB> ShInOutAttrib1ub;
00643 typedef ShAttrib<1, SH_TEMP, unsigned char, SH_ATTRIB> ShAttrib1ub;
00644 typedef ShAttrib<1, SH_CONST, unsigned char, SH_ATTRIB> ShConstAttrib1ub;
00645 typedef ShAttrib<2, SH_INPUT, unsigned char, SH_ATTRIB> ShInputAttrib2ub;
00646 typedef ShAttrib<2, SH_OUTPUT, unsigned char, SH_ATTRIB> ShOutputAttrib2ub;
00647 typedef ShAttrib<2, SH_INOUT, unsigned char, SH_ATTRIB> ShInOutAttrib2ub;
00648 typedef ShAttrib<2, SH_TEMP, unsigned char, SH_ATTRIB> ShAttrib2ub;
00649 typedef ShAttrib<2, SH_CONST, unsigned char, SH_ATTRIB> ShConstAttrib2ub;
00650 typedef ShAttrib<3, SH_INPUT, unsigned char, SH_ATTRIB> ShInputAttrib3ub;
00651 typedef ShAttrib<3, SH_OUTPUT, unsigned char, SH_ATTRIB> ShOutputAttrib3ub;
00652 typedef ShAttrib<3, SH_INOUT, unsigned char, SH_ATTRIB> ShInOutAttrib3ub;
00653 typedef ShAttrib<3, SH_TEMP, unsigned char, SH_ATTRIB> ShAttrib3ub;
00654 typedef ShAttrib<3, SH_CONST, unsigned char, SH_ATTRIB> ShConstAttrib3ub;
00655 typedef ShAttrib<4, SH_INPUT, unsigned char, SH_ATTRIB> ShInputAttrib4ub;
00656 typedef ShAttrib<4, SH_OUTPUT, unsigned char, SH_ATTRIB> ShOutputAttrib4ub;
00657 typedef ShAttrib<4, SH_INOUT, unsigned char, SH_ATTRIB> ShInOutAttrib4ub;
00658 typedef ShAttrib<4, SH_TEMP, unsigned char, SH_ATTRIB> ShAttrib4ub;
00659 typedef ShAttrib<4, SH_CONST, unsigned char, SH_ATTRIB> ShConstAttrib4ub;
00660
00661
00662 typedef ShAttrib<1, SH_INPUT, float, SH_ATTRIB> ShInputAttrib1f;
00663 typedef ShAttrib<1, SH_OUTPUT, float, SH_ATTRIB> ShOutputAttrib1f;
00664 typedef ShAttrib<1, SH_INOUT, float, SH_ATTRIB> ShInOutAttrib1f;
00665 typedef ShAttrib<1, SH_TEMP, float, SH_ATTRIB> ShAttrib1f;
00666 typedef ShAttrib<1, SH_CONST, float, SH_ATTRIB> ShConstAttrib1f;
00667 typedef ShAttrib<2, SH_INPUT, float, SH_ATTRIB> ShInputAttrib2f;
00668 typedef ShAttrib<2, SH_OUTPUT, float, SH_ATTRIB> ShOutputAttrib2f;
00669 typedef ShAttrib<2, SH_INOUT, float, SH_ATTRIB> ShInOutAttrib2f;
00670 typedef ShAttrib<2, SH_TEMP, float, SH_ATTRIB> ShAttrib2f;
00671 typedef ShAttrib<2, SH_CONST, float, SH_ATTRIB> ShConstAttrib2f;
00672 typedef ShAttrib<3, SH_INPUT, float, SH_ATTRIB> ShInputAttrib3f;
00673 typedef ShAttrib<3, SH_OUTPUT, float, SH_ATTRIB> ShOutputAttrib3f;
00674 typedef ShAttrib<3, SH_INOUT, float, SH_ATTRIB> ShInOutAttrib3f;
00675 typedef ShAttrib<3, SH_TEMP, float, SH_ATTRIB> ShAttrib3f;
00676 typedef ShAttrib<3, SH_CONST, float, SH_ATTRIB> ShConstAttrib3f;
00677 typedef ShAttrib<4, SH_INPUT, float, SH_ATTRIB> ShInputAttrib4f;
00678 typedef ShAttrib<4, SH_OUTPUT, float, SH_ATTRIB> ShOutputAttrib4f;
00679 typedef ShAttrib<4, SH_INOUT, float, SH_ATTRIB> ShInOutAttrib4f;
00680 typedef ShAttrib<4, SH_TEMP, float, SH_ATTRIB> ShAttrib4f;
00681 typedef ShAttrib<4, SH_CONST, float, SH_ATTRIB> ShConstAttrib4f;
00682
00683
00684 typedef ShAttrib<1, SH_INPUT, char, SH_ATTRIB> ShInputAttrib1b;
00685 typedef ShAttrib<1, SH_OUTPUT, char, SH_ATTRIB> ShOutputAttrib1b;
00686 typedef ShAttrib<1, SH_INOUT, char, SH_ATTRIB> ShInOutAttrib1b;
00687 typedef ShAttrib<1, SH_TEMP, char, SH_ATTRIB> ShAttrib1b;
00688 typedef ShAttrib<1, SH_CONST, char, SH_ATTRIB> ShConstAttrib1b;
00689 typedef ShAttrib<2, SH_INPUT, char, SH_ATTRIB> ShInputAttrib2b;
00690 typedef ShAttrib<2, SH_OUTPUT, char, SH_ATTRIB> ShOutputAttrib2b;
00691 typedef ShAttrib<2, SH_INOUT, char, SH_ATTRIB> ShInOutAttrib2b;
00692 typedef ShAttrib<2, SH_TEMP, char, SH_ATTRIB> ShAttrib2b;
00693 typedef ShAttrib<2, SH_CONST, char, SH_ATTRIB> ShConstAttrib2b;
00694 typedef ShAttrib<3, SH_INPUT, char, SH_ATTRIB> ShInputAttrib3b;
00695 typedef ShAttrib<3, SH_OUTPUT, char, SH_ATTRIB> ShOutputAttrib3b;
00696 typedef ShAttrib<3, SH_INOUT, char, SH_ATTRIB> ShInOutAttrib3b;
00697 typedef ShAttrib<3, SH_TEMP, char, SH_ATTRIB> ShAttrib3b;
00698 typedef ShAttrib<3, SH_CONST, char, SH_ATTRIB> ShConstAttrib3b;
00699 typedef ShAttrib<4, SH_INPUT, char, SH_ATTRIB> ShInputAttrib4b;
00700 typedef ShAttrib<4, SH_OUTPUT, char, SH_ATTRIB> ShOutputAttrib4b;
00701 typedef ShAttrib<4, SH_INOUT, char, SH_ATTRIB> ShInOutAttrib4b;
00702 typedef ShAttrib<4, SH_TEMP, char, SH_ATTRIB> ShAttrib4b;
00703 typedef ShAttrib<4, SH_CONST, char, SH_ATTRIB> ShConstAttrib4b;
00704
00705
00706 typedef ShAttrib<1, SH_INPUT, unsigned short, SH_ATTRIB> ShInputAttrib1us;
00707 typedef ShAttrib<1, SH_OUTPUT, unsigned short, SH_ATTRIB> ShOutputAttrib1us;
00708 typedef ShAttrib<1, SH_INOUT, unsigned short, SH_ATTRIB> ShInOutAttrib1us;
00709 typedef ShAttrib<1, SH_TEMP, unsigned short, SH_ATTRIB> ShAttrib1us;
00710 typedef ShAttrib<1, SH_CONST, unsigned short, SH_ATTRIB> ShConstAttrib1us;
00711 typedef ShAttrib<2, SH_INPUT, unsigned short, SH_ATTRIB> ShInputAttrib2us;
00712 typedef ShAttrib<2, SH_OUTPUT, unsigned short, SH_ATTRIB> ShOutputAttrib2us;
00713 typedef ShAttrib<2, SH_INOUT, unsigned short, SH_ATTRIB> ShInOutAttrib2us;
00714 typedef ShAttrib<2, SH_TEMP, unsigned short, SH_ATTRIB> ShAttrib2us;
00715 typedef ShAttrib<2, SH_CONST, unsigned short, SH_ATTRIB> ShConstAttrib2us;
00716 typedef ShAttrib<3, SH_INPUT, unsigned short, SH_ATTRIB> ShInputAttrib3us;
00717 typedef ShAttrib<3, SH_OUTPUT, unsigned short, SH_ATTRIB> ShOutputAttrib3us;
00718 typedef ShAttrib<3, SH_INOUT, unsigned short, SH_ATTRIB> ShInOutAttrib3us;
00719 typedef ShAttrib<3, SH_TEMP, unsigned short, SH_ATTRIB> ShAttrib3us;
00720 typedef ShAttrib<3, SH_CONST, unsigned short, SH_ATTRIB> ShConstAttrib3us;
00721 typedef ShAttrib<4, SH_INPUT, unsigned short, SH_ATTRIB> ShInputAttrib4us;
00722 typedef ShAttrib<4, SH_OUTPUT, unsigned short, SH_ATTRIB> ShOutputAttrib4us;
00723 typedef ShAttrib<4, SH_INOUT, unsigned short, SH_ATTRIB> ShInOutAttrib4us;
00724 typedef ShAttrib<4, SH_TEMP, unsigned short, SH_ATTRIB> ShAttrib4us;
00725 typedef ShAttrib<4, SH_CONST, unsigned short, SH_ATTRIB> ShConstAttrib4us;
00726
00727
00728 typedef ShAttrib<1, SH_INPUT, ShFracUByte, SH_ATTRIB> ShInputAttrib1fub;
00729 typedef ShAttrib<1, SH_OUTPUT, ShFracUByte, SH_ATTRIB> ShOutputAttrib1fub;
00730 typedef ShAttrib<1, SH_INOUT, ShFracUByte, SH_ATTRIB> ShInOutAttrib1fub;
00731 typedef ShAttrib<1, SH_TEMP, ShFracUByte, SH_ATTRIB> ShAttrib1fub;
00732 typedef ShAttrib<1, SH_CONST, ShFracUByte, SH_ATTRIB> ShConstAttrib1fub;
00733 typedef ShAttrib<2, SH_INPUT, ShFracUByte, SH_ATTRIB> ShInputAttrib2fub;
00734 typedef ShAttrib<2, SH_OUTPUT, ShFracUByte, SH_ATTRIB> ShOutputAttrib2fub;
00735 typedef ShAttrib<2, SH_INOUT, ShFracUByte, SH_ATTRIB> ShInOutAttrib2fub;
00736 typedef ShAttrib<2, SH_TEMP, ShFracUByte, SH_ATTRIB> ShAttrib2fub;
00737 typedef ShAttrib<2, SH_CONST, ShFracUByte, SH_ATTRIB> ShConstAttrib2fub;
00738 typedef ShAttrib<3, SH_INPUT, ShFracUByte, SH_ATTRIB> ShInputAttrib3fub;
00739 typedef ShAttrib<3, SH_OUTPUT, ShFracUByte, SH_ATTRIB> ShOutputAttrib3fub;
00740 typedef ShAttrib<3, SH_INOUT, ShFracUByte, SH_ATTRIB> ShInOutAttrib3fub;
00741 typedef ShAttrib<3, SH_TEMP, ShFracUByte, SH_ATTRIB> ShAttrib3fub;
00742 typedef ShAttrib<3, SH_CONST, ShFracUByte, SH_ATTRIB> ShConstAttrib3fub;
00743 typedef ShAttrib<4, SH_INPUT, ShFracUByte, SH_ATTRIB> ShInputAttrib4fub;
00744 typedef ShAttrib<4, SH_OUTPUT, ShFracUByte, SH_ATTRIB> ShOutputAttrib4fub;
00745 typedef ShAttrib<4, SH_INOUT, ShFracUByte, SH_ATTRIB> ShInOutAttrib4fub;
00746 typedef ShAttrib<4, SH_TEMP, ShFracUByte, SH_ATTRIB> ShAttrib4fub;
00747 typedef ShAttrib<4, SH_CONST, ShFracUByte, SH_ATTRIB> ShConstAttrib4fub;
00748
00749
00750 typedef ShAttrib<1, SH_INPUT, ShHalf, SH_ATTRIB> ShInputAttrib1h;
00751 typedef ShAttrib<1, SH_OUTPUT, ShHalf, SH_ATTRIB> ShOutputAttrib1h;
00752 typedef ShAttrib<1, SH_INOUT, ShHalf, SH_ATTRIB> ShInOutAttrib1h;
00753 typedef ShAttrib<1, SH_TEMP, ShHalf, SH_ATTRIB> ShAttrib1h;
00754 typedef ShAttrib<1, SH_CONST, ShHalf, SH_ATTRIB> ShConstAttrib1h;
00755 typedef ShAttrib<2, SH_INPUT, ShHalf, SH_ATTRIB> ShInputAttrib2h;
00756 typedef ShAttrib<2, SH_OUTPUT, ShHalf, SH_ATTRIB> ShOutputAttrib2h;
00757 typedef ShAttrib<2, SH_INOUT, ShHalf, SH_ATTRIB> ShInOutAttrib2h;
00758 typedef ShAttrib<2, SH_TEMP, ShHalf, SH_ATTRIB> ShAttrib2h;
00759 typedef ShAttrib<2, SH_CONST, ShHalf, SH_ATTRIB> ShConstAttrib2h;
00760 typedef ShAttrib<3, SH_INPUT, ShHalf, SH_ATTRIB> ShInputAttrib3h;
00761 typedef ShAttrib<3, SH_OUTPUT, ShHalf, SH_ATTRIB> ShOutputAttrib3h;
00762 typedef ShAttrib<3, SH_INOUT, ShHalf, SH_ATTRIB> ShInOutAttrib3h;
00763 typedef ShAttrib<3, SH_TEMP, ShHalf, SH_ATTRIB> ShAttrib3h;
00764 typedef ShAttrib<3, SH_CONST, ShHalf, SH_ATTRIB> ShConstAttrib3h;
00765 typedef ShAttrib<4, SH_INPUT, ShHalf, SH_ATTRIB> ShInputAttrib4h;
00766 typedef ShAttrib<4, SH_OUTPUT, ShHalf, SH_ATTRIB> ShOutputAttrib4h;
00767 typedef ShAttrib<4, SH_INOUT, ShHalf, SH_ATTRIB> ShInOutAttrib4h;
00768 typedef ShAttrib<4, SH_TEMP, ShHalf, SH_ATTRIB> ShAttrib4h;
00769 typedef ShAttrib<4, SH_CONST, ShHalf, SH_ATTRIB> ShConstAttrib4h;
00770
00771
00772 typedef ShAttrib<1, SH_INPUT, ShFracShort, SH_ATTRIB> ShInputAttrib1fs;
00773 typedef ShAttrib<1, SH_OUTPUT, ShFracShort, SH_ATTRIB> ShOutputAttrib1fs;
00774 typedef ShAttrib<1, SH_INOUT, ShFracShort, SH_ATTRIB> ShInOutAttrib1fs;
00775 typedef ShAttrib<1, SH_TEMP, ShFracShort, SH_ATTRIB> ShAttrib1fs;
00776 typedef ShAttrib<1, SH_CONST, ShFracShort, SH_ATTRIB> ShConstAttrib1fs;
00777 typedef ShAttrib<2, SH_INPUT, ShFracShort, SH_ATTRIB> ShInputAttrib2fs;
00778 typedef ShAttrib<2, SH_OUTPUT, ShFracShort, SH_ATTRIB> ShOutputAttrib2fs;
00779 typedef ShAttrib<2, SH_INOUT, ShFracShort, SH_ATTRIB> ShInOutAttrib2fs;
00780 typedef ShAttrib<2, SH_TEMP, ShFracShort, SH_ATTRIB> ShAttrib2fs;
00781 typedef ShAttrib<2, SH_CONST, ShFracShort, SH_ATTRIB> ShConstAttrib2fs;
00782 typedef ShAttrib<3, SH_INPUT, ShFracShort, SH_ATTRIB> ShInputAttrib3fs;
00783 typedef ShAttrib<3, SH_OUTPUT, ShFracShort, SH_ATTRIB> ShOutputAttrib3fs;
00784 typedef ShAttrib<3, SH_INOUT, ShFracShort, SH_ATTRIB> ShInOutAttrib3fs;
00785 typedef ShAttrib<3, SH_TEMP, ShFracShort, SH_ATTRIB> ShAttrib3fs;
00786 typedef ShAttrib<3, SH_CONST, ShFracShort, SH_ATTRIB> ShConstAttrib3fs;
00787 typedef ShAttrib<4, SH_INPUT, ShFracShort, SH_ATTRIB> ShInputAttrib4fs;
00788 typedef ShAttrib<4, SH_OUTPUT, ShFracShort, SH_ATTRIB> ShOutputAttrib4fs;
00789 typedef ShAttrib<4, SH_INOUT, ShFracShort, SH_ATTRIB> ShInOutAttrib4fs;
00790 typedef ShAttrib<4, SH_TEMP, ShFracShort, SH_ATTRIB> ShAttrib4fs;
00791 typedef ShAttrib<4, SH_CONST, ShFracShort, SH_ATTRIB> ShConstAttrib4fs;
00792
00793
00794 typedef ShAttrib<1, SH_INPUT, ShFracInt, SH_ATTRIB> ShInputAttrib1fi;
00795 typedef ShAttrib<1, SH_OUTPUT, ShFracInt, SH_ATTRIB> ShOutputAttrib1fi;
00796 typedef ShAttrib<1, SH_INOUT, ShFracInt, SH_ATTRIB> ShInOutAttrib1fi;
00797 typedef ShAttrib<1, SH_TEMP, ShFracInt, SH_ATTRIB> ShAttrib1fi;
00798 typedef ShAttrib<1, SH_CONST, ShFracInt, SH_ATTRIB> ShConstAttrib1fi;
00799 typedef ShAttrib<2, SH_INPUT, ShFracInt, SH_ATTRIB> ShInputAttrib2fi;
00800 typedef ShAttrib<2, SH_OUTPUT, ShFracInt, SH_ATTRIB> ShOutputAttrib2fi;
00801 typedef ShAttrib<2, SH_INOUT, ShFracInt, SH_ATTRIB> ShInOutAttrib2fi;
00802 typedef ShAttrib<2, SH_TEMP, ShFracInt, SH_ATTRIB> ShAttrib2fi;
00803 typedef ShAttrib<2, SH_CONST, ShFracInt, SH_ATTRIB> ShConstAttrib2fi;
00804 typedef ShAttrib<3, SH_INPUT, ShFracInt, SH_ATTRIB> ShInputAttrib3fi;
00805 typedef ShAttrib<3, SH_OUTPUT, ShFracInt, SH_ATTRIB> ShOutputAttrib3fi;
00806 typedef ShAttrib<3, SH_INOUT, ShFracInt, SH_ATTRIB> ShInOutAttrib3fi;
00807 typedef ShAttrib<3, SH_TEMP, ShFracInt, SH_ATTRIB> ShAttrib3fi;
00808 typedef ShAttrib<3, SH_CONST, ShFracInt, SH_ATTRIB> ShConstAttrib3fi;
00809 typedef ShAttrib<4, SH_INPUT, ShFracInt, SH_ATTRIB> ShInputAttrib4fi;
00810 typedef ShAttrib<4, SH_OUTPUT, ShFracInt, SH_ATTRIB> ShOutputAttrib4fi;
00811 typedef ShAttrib<4, SH_INOUT, ShFracInt, SH_ATTRIB> ShInOutAttrib4fi;
00812 typedef ShAttrib<4, SH_TEMP, ShFracInt, SH_ATTRIB> ShAttrib4fi;
00813 typedef ShAttrib<4, SH_CONST, ShFracInt, SH_ATTRIB> ShConstAttrib4fi;
00814
00815
00816 typedef ShAttrib<1, SH_INPUT, unsigned int, SH_ATTRIB> ShInputAttrib1ui;
00817 typedef ShAttrib<1, SH_OUTPUT, unsigned int, SH_ATTRIB> ShOutputAttrib1ui;
00818 typedef ShAttrib<1, SH_INOUT, unsigned int, SH_ATTRIB> ShInOutAttrib1ui;
00819 typedef ShAttrib<1, SH_TEMP, unsigned int, SH_ATTRIB> ShAttrib1ui;
00820 typedef ShAttrib<1, SH_CONST, unsigned int, SH_ATTRIB> ShConstAttrib1ui;
00821 typedef ShAttrib<2, SH_INPUT, unsigned int, SH_ATTRIB> ShInputAttrib2ui;
00822 typedef ShAttrib<2, SH_OUTPUT, unsigned int, SH_ATTRIB> ShOutputAttrib2ui;
00823 typedef ShAttrib<2, SH_INOUT, unsigned int, SH_ATTRIB> ShInOutAttrib2ui;
00824 typedef ShAttrib<2, SH_TEMP, unsigned int, SH_ATTRIB> ShAttrib2ui;
00825 typedef ShAttrib<2, SH_CONST, unsigned int, SH_ATTRIB> ShConstAttrib2ui;
00826 typedef ShAttrib<3, SH_INPUT, unsigned int, SH_ATTRIB> ShInputAttrib3ui;
00827 typedef ShAttrib<3, SH_OUTPUT, unsigned int, SH_ATTRIB> ShOutputAttrib3ui;
00828 typedef ShAttrib<3, SH_INOUT, unsigned int, SH_ATTRIB> ShInOutAttrib3ui;
00829 typedef ShAttrib<3, SH_TEMP, unsigned int, SH_ATTRIB> ShAttrib3ui;
00830 typedef ShAttrib<3, SH_CONST, unsigned int, SH_ATTRIB> ShConstAttrib3ui;
00831 typedef ShAttrib<4, SH_INPUT, unsigned int, SH_ATTRIB> ShInputAttrib4ui;
00832 typedef ShAttrib<4, SH_OUTPUT, unsigned int, SH_ATTRIB> ShOutputAttrib4ui;
00833 typedef ShAttrib<4, SH_INOUT, unsigned int, SH_ATTRIB> ShInOutAttrib4ui;
00834 typedef ShAttrib<4, SH_TEMP, unsigned int, SH_ATTRIB> ShAttrib4ui;
00835 typedef ShAttrib<4, SH_CONST, unsigned int, SH_ATTRIB> ShConstAttrib4ui;
00836
00837
00838
00839 }
00840 #include "ShGenericImpl.hpp"
00841 #include "ShAttribImpl.hpp"
00842
00843 #endif // SH_SHATTRIB_HPP