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
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #include <stdlib.h>
00044 #include <stdio.h>
00045
00046 #include <OSGConfig.h>
00047
00048 #include "OSGShaderParameterChunk.h"
00049
00050 #include <OSGShaderParameter.h>
00051 #include <OSGShaderParameterBool.h>
00052 #include <OSGShaderParameterInt.h>
00053 #include <OSGShaderParameterReal.h>
00054 #include <OSGShaderParameterVec2f.h>
00055 #include <OSGShaderParameterVec3f.h>
00056 #include <OSGShaderParameterVec4f.h>
00057 #include <OSGShaderParameterMatrix.h>
00058
00059 #include <OSGShaderParameterMInt.h>
00060 #include <OSGShaderParameterMReal.h>
00061 #include <OSGShaderParameterMVec2f.h>
00062 #include <OSGShaderParameterMVec3f.h>
00063 #include <OSGShaderParameterMVec4f.h>
00064 #include <OSGShaderParameterMMatrix.h>
00065
00066
00067 OSG_USING_NAMESPACE
00068
00069
00070
00071
00072
00077
00078
00079
00080
00081
00082
00083
00084
00085 void ShaderParameterChunk::initMethod (void)
00086 {
00087 }
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100 ShaderParameterChunk::ShaderParameterChunk(void) :
00101 Inherited(),
00102 _parameter_access(NULL)
00103 {
00104 }
00105
00106 ShaderParameterChunk::ShaderParameterChunk(const ShaderParameterChunk &source) :
00107 Inherited(source),
00108 _parameter_access(source._parameter_access)
00109 {
00110 }
00111
00112 ShaderParameterChunk::~ShaderParameterChunk(void)
00113 {
00114 }
00115
00116 void ShaderParameterChunk::onCreate(const ShaderParameterChunk *source)
00117 {
00118 Inherited::onCreate(source);
00119
00120
00121 if(GlobalSystemState == Startup)
00122 return;
00123
00124 _parameter_access = new ShaderParameterAccess(getParameters());
00125 }
00126
00127 void ShaderParameterChunk::onDestroy(void)
00128 {
00129 Inherited::onDestroy();
00130
00131 if(_parameter_access != NULL)
00132 delete _parameter_access;
00133 }
00134
00135
00136
00137 void ShaderParameterChunk::changed(BitVector whichField, UInt32 origin)
00138 {
00139 Inherited::changed(whichField, origin);
00140 }
00141
00142 void ShaderParameterChunk::dump( UInt32 ,
00143 const BitVector ) const
00144 {
00145 SLOG << "Dump ShaderParameterChunk NI" << std::endl;
00146 }
00147
00148
00149
00150
00151
00152
00153 bool ShaderParameterChunk::setUniformParameter(const char *name, bool value)
00154 {
00155 return _parameter_access->setParameter<ShaderParameterBool>(name, value);
00156 }
00157
00158 bool ShaderParameterChunk::setUniformParameter(const char *name, Int32 value)
00159 {
00160 return _parameter_access->setParameter<ShaderParameterInt>(name, value);
00161 }
00162
00163 bool ShaderParameterChunk::setUniformParameter(const char *name, Real32 value)
00164 {
00165 return _parameter_access->setParameter<ShaderParameterReal>(name, value);
00166 }
00167
00168 bool ShaderParameterChunk::setUniformParameter(const char *name, const Vec2f &value)
00169 {
00170 return _parameter_access->setParameter<ShaderParameterVec2f>(name, value);
00171 }
00172
00173 bool ShaderParameterChunk::setUniformParameter(const char *name, const Vec3f &value)
00174 {
00175 return _parameter_access->setParameter<ShaderParameterVec3f>(name, value);
00176 }
00177
00178 bool ShaderParameterChunk::setUniformParameter(const char *name, const Vec4f &value)
00179 {
00180 return _parameter_access->setParameter<ShaderParameterVec4f>(name, value);
00181 }
00182
00183 bool ShaderParameterChunk::setUniformParameter(const char *name, const Matrix &value)
00184 {
00185 return _parameter_access->setParameter<ShaderParameterMatrix>(name, value);
00186 }
00187
00188
00189
00190 bool ShaderParameterChunk::setUniformParameter(const char *name, const MFInt32 &value)
00191 {
00192 return _parameter_access->setMParameter<ShaderParameterMInt>(name, value);
00193 }
00194
00195 bool ShaderParameterChunk::setUniformParameter(const char *name, const MFReal32 &value)
00196 {
00197 return _parameter_access->setMParameter<ShaderParameterMReal>(name, value);
00198 }
00199
00200 bool ShaderParameterChunk::setUniformParameter(const char *name, const MFVec2f &value)
00201 {
00202 return _parameter_access->setMParameter<ShaderParameterMVec2f>(name, value);
00203 }
00204
00205 bool ShaderParameterChunk::setUniformParameter(const char *name, const MFVec3f &value)
00206 {
00207 return _parameter_access->setMParameter<ShaderParameterMVec3f>(name, value);
00208 }
00209
00210 bool ShaderParameterChunk::setUniformParameter(const char *name, const MFVec4f &value)
00211 {
00212 return _parameter_access->setMParameter<ShaderParameterMVec4f>(name, value);
00213 }
00214
00215 bool ShaderParameterChunk::setUniformParameter(const char *name, const MFMatrix &value)
00216 {
00217 return _parameter_access->setMParameter<ShaderParameterMMatrix>(name, value);
00218 }
00219
00220
00221
00222 bool ShaderParameterChunk::getUniformParameter(const char *name, bool &value)
00223 {
00224 return _parameter_access->getParameter<ShaderParameterBool>(name, value);
00225 }
00226
00227 bool ShaderParameterChunk::getUniformParameter(const char *name, Int32 &value)
00228 {
00229 return _parameter_access->getParameter<ShaderParameterInt>(name, value);
00230 }
00231
00232 bool ShaderParameterChunk::getUniformParameter(const char *name, Real32 &value)
00233 {
00234 return _parameter_access->getParameter<ShaderParameterReal>(name, value);
00235 }
00236
00237 bool ShaderParameterChunk::getUniformParameter(const char *name, Vec2f &value)
00238 {
00239 return _parameter_access->getParameter<ShaderParameterVec2f>(name, value);
00240 }
00241
00242 bool ShaderParameterChunk::getUniformParameter(const char *name, Vec3f &value)
00243 {
00244 return _parameter_access->getParameter<ShaderParameterVec3f>(name, value);
00245 }
00246
00247 bool ShaderParameterChunk::getUniformParameter(const char *name, Vec4f &value)
00248 {
00249 return _parameter_access->getParameter<ShaderParameterVec4f>(name, value);
00250 }
00251
00252 bool ShaderParameterChunk::getUniformParameter(const char *name, Matrix &value)
00253 {
00254 return _parameter_access->getParameter<ShaderParameterMatrix>(name, value);
00255 }
00256
00257 bool ShaderParameterChunk::subUniformParameter(const char *name)
00258 {
00259 return _parameter_access->subParameter(name);
00260 }
00261
00262
00263
00264 bool ShaderParameterChunk::getUniformParameter(const char *name, MFInt32 &value)
00265 {
00266 return _parameter_access->getParameter<ShaderParameterMInt>(name, value);
00267 }
00268
00269 bool ShaderParameterChunk::getUniformParameter(const char *name, MFReal32 &value)
00270 {
00271 return _parameter_access->getParameter<ShaderParameterMReal>(name, value);
00272 }
00273
00274 bool ShaderParameterChunk::getUniformParameter(const char *name, MFVec2f &value)
00275 {
00276 return _parameter_access->getParameter<ShaderParameterMVec2f>(name, value);
00277 }
00278
00279 bool ShaderParameterChunk::getUniformParameter(const char *name, MFVec3f &value)
00280 {
00281 return _parameter_access->getParameter<ShaderParameterMVec3f>(name, value);
00282 }
00283
00284 bool ShaderParameterChunk::getUniformParameter(const char *name, MFVec4f &value)
00285 {
00286 return _parameter_access->getParameter<ShaderParameterMVec4f>(name, value);
00287 }
00288
00289 bool ShaderParameterChunk::getUniformParameter(const char *name, MFMatrix &value)
00290 {
00291 return _parameter_access->getParameter<ShaderParameterMMatrix>(name, value);
00292 }
00293
00294
00295
00296
00297 #ifdef OSG_SGI_CC
00298 #pragma set woff 1174
00299 #endif
00300
00301 #ifdef OSG_LINUX_ICC
00302 #pragma warning( disable : 177 )
00303 #endif
00304
00305 namespace
00306 {
00307 static Char8 cvsid_cpp [] = "@(#)$Id: OSGShaderParameterChunk.cpp,v 1.2 2007/03/09 18:11:48 a-m-z Exp $";
00308 static Char8 cvsid_hpp [] = OSGSHADERPARAMETERCHUNKBASE_HEADER_CVSID;
00309 static Char8 cvsid_inl [] = OSGSHADERPARAMETERCHUNKBASE_INLINE_CVSID;
00310
00311 static Char8 cvsid_fields_hpp[] = OSGSHADERPARAMETERCHUNKFIELDS_HEADER_CVSID;
00312 }
00313
00314 #ifdef __sgi
00315 #pragma reset woff 1174
00316 #endif