Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_CSPLUGINCOMMON_SHADER_WEAVERTYPES_H__
00020 #define __CS_CSPLUGINCOMMON_SHADER_WEAVERTYPES_H__
00021
00022 #include "csutil/csstring.h"
00023
00030 namespace CS
00031 {
00032 namespace PluginCommon
00033 {
00034 namespace ShaderWeaver
00035 {
00036 struct TypeInfo
00037 {
00039 enum
00040 {
00042 Vector,
00044 VectorB,
00046 VectorI,
00048 Sampler
00049 } baseType;
00051 bool samplerIsCube;
00056 int dimensions;
00058 enum
00059 {
00061 NoSemantics,
00063 Color,
00065 Texcoord,
00067 Position,
00069 Direction,
00071 Depth,
00076 TranslateScale,
00078 Scale
00079 } semantics;
00081 enum
00082 {
00084 NoSpace,
00086 Object,
00088 World,
00090 Camera,
00092 Screen,
00094 Tangent
00095 } space;
00097 bool unit;
00098
00099 bool operator==(const TypeInfo& other) const
00100 {
00101 return (baseType == other.baseType)
00102 && (samplerIsCube == other.samplerIsCube)
00103 && (dimensions == other.dimensions)
00104 && (semantics == other.semantics)
00105 && (space == other.space)
00106 && (unit == other.unit);
00107 }
00108 };
00109
00110 CS_CRYSTALSPACE_EXPORT const TypeInfo* QueryTypeInfo (
00111 const char* type);
00112 CS_CRYSTALSPACE_EXPORT const char* QueryType (
00113 const TypeInfo& typeInfo);
00114
00115 class CS_CRYSTALSPACE_EXPORT TypeInfoIterator
00116 {
00117 size_t n;
00118 public:
00119 TypeInfoIterator ();
00120
00121 bool HasNext ();
00122 const TypeInfo* Next (csString& type);
00123 };
00124 }
00125 }
00126 }
00127
00130 #endif // __CS_CSPLUGINCOMMON_SHADER_WEAVERTYPES_H__
00131