00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __VOP_Types__
00021 #define __VOP_Types__
00022
00023 #include "VOP_API.h"
00024 #include <VEX/VEX_VexTypes.h>
00025 #include <VEX/VEX_RslTypes.h>
00026
00027 template <typename T> class UT_RefArray;
00028
00029
00030 typedef enum {
00031
00032 VOP_TYPE_UNDEF = VEX_TYPE_UNDEF,
00033 VOP_TYPE_VECTOR4 = VEX_TYPE_POINT,
00034 VOP_TYPE_VECTOR = VEX_TYPE_VECTOR,
00035 VOP_TYPE_FLOAT = VEX_TYPE_FLOAT,
00036 VOP_TYPE_INTEGER = VEX_TYPE_INTEGER,
00037 VOP_TYPE_STRING = VEX_TYPE_STRING,
00038 VOP_TYPE_MATRIX3 = VEX_TYPE_MATRIX3,
00039 VOP_TYPE_MATRIX4 = VEX_TYPE_MATRIX4,
00040 VOP_TYPE_BSDF = VEX_TYPE_BSDF,
00041
00042
00043 VOP_TYPE_POINT,
00044 VOP_TYPE_NORMAL,
00045 VOP_TYPE_COLOR,
00046
00047 VOP_TYPE_ERROR,
00048
00049
00050 VOP_SHADER_START,
00051
00052 VOP_SURFACE_SHADER,
00053 VOP_SURFACE_SHADOW_SHADER,
00054 VOP_DISPLACEMENT_SHADER,
00055 VOP_GEOMETRY_SHADER,
00056 VOP_INTERIOR_SHADER,
00057 VOP_LIGHT_SHADER,
00058 VOP_LIGHT_SHADOW_SHADER,
00059 VOP_ATMOSPHERE_SHADER,
00060 VOP_LENS_SHADER,
00061 VOP_OUTPUT_SHADER,
00062 VOP_BACKGROUND_SHADER,
00063 VOP_PHOTON_SHADER,
00064 VOP_EMITTER_SHADER,
00065 VOP_PHOTONVOLUME_SHADER,
00066 VOP_ENVIRONMENT_SHADER,
00067 VOP_CONTOUR_SHADER,
00068 VOP_CONTOUR_STORE_SHADER,
00069 VOP_CONTOUR_CONTRAST_SHADER,
00070 VOP_TEXTURE_SHADER,
00071 VOP_IMAGE3D_SHADER,
00072 VOP_POP_SHADER,
00073 VOP_SOP_SHADER,
00074 VOP_CHOP_SHADER,
00075 VOP_COP2_SHADER,
00076 VOP_CVEX_SHADER,
00077 VOP_COSHADER_SHADER,
00078 VOP_PROPERTIES_SHADER,
00079 VOP_MUTABLE_SHADER,
00080 VOP_MATERIAL_SHADER,
00081 VOP_VOP_MATERIAL_SHADER,
00082
00083 VOP_SHADER_END,
00084
00085 VOP_MAX_TYPES,
00086
00087 VOP_TYPE_UNIFORM_MODIFIER = 0x1000,
00088 VOP_TYPE_UFLOAT = (VOP_TYPE_UNIFORM_MODIFIER | VOP_TYPE_FLOAT),
00089 VOP_TYPE_UVECTOR = (VOP_TYPE_UNIFORM_MODIFIER | VOP_TYPE_VECTOR),
00090 VOP_TYPE_UPOINT = (VOP_TYPE_UNIFORM_MODIFIER | VOP_TYPE_POINT),
00091 VOP_TYPE_UNORMAL = (VOP_TYPE_UNIFORM_MODIFIER | VOP_TYPE_NORMAL),
00092 VOP_TYPE_UCOLOR = (VOP_TYPE_UNIFORM_MODIFIER | VOP_TYPE_COLOR),
00093 VOP_TYPE_UMATRIX4 = (VOP_TYPE_UNIFORM_MODIFIER | VOP_TYPE_MATRIX4),
00094 } VOP_Type;
00095
00096 #define VOP_BASE_TYPE(type) ((VOP_Type)(type&(VOP_TYPE_UNIFORM_MODIFIER-1)))
00097 #define VOP_GET_MODIFIER(type) ((VOP_Type)(type&VOP_TYPE_UNIFORM_MODIFIER))
00098 #define VOP_INVALID_TYPE(type) ((type)==VOP_TYPE_UNDEF||(type)==VOP_TYPE_ERROR)
00099 #define VOP_VALID_TYPE(type) (!VOP_INVALID_TYPE(type))
00100
00101
00102
00103 VOP_API VEX_ContextType VOPconvertToVexContextType( VOP_Type shader_type );
00104
00105
00106 VOP_API RSL_ContextType VOPconvertToRslContextType( VOP_Type shader_type );
00107
00108
00109 VOP_API VOP_Type VOPconvertToShaderType( VEX_ContextType type );
00110
00111
00112 VOP_API VOP_Type VOPconvertToShaderType( RSL_ContextType type);
00113
00114
00115
00116
00117 typedef int VOP_ContextType;
00118 #define VOP_CONTEXT_TYPE_INVALID 0
00119
00120
00121 typedef UT_RefArray<VOP_ContextType> VOP_ContextTypeList;
00122
00123
00124
00125 typedef enum {
00126 VOP_LANGUAGE_INVALID,
00127 VOP_LANGUAGE_VEX,
00128 VOP_LANGUAGE_RSL
00129 } VOP_LanguageType;
00130
00131
00132
00133 VOP_API VOP_ContextType VOPconvertToContextType( VOP_Type shader_type,
00134 VOP_LanguageType language);
00135
00136 VOP_API VOP_Type VOPconvertToShaderType( VOP_ContextType type,
00137 VOP_LanguageType language);
00138
00139
00140
00141 VOP_API VOP_ContextType VOPconvertToContextType( const char * context_name,
00142 VOP_LanguageType language);
00143
00144
00145
00146 VOP_API VOP_ContextType VOPconvertToContextType( VEX_ContextType type );
00147
00148
00149 VOP_API VOP_ContextType VOPconvertToContextType( RSL_ContextType type );
00150
00151
00152 VOP_API VEX_ContextType VOPconvertToVexContextType( VOP_ContextType type );
00153
00154
00155 VOP_API RSL_ContextType VOPconvertToRslContextType( VOP_ContextType type );
00156
00157 VOP_API bool isValidPassThroughType (VOP_Type type);
00158
00159 #endif