#include <OSGVertexProgramChunk.h>
Inheritance diagram for osg::VertexProgramChunk:

Sync | |
| *void | executeSyncImpl (VertexProgramChunkBase *pOther, const BitVector &whichField) |
| virtual void | executeSync (FieldContainer &other, const BitVector &whichField) |
Public Types | |
| typedef VertexProgramChunkPtr | Ptr |
| enum | { ProgramFieldId = Inherited::NextFieldId, ParamValuesFieldId = ProgramFieldId + 1, ParamNamesFieldId = ParamValuesFieldId + 1, GLIdFieldId = ParamNamesFieldId + 1, NextFieldId = GLIdFieldId + 1 } |
Public Member Functions | |
Sync | |
| *virtual void | changed (BitVector whichField, UInt32 origin) |
Output | |
| *virtual void | dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const |
FieldContainer Get | |
| *virtual FieldContainerType & | getType (void) |
| virtual const FieldContainerType & | getType (void) const |
| virtual UInt32 | getContainerSize (void) const |
Binary Access | |
| *virtual UInt32 | getBinSize (const BitVector &whichField) |
| virtual void | copyToBin (BinaryDataHandler &pMem, const BitVector &whichField) |
| virtual void | copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField) |
Copy | |
| *virtual FieldContainerPtr | shallowCopy (void) const |
Static Public Member Functions | |
Class Get | |
| *static FieldContainerType & | getClassType (void) |
| access the type of the class | |
| static UInt32 | getClassTypeId (void) |
| access the numerical type of the class | |
Construction | |
| *static VertexProgramChunkPtr | create (void) |
| create a new instance of the class | |
| static VertexProgramChunkPtr | createEmpty (void) |
| create an empty new instance of the class, do not copy the prototype | |
Static Public Attributes | |
| static const osg::BitVector | MTInfluenceMask |
| static const osg::BitVector | ProgramFieldMask |
| static const osg::BitVector | ParamValuesFieldMask |
| static const osg::BitVector | ParamNamesFieldMask |
| static const osg::BitVector | GLIdFieldMask |
| static const BitVector | InternalFieldMask = (1 << Attachment::InternalFieldId) |
| static const BitVector | ParentsFieldMask = (1 << Attachment::ParentsFieldId) |
| static const BitVector | NextFieldMask |
Protected Member Functions | |
Constructors | |
| * | VertexProgramChunk (void) |
| VertexProgramChunk (const VertexProgramChunk &source) | |
Destructors | |
| *virtual | ~VertexProgramChunk (void) |
Private Types | |
| typedef VertexProgramChunkBase | Inherited |
Private Member Functions | |
| void | operator= (const VertexProgramChunk &source) |
GL | |
| *void | handleGL (Window *win, UInt32 id) |
Static Private Member Functions | |
| static void | initMethod (void) |
Static Private Attributes | |
| static StateChunkClass | _class |
OpenGL Extension Handling | |
| *static UInt32 | _arbVertexProgram |
Friends | |
| class | FieldContainer |
| class | VertexProgramChunkBase |
Definition at line 55 of file OSGVertexProgramChunk.h.
|
|
Reimplemented from osg::VertexProgramChunkBase. Reimplemented in osg::FatBorderChunk, and osg::FatBorderChunkBase. Definition at line 59 of file OSGVertexProgramChunk.h. |
|
|
Reimplemented from osg::ProgramChunkBase. Reimplemented in osg::FatBorderChunkBase. Definition at line 89 of file OSGVertexProgramChunkBase.h. |
|
|
Reimplemented from osg::Attachment. Definition at line 95 of file OSGProgramChunkBase.h. 00096 { 00097 ProgramFieldId = Inherited::NextFieldId, 00098 ParamValuesFieldId = ProgramFieldId + 1, 00099 ParamNamesFieldId = ParamValuesFieldId + 1, 00100 GLIdFieldId = ParamNamesFieldId + 1, 00101 NextFieldId = GLIdFieldId + 1 00102 };
|
|
|
Definition at line 94 of file OSGVertexProgramChunk.cpp. References _arbVertexProgram, and osg::Window::registerExtension(). 00094 : 00095 Inherited() 00096 { 00097 _arbVertexProgram = Window::registerExtension("GL_ARB_vertex_program"); 00098 }
|
|
|
Definition at line 100 of file OSGVertexProgramChunk.cpp. 00100 : 00101 Inherited(source) 00102 { 00103 }
|
|
|
Definition at line 105 of file OSGVertexProgramChunk.cpp.
|
|
|
Reimplemented from osg::ProgramChunk. Definition at line 138 of file OSGVertexProgramChunk.cpp. References _class. 00139 { 00140 return &_class; 00141 }
|
|
|
Reimplemented from osg::ProgramChunk. Definition at line 46 of file OSGVertexProgramChunk.inl. References osg::StateChunkClass::getId(), and getStaticClass(). 00047 { 00048 return getStaticClass()->getId(); 00049 }
|
|
|
Reimplemented from osg::ProgramChunk. Definition at line 52 of file OSGVertexProgramChunk.inl. References _class. Referenced by getStaticClassId(). 00053 { 00054 return &VertexProgramChunk::_class; 00055 }
|
|
||||||||||||
|
Reimplemented from osg::ProgramChunk. Reimplemented in osg::FatBorderChunk. Definition at line 145 of file OSGVertexProgramChunk.cpp. References osg::ProgramChunk::changed(). Referenced by osg::FatBorderChunk::changed(). 00146 { 00147 Inherited::changed(whichField, origin); 00148 }
|
|
||||||||||||
|
Reimplemented from osg::ProgramChunk. Reimplemented in osg::FatBorderChunk. Definition at line 150 of file OSGVertexProgramChunk.cpp. References SLOG. 00152 { 00153 SLOG << "Dump VertexProgramChunk NI" << std::endl; 00154 }
|
|
|
|
Virtual helper function to let the derived chunks return the extension that they implement. Only if this extension is supproted on the current Window is the porgram called. Reimplemented from osg::ProgramChunk. Definition at line 166 of file OSGVertexProgramChunk.cpp. References _arbVertexProgram. 00167 { 00168 return _arbVertexProgram; 00169 }
|
|
|
Virtual helper function to let the derived chunks return the target constant that they implement. Reimplemented from osg::ProgramChunk. Definition at line 171 of file OSGVertexProgramChunk.cpp. References GL_VERTEX_PROGRAM_ARB. 00172 { 00173 return GL_VERTEX_PROGRAM_ARB; 00174 }
|
|
|
Virtual helper function to let the derived chunks return the name of the target constant that they implement, for debugging purposes. Reimplemented from osg::ProgramChunk. Definition at line 176 of file OSGVertexProgramChunk.cpp.
|
|
|
Reimplemented from osg::ProgramChunk. Reimplemented in osg::FatBorderChunk. Definition at line 79 of file OSGVertexProgramChunk.cpp.
|
|
||||||||||||
|
GL object handler create the program and destroy it Definition at line 161 of file OSGVertexProgramChunk.cpp. References _arbVertexProgram, GL_VERTEX_PROGRAM_ARB, and osg::ProgramChunk::handleGL(). Referenced by onCreate(). 00162 { 00163 Inherited::handleGL(win, idstatus, GL_VERTEX_PROGRAM_ARB, _arbVertexProgram); 00164 }
|
|
|
|
|
|
Reimplemented from osg::ProgramChunkBase. Reimplemented in osg::FatBorderChunkBase. Definition at line 58 of file OSGVertexProgramChunkBase.inl. References osg::VertexProgramChunkBase::_type. Referenced by osg::VertexProgramChunkBase::create(), and osg::RemoteAspect::RemoteAspect(). 00059 { 00060 return _type; 00061 }
|
|
|
Reimplemented from osg::ProgramChunkBase. Reimplemented in osg::FatBorderChunkBase. Definition at line 65 of file OSGVertexProgramChunkBase.inl. References osg::VertexProgramChunkBase::_type, and osg::TypeBase::getId(). 00066 { 00067 return _type.getId(); 00068 }
|
|
|
Reimplemented from osg::ProgramChunkBase. Reimplemented in osg::FatBorderChunkBase. Definition at line 86 of file OSGVertexProgramChunkBase.cpp. References osg::VertexProgramChunkBase::_type. 00087 { 00088 return _type; 00089 }
|
|
|
Reimplemented from osg::ProgramChunkBase. Reimplemented in osg::FatBorderChunkBase. Definition at line 91 of file OSGVertexProgramChunkBase.cpp. References osg::VertexProgramChunkBase::_type. 00092 { 00093 return _type; 00094 }
|
|
|
Reimplemented from osg::ProgramChunkBase. Reimplemented in osg::FatBorderChunkBase. Definition at line 106 of file OSGVertexProgramChunkBase.cpp. 00107 { 00108 return sizeof(VertexProgramChunk); 00109 }
|
|
|
Reimplemented from osg::ProgramChunkBase. Reimplemented in osg::FatBorderChunkBase. Definition at line 166 of file OSGVertexProgramChunkBase.cpp. References osg::ProgramChunkBase::getBinSize(). Referenced by osg::FatBorderChunkBase::getBinSize(). 00167 { 00168 UInt32 returnValue = Inherited::getBinSize(whichField); 00169 00170 00171 return returnValue; 00172 }
|
|
||||||||||||
|
Reimplemented from osg::ProgramChunkBase. Reimplemented in osg::FatBorderChunkBase. Definition at line 174 of file OSGVertexProgramChunkBase.cpp. References osg::ProgramChunkBase::copyToBin(). Referenced by osg::FatBorderChunkBase::copyToBin(). 00176 { 00177 Inherited::copyToBin(pMem, whichField); 00178 00179 00180 }
|
|
||||||||||||
|
Reimplemented from osg::ProgramChunkBase. Reimplemented in osg::FatBorderChunkBase. Definition at line 182 of file OSGVertexProgramChunkBase.cpp. References osg::ProgramChunkBase::copyFromBin(). Referenced by osg::FatBorderChunkBase::copyFromBin(). 00184 { 00185 Inherited::copyFromBin(pMem, whichField); 00186 00187 00188 }
|
|
|
Reimplemented from osg::Attachment. Reimplemented in osg::FatBorderChunkBase. Definition at line 72 of file OSGVertexProgramChunkBase.inl. References osg::AttachmentPtr::dcast(), osg::VertexProgramChunkBase::getClassType(), osg::FieldContainerType::getPrototype(), osg::NullFC, and osg::VertexProgramChunkBase::shallowCopy(). Referenced by osg::PhongMaterial::createChunkMaterial(), and osg::PhongMaterial::prepareLocalChunks(). 00073 { 00074 VertexProgramChunkPtr fc; 00075 00076 if(getClassType().getPrototype() != OSG::NullFC) 00077 { 00078 fc = VertexProgramChunkPtr::dcast( 00079 getClassType().getPrototype()-> shallowCopy()); 00080 } 00081 00082 return fc; 00083 }
|
|
|
Reimplemented from osg::Attachment. Reimplemented in osg::FatBorderChunkBase. Definition at line 87 of file OSGVertexProgramChunkBase.inl. References osg::FieldContainer::newPtr(). 00088 { 00089 VertexProgramChunkPtr returnValue; 00090 00091 newPtr(returnValue); 00092 00093 return returnValue; 00094 }
|
|
|
Reimplemented from osg::Attachment. Reimplemented in osg::FatBorderChunkBase. Definition at line 97 of file OSGVertexProgramChunkBase.cpp. References osg::FieldContainer::newPtr(). Referenced by osg::VertexProgramChunkBase::create(). 00098 { 00099 VertexProgramChunkPtr returnValue; 00100 00101 newPtr(returnValue, dynamic_cast<const VertexProgramChunk *>(this)); 00102 00103 return returnValue; 00104 }
|
|
||||||||||||
|
Definition at line 191 of file OSGVertexProgramChunkBase.cpp. References osg::ProgramChunkBase::executeSyncImpl(). Referenced by osg::VertexProgramChunkBase::executeSync(), and osg::FatBorderChunkBase::executeSyncImpl(). 00193 { 00194 00195 Inherited::executeSyncImpl(pOther, whichField); 00196 00197 00198 }
|
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
Definition at line 333 of file OSGFieldContainerImpl.inl. Referenced by osg::StateBase::executeSyncImpl(), osg::DVRShaderBase::executeSyncImpl(), osg::DVRClipGeometryBase::executeSyncImpl(), osg::AttachmentContainer::executeSyncImpl(), and osg::Attachment::executeSyncImpl().
|
|
||||||||||||
|
Reimplemented from osg::ProgramChunkBase. Reimplemented in osg::FatBorderChunkBase. Definition at line 113 of file OSGVertexProgramChunkBase.cpp. References osg::VertexProgramChunkBase::executeSyncImpl(). 00115 { 00116 this->executeSyncImpl((VertexProgramChunkBase *) &other, whichField); 00117 }
|
|
|
Read the program string from the given file Definition at line 183 of file OSGProgramChunk.cpp. References FWARNING. 00184 { 00185 std::ifstream s(file); 00186 00187 if(s.good()) 00188 { 00189 return read(s); 00190 } 00191 else 00192 { 00193 FWARNING(("ProgramChunk::read: couldn't open '%s' for reading!\n", 00194 file)); 00195 return false; 00196 } 00197 }
|
|
|
Read the program string from the given stream Definition at line 201 of file OSGProgramChunk.cpp. References BUFSIZE, FWARNING, and osg::ProgramChunkBase::getProgram(). 00202 { 00203 #define BUFSIZE 200 00204 00205 getProgram().erase(); 00206 char buf[BUFSIZE]; 00207 00208 if(!stream.good()) 00209 { 00210 FWARNING(("ProgramChunk::read: stream is not good!\n")); 00211 return false; 00212 00213 } 00214 00215 do 00216 { 00217 stream.read(buf, BUFSIZE); 00218 getProgram().append(buf, stream.gcount()); 00219 } 00220 while(!stream.eof()); 00221 00222 return true; 00223 }
|
|
||||||||||||
|
Add a named parameter Definition at line 227 of file OSGProgramChunk.cpp. References osg::ProgramChunkBase::getParamNames(), osg::MField< FieldTypeT, fieldNameSpace >::resize(), and osg::MField< FieldTypeT, fieldNameSpace >::size(). Referenced by osg::ProgramChunk::addParameter(). 00229 { 00230 if(index < 0) 00231 return true; 00232 00233 if(getParamNames().size() <= UInt16(index)) 00234 { 00235 getParamNames().resize(index + 1); 00236 } 00237 getParamNames()[index] = name; 00238 return false; 00239 }
|
|
||||||||||||||||
|
Concvenience function to add a new parameter and directly set its value. Definition at line 63 of file OSGProgramChunk.inl. References osg::ProgramChunk::addParameter(), and osg::ProgramChunk::setParameter(). 00066 { 00067 addParameter(name, index); 00068 return setParameter(index, value); 00069 }
|
|
|
Read the program string from the given file Definition at line 241 of file OSGProgramChunk.cpp. References osg::ProgramChunkBase::getParamValues(), and osg::MField< FieldTypeT, fieldNameSpace >::size(). Referenced by osg::ProgramChunk::getParameter(). 00242 { 00243 static const Vec4f bad(-1e10,-1e10,-1e10); 00244 00245 if(index < 0) 00246 return bad; 00247 00248 if(getParamValues().size() <= UInt16(index)) 00249 { 00250 return getParamValues()[index]; 00251 } 00252 00253 return bad; 00254 }
|
|
|
Read the program string from the given file Definition at line 72 of file OSGProgramChunk.inl. References osg::ProgramChunk::findParameter(), and osg::ProgramChunk::getParameter(). 00073 { 00074 return getParameter(findParameter(name)); 00075 }
|
|
|
Read the program string from the given file Definition at line 78 of file OSGProgramChunk.inl. References osg::ProgramChunk::findParameter(), and osg::ProgramChunk::getParameter(). 00079 { 00080 return getParameter(findParameter(name.c_str())); 00081 }
|
|
||||||||||||
|
Set parameter value, create it if not set yet. Definition at line 258 of file OSGProgramChunk.cpp. References osg::ProgramChunkBase::getParamValues(), osg::MField< FieldTypeT, fieldNameSpace >::resize(), and osg::MField< FieldTypeT, fieldNameSpace >::size(). Referenced by osg::ProgramChunk::addParameter(), and osg::ProgramChunk::setParameter(). 00259 { 00260 if(index < 0) 00261 return true; 00262 00263 if(getParamValues().size() <= UInt16(index)) 00264 { 00265 getParamValues().resize(index + 1); 00266 } 00267 getParamValues()[index] = value; 00268 return false; 00269 }
|
|
||||||||||||
|
Read the program string from the given file Definition at line 84 of file OSGProgramChunk.inl. References osg::ProgramChunk::findParameter(), and osg::ProgramChunk::setParameter(). 00085 { 00086 return setParameter(findParameter(name), value); 00087 }
|
|
||||||||||||
|
Read the program string from the given file Definition at line 90 of file OSGProgramChunk.inl. References osg::ProgramChunk::findParameter(), and osg::ProgramChunk::setParameter(). 00091 { 00092 return setParameter(findParameter(name.c_str()), value); 00093 }
|
|
|
Read the program string from the given file Definition at line 96 of file OSGProgramChunk.inl. Referenced by osg::ProgramChunk::getParameter(), and osg::ProgramChunk::setParameter(). 00097 { 00098 return findParameter(std::st |