#include <OgreHighLevelGpuProgram.h>
Inheritance diagram for Ogre::HighLevelGpuProgram:
Public Methods | |
HighLevelGpuProgram (const String &name, GpuProgramType gpType, const String &language) | |
Constructor, should be used only by factory classes. | |
~HighLevelGpuProgram () | |
void | load () |
@copydoc Resource::unload | |
void | unload () |
@copydoc Resource::unload | |
GpuProgramParametersSharedPtr | createParameters (void) |
Creates a new parameters object compatible with this program definition. | |
GpuProgram * | _getBindingDelegate (void) |
@copydoc GpuProgram::getBindingDelegate | |
ParamDictionary * | getParamDictionary (void) |
Retrieves the parameter dictionary for this class. | |
const ParamDictionary * | getParamDictionary (void) const |
const ParameterList & | getParameters (void) const |
Retrieves a list of parameters valid for this object. | |
virtual bool | setParameter (const String &name, const String &value) |
Generic parameter setting method. | |
virtual String | getParameter (const String &name) const |
Generic parameter retrieval method. | |
virtual void | copyParametersTo (StringInterface *dest) const |
Method for copying this object's parameters to another object. | |
virtual void | setSourceFile (const String &filename) |
Sets the filename of the source assembly for this program. | |
virtual void | setSource (const String &source) |
Sets the source assembly for this program from an in-memory string. | |
virtual const String & | getSyntaxCode (void) const |
Gets the syntax code for this program e.g. | |
virtual const String & | getSourceFile (void) const |
Gets the name of the file used as source for this program. | |
virtual const String & | getSource (void) const |
Gets the assembler source for this program. | |
virtual GpuProgramType | getType (void) const |
Get the program type. | |
virtual bool | isSupported (void) const |
Returns whether this program can be supported on the current renderer and hardware. | |
virtual size_t | getSize (void) const |
Retrieves info about the size of the resource. | |
virtual void | touch (void) |
'Touches' the resource to indicate it has been used. | |
time_t | getLastAccess (void) const |
Gets the last time the resource was 'touched'. | |
const String & | getName (void) const |
Gets resource name. | |
ResourceHandle | getHandle (void) const |
bool | isLoaded (void) const |
Returns true if the Resource has been loaded, false otherwise. | |
virtual void | destroy () |
A method to make the resource delete itself. | |
Protected Methods | |
virtual void | loadHighLevelImpl (void) |
Internal load implementation, loads just the high-level portion, enough to get parameters. | |
virtual void | createLowLevelImpl (void)=0 |
Internal method for creating an appropriate low-level program from this high-level program, must be implemented by subclasses. | |
virtual void | unloadImpl (void)=0 |
Internal unload implementation, must be implemented by subclasses. | |
virtual void | populateParameterNames (GpuProgramParametersSharedPtr params)=0 |
Populate the passed parameters with name->index map, must be overridden. | |
bool | createParamDictionary (const String &className) |
Internal method for creating a parameter dictionary for the class, if it does not already exist. | |
virtual void | loadFromSource (void)=0 |
Virtual method which must be implemented by subclasses, load from mSource. | |
Protected Attributes | |
bool | mHighLevelLoaded |
Whether the high-level program (and it's parameter defs) is loaded. | |
GpuProgram * | mAssemblerProgram |
The underlying assembler program. | |
String | mParamDictName |
Class name for this instance to be used as a lookup (must be initialised by subclasses). | |
GpuProgramType | mType |
The type of the program. | |
String | mFilename |
The name of the file to load source from (may be blank). | |
String | mSource |
The assembler source of the program (may be blank until file loaded). | |
bool | mLoadFromFile |
Whether we need to load source from file or not. | |
String | mSyntaxCode |
Syntax code eg arbvp1, vs_2_0 etc. | |
String | mName |
ResourceHandle | mHandle |
bool | mIsLoaded |
time_t | mLastAccess |
size_t | mSize |
Static Protected Attributes | |
ParamDictionaryMap | msDictionary |
Dictionary of parameters. |
You cannot create high-level programs direct - use HighLevelGpuProgramManager instead. Plugins can register new implementations of HighLevelGpuProgramFactory in order to add support for new languages without requiring changes to the core Ogre API. To allow custom parameters to be set, this class extends StringInterface - the application can query on the available custom parameters and get/set them without having to link specifically with it.
Definition at line 56 of file OgreHighLevelGpuProgram.h.
|
Constructor, should be used only by factory classes.
Definition at line 34 of file OgreHighLevelGpuProgram.cpp. References Ogre::GpuProgramType. |
|
Definition at line 66 of file OgreHighLevelGpuProgram.cpp. |
|
@copydoc GpuProgram::getBindingDelegate
Reimplemented from Ogre::GpuProgram. Definition at line 94 of file OgreHighLevelGpuProgram.h. |
|
Method for copying this object's parameters to another object.
Definition at line 293 of file OgreStringInterface.h. References Ogre::ParamDictionary::mParamDefs, and Ogre::StringInterface::setParameter(). Referenced by Ogre::GuiElement::copyFromTemplate(), Ogre::GuiContainer::copyFromTemplate(), and Ogre::ParticleSystem::operator=(). |
|
Internal method for creating an appropriate low-level program from this high-level program, must be implemented by subclasses.
Implemented in Ogre::CgProgram, and Ogre::D3D9HLSLProgram. Referenced by load(). |
|
|
Creates a new parameters object compatible with this program definition.
Reimplemented from Ogre::GpuProgram. Reimplemented in Ogre::D3D9HLSLProgram. Definition at line 71 of file OgreHighLevelGpuProgram.cpp. References Ogre::GpuProgramParametersSharedPtr, Ogre::GpuProgram::isSupported(), loadHighLevelImpl(), and populateParameterNames(). |
|
A method to make the resource delete itself.
Definition at line 137 of file OgreResource.h. |
|
Definition at line 120 of file OgreResource.h. References Ogre::ResourceHandle. Referenced by Ogre::Material::clone(), Ogre::BspLevel::loadQuake3Level(), and Ogre::ResourceManager::unload(). |
|
Gets the last time the resource was 'touched'.
Definition at line 108 of file OgreResource.h. |
|
Gets resource name.
Reimplemented in Ogre::Material, and Ogre::Overlay. Definition at line 115 of file OgreResource.h. Referenced by Ogre::D3D9Texture::_loadCubeTex(), Ogre::Mesh::_notifySkeleton(), Ogre::ResourceManager::add(), Ogre::PopupMenuGuiElement::addListItem(), Ogre::ListGuiElement::addListItem(), Ogre::PopupMenuGuiElement::addMenuItem(), Ogre::MeshManager::createPrefabPlane(), Ogre::TTYGuiElement::getFontName(), Ogre::TextAreaGuiElement::getFontName(), Ogre::PopupMenuGuiElement::getListItemName(), Ogre::ListGuiElement::getListItemName(), Ogre::GpuProgramUsage::getProgramName(), Ogre::MeshSerializer::importMesh(), Ogre::GLTexture::load(), Ogre::TextureManager::loadImage(), Ogre::TextureManager::loadRawData(), Ogre::FontManager::logBadAttrib(), Ogre::MeshSerializerImpl_v1::readMaterial(), Ogre::MeshSerializerImpl::readMeshLodInfo(), Ogre::MeshSerializerImpl_v1::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readMeshLodUsageManual(), Ogre::PopupMenuGuiElement::removeListItem(), Ogre::ListGuiElement::removeListItem(), Ogre::SceneManager::setSkyBox(), Ogre::SceneManager::setSkyDome(), and Ogre::ResourceManager::unload(). |
|
Definition at line 206 of file OgreStringInterface.h. |
|
Retrieves the parameter dictionary for this class.
Definition at line 193 of file OgreStringInterface.h. Referenced by Ogre::TTYGuiElement::addBaseParameters(), Ogre::TextBoxGuiElement::addBaseParameters(), Ogre::TextAreaGuiElement::addBaseParameters(), Ogre::ScrollBarGuiElement::addBaseParameters(), Ogre::PopupMenuGuiElement::addBaseParameters(), Ogre::ParticleEmitter::addBaseParameters(), Ogre::PanelGuiElement::addBaseParameters(), Ogre::ListGuiElement::addBaseParameters(), Ogre::GuiElement::addBaseParameters(), Ogre::CursorGuiElement::addBaseParameters(), Ogre::ButtonGuiElement::addBaseParameters(), Ogre::BorderPanelGuiElement::addBaseParameters(), Ogre::BorderButtonGuiElement::addBaseParameters(), Ogre::CgProgram::CgProgram(), Ogre::ColourFaderAffector::ColourFaderAffector(), Ogre::ColourFaderAffector2::ColourFaderAffector2(), Ogre::ColourImageAffector::ColourImageAffector(), Ogre::ColourInterpolatorAffector::ColourInterpolatorAffector(), Ogre::D3D9HLSLProgram::D3D9HLSLProgram(), Ogre::HollowEllipsoidEmitter::HollowEllipsoidEmitter(), Ogre::AreaEmitter::initDefaults(), Ogre::ParticleSystem::initParameters(), Ogre::LinearForceAffector::LinearForceAffector(), Ogre::RingEmitter::RingEmitter(), Ogre::RotationAffector::RotationAffector(), Ogre::ScaleAffector::ScaleAffector(), and Ogre::StringInterface::setParameter(). |
|
Generic parameter retrieval method.
Definition at line 262 of file OgreStringInterface.h. References Ogre::ParamCommand::doGet(), and Ogre::ParamDictionary::getParamCommand(). |
|
Retrieves a list of parameters valid for this object.
Definition at line 224 of file OgreStringInterface.h. References Ogre::ParamDictionary::getParameters(), and Ogre::ParameterList. |
|
Retrieves info about the size of the resource.
Definition at line 93 of file OgreResource.h. Referenced by Ogre::ResourceManager::unload(). |
|
Gets the assembler source for this program.
Definition at line 455 of file OgreGpuProgram.h. |
|
Gets the name of the file used as source for this program.
Definition at line 453 of file OgreGpuProgram.h. |
|
Gets the syntax code for this program e.g. arbvp1, fp20, vs_1_1 etc Definition at line 450 of file OgreGpuProgram.h. |
|
Get the program type.
Definition at line 457 of file OgreGpuProgram.h. Referenced by Ogre::GLRenderSystem::bindGpuProgram(), and Ogre::D3D9RenderSystem::bindGpuProgram(). |
|
Returns true if the Resource has been loaded, false otherwise.
Definition at line 127 of file OgreResource.h. Referenced by Ogre::GpuProgramUsage::_load(), Ogre::Technique::isLoaded(), Ogre::D3D9Texture::load(), Ogre::D3D9Texture::unload(), and Ogre::D3D9Texture::~D3D9Texture(). |
|
Returns whether this program can be supported on the current renderer and hardware.
Reimplemented in Ogre::CgProgram, and Ogre::D3D9HLSLProgram. Definition at line 79 of file OgreGpuProgram.cpp. References Ogre::GpuProgram::mSyntaxCode. Referenced by Ogre::Technique::_compile(), createParameters(), Ogre::parseFragmentProgramRef(), Ogre::parseParamIndexed(), Ogre::parseParamIndexedAuto(), Ogre::parseParamNamed(), Ogre::parseParamNamedAuto(), and Ogre::parseVertexProgramRef(). |
|
@copydoc Resource::unload
Reimplemented from Ogre::GpuProgram. Definition at line 40 of file OgreHighLevelGpuProgram.cpp. References createLowLevelImpl(), Ogre::GpuProgram::load(), loadHighLevelImpl(), mAssemblerProgram, Ogre::Resource::mIsLoaded, and unload(). |
|
Virtual method which must be implemented by subclasses, load from mSource.
Implemented in Ogre::CgProgram, Ogre::D3D7GpuProgram, Ogre::D3D9GpuProgram, Ogre::D3D9HLSLProgram, Ogre::GLGpuNvparseProgram, and Ogre::GLArbGpuProgram. Referenced by Ogre::GpuProgram::load(), and loadHighLevelImpl(). |
|
Internal load implementation, loads just the high-level portion, enough to get parameters.
Definition at line 84 of file OgreHighLevelGpuProgram.cpp. References Ogre::DataChunk::getAsString(), Ogre::GpuProgram::loadFromSource(), Ogre::GpuProgram::mFilename, mHighLevelLoaded, and Ogre::GpuProgram::mSource. Referenced by createParameters(), and load(). |
|
Populate the passed parameters with name->index map, must be overridden.
Implemented in Ogre::CgProgram, and Ogre::D3D9HLSLProgram. Referenced by createParameters(). |
|
Generic parameter setting method.
Definition at line 33 of file OgreStringInterface.cpp. References Ogre::ParamCommand::doSet(), Ogre::ParamDictionary::getParamCommand(), and Ogre::StringInterface::getParamDictionary(). Referenced by Ogre::StringInterface::copyParametersTo(), Ogre::Profiler::createContainer(), Ogre::Profiler::createTextArea(), Ogre::MaterialSerializer::finishProgramDefinition(), Ogre::ParticleSystemManager::parseAffectorAttrib(), Ogre::ParticleSystemManager::parseAttrib(), Ogre::OverlayManager::parseElementAttrib(), and Ogre::ParticleSystemManager::parseEmitterAttrib(). |
|
Sets the source assembly for this program from an in-memory string.
Definition at line 51 of file OgreGpuProgram.cpp. References Ogre::GpuProgram::mFilename, Ogre::GpuProgram::mLoadFromFile, and Ogre::GpuProgram::mSource. Referenced by Ogre::GpuProgramManager::createProgramFromString(), and Ogre::GpuProgramManager::loadFromString(). |
|
Sets the filename of the source assembly for this program.
Definition at line 44 of file OgreGpuProgram.cpp. References Ogre::GpuProgram::mFilename, Ogre::GpuProgram::mLoadFromFile, and Ogre::GpuProgram::mSource. Referenced by Ogre::GpuProgramManager::createProgram(), Ogre::MaterialSerializer::finishProgramDefinition(), and Ogre::GpuProgramManager::load(). |
|
'Touches' the resource to indicate it has been used.
Reimplemented in Ogre::Material. Definition at line 100 of file OgreResource.h. Referenced by Ogre::ResourceManager::load(). |
|
@copydoc Resource::unload
Reimplemented from Ogre::Resource. Definition at line 58 of file OgreHighLevelGpuProgram.cpp. References mAssemblerProgram, Ogre::Resource::mIsLoaded, Ogre::Resource::unload(), and unloadImpl(). Referenced by load(). |
|
Internal unload implementation, must be implemented by subclasses.
Implemented in Ogre::CgProgram, and Ogre::D3D9HLSLProgram. Referenced by unload(). |
|
The underlying assembler program.
Definition at line 62 of file OgreHighLevelGpuProgram.h. Referenced by Ogre::D3D9HLSLProgram::createLowLevelImpl(), Ogre::CgProgram::createLowLevelImpl(), load(), and unload(). |
|
The name of the file to load source from (may be blank).
Definition at line 424 of file OgreGpuProgram.h. Referenced by Ogre::GpuProgram::load(), Ogre::D3D9GpuProgram::load(), loadHighLevelImpl(), Ogre::GpuProgram::setSource(), and Ogre::GpuProgram::setSourceFile(). |
|
Definition at line 57 of file OgreResource.h. Referenced by Ogre::ResourceManager::add(), Ogre::Material::clone(), Ogre::Material::copyDetailsTo(), and Ogre::Material::operator=(). |
|
Whether the high-level program (and it's parameter defs) is loaded.
Definition at line 60 of file OgreHighLevelGpuProgram.h. Referenced by loadHighLevelImpl(). |
|
Definition at line 58 of file OgreResource.h. Referenced by Ogre::D3D9Texture::_initMembers(), Ogre::D3D9Texture::_loadCubeTex(), Ogre::D3D9Texture::_loadNormTex(), Ogre::D3D9Texture::_loadVolumeTex(), Ogre::Material::_notifyNeedsRecompile(), Ogre::Material::clone(), Ogre::D3DTexture::createSurface2D(), Ogre::D3DTexture::createSurface3D(), Ogre::D3D9Texture::D3D9Texture(), Ogre::D3DTexture::D3DTexture(), Ogre::DynLib::DynLib(), Ogre::Zip::load(), Ogre::Skeleton::load(), Ogre::PatchMesh::load(), Ogre::Mesh::load(), Ogre::Material::load(), load(), Ogre::GpuProgram::load(), Ogre::GLTexture::load(), Ogre::Font::load(), Ogre::DynLib::load(), Ogre::D3D9Texture::load(), Ogre::D3D9GpuProgram::load(), Ogre::D3DTexture::load(), Ogre::BspLevel::load(), Ogre::D3D9Texture::loadImage(), Ogre::D3DTexture::loadImage(), Ogre::D3DTexture::loadImage3D(), Ogre::GLTexture::loadImages(), Ogre::Material::Material(), Ogre::Material::operator=(), Ogre::Skeleton::unload(), Ogre::Mesh::unload(), Ogre::Material::unload(), unload(), Ogre::GLTexture::unload(), Ogre::Font::unload(), Ogre::DynLib::unload(), Ogre::D3D9Texture::unload(), Ogre::D3DTexture::unload(), and Ogre::BspLevel::~BspLevel(). |
|
Definition at line 59 of file OgreResource.h. Referenced by Ogre::Material::operator=(). |
|
Whether we need to load source from file or not.
Definition at line 428 of file OgreGpuProgram.h. Referenced by Ogre::GpuProgram::setSource(), and Ogre::GpuProgram::setSourceFile(). |
|
Definition at line 56 of file OgreResource.h. Referenced by Ogre::Skeleton::_dumpContents(), Ogre::Mesh::_rationaliseBoneAssignments(), Ogre::BspLevel::BspLevel(), Ogre::Mesh::buildTangentVectors(), Ogre::Material::clone(), Ogre::Material::compile(), Ogre::Material::copyDetailsTo(), Ogre::Quake3Shader::createAsMaterial(), Ogre::D3D9HLSLProgram::createLowLevelImpl(), Ogre::CgProgram::createLowLevelImpl(), Ogre::Font::createTextureFromFont(), Ogre::D3D9Texture::D3D9Texture(), Ogre::D3DTexture::D3DTexture(), Ogre::DynLib::DynLib(), Ogre::Font::Font(), Ogre::Mesh::generateLodLevels(), Ogre::Material::getBestTechnique(), Ogre::Overlay::getName(), Ogre::Material::getName(), Ogre::GLTexture::GLTexture(), Ogre::GpuProgram::GpuProgram(), Ogre::Zip::load(), Ogre::Skeleton::load(), Ogre::Mesh::load(), Ogre::GLTexture::load(), Ogre::Font::load(), Ogre::DynLib::load(), Ogre::D3DTexture::load(), Ogre::BspLevel::load(), Ogre::D3D9GpuFragmentProgram::loadFromMicrocode(), Ogre::D3D9GpuVertexProgram::loadFromMicrocode(), Ogre::GLArbGpuProgram::loadFromSource(), Ogre::D3D9HLSLProgram::loadFromSource(), Ogre::D3D9GpuProgram::loadFromSource(), Ogre::CgProgram::loadFromSource(), Ogre::GLTexture::loadImages(), Ogre::Material::Material(), Ogre::Mesh::Mesh(), Ogre::Material::operator=(), Ogre::Overlay::Overlay(), Ogre::Quake3Shader::Quake3Shader(), Ogre::CgProgram::selectProfile(), Ogre::Mesh::setSkeletonName(), Ogre::Skeleton::Skeleton(), Ogre::StringResource::StringResource(), Ogre::Zip::unload(), Ogre::DynLib::unload(), Ogre::CgProgram::unloadImpl(), and Ogre::Zip::Zip(). |
|
Class name for this instance to be used as a lookup (must be initialised by subclasses).
Definition at line 157 of file OgreStringInterface.h. |
|
Dictionary of parameters.
Definition at line 30 of file OgreStringInterface.cpp. |
|
Definition at line 60 of file OgreResource.h. Referenced by Ogre::D3D9Texture::_setFinalAttributes(), Ogre::D3DTexture::loadImage(), Ogre::D3DTexture::loadImage3D(), Ogre::GLTexture::loadImages(), and Ogre::Material::operator=(). |
|
The assembler source of the program (may be blank until file loaded).
Definition at line 426 of file OgreGpuProgram.h. Referenced by Ogre::GpuProgram::load(), Ogre::D3D9GpuProgram::load(), Ogre::GLArbGpuProgram::loadFromSource(), Ogre::GLGpuNvparseProgram::loadFromSource(), Ogre::D3D9HLSLProgram::loadFromSource(), Ogre::D3D9GpuProgram::loadFromSource(), Ogre::CgProgram::loadFromSource(), loadHighLevelImpl(), Ogre::GpuProgram::setSource(), and Ogre::GpuProgram::setSourceFile(). |
|
Syntax code eg arbvp1, vs_2_0 etc.
Definition at line 430 of file OgreGpuProgram.h. Referenced by Ogre::GpuProgram::isSupported(). |
|
The type of the program.
Definition at line 422 of file OgreGpuProgram.h. Referenced by Ogre::GLArbGpuProgram::bindProgramParameters(), Ogre::D3D9HLSLProgram::createLowLevelImpl(), and Ogre::CgProgram::createLowLevelImpl(). |
Copyright © 2002-2003 by The OGRE Team
Last modified Wed Jan 21 00:17:54 2004