#include <OgreD3D9HLSLProgram.h>
Inheritance diagram for Ogre::D3D9HLSLProgram:
Public Methods | |
D3D9HLSLProgram (const String &name, GpuProgramType gpType, const String &language) | |
~D3D9HLSLProgram () | |
void | setEntryPoint (const String &entryPoint) |
Sets the entry point for this program ie the first method called. | |
const String & | getEntryPoint (void) const |
Gets the entry point defined for this program. | |
void | setTarget (const String &target) |
Sets the shader target to compile down to, e.g. | |
const String & | getTarget (void) const |
Gets the shader target to compile down to, e.g. | |
bool | isSupported (void) const |
Overridden from GpuProgram. | |
GpuProgramParametersSharedPtr | createParameters (void) |
Overridden from GpuProgram. | |
void | load () |
@copydoc Resource::unload | |
void | unload () |
@copydoc Resource::unload | |
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 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 | |
void | loadFromSource (void) |
Internal load implementation, must be implemented by subclasses. | |
void | createLowLevelImpl (void) |
Internal method for creating an appropriate low-level program from this high-level program, must be implemented by subclasses. | |
void | unloadImpl (void) |
Internal unload implementation, must be implemented by subclasses. | |
void | populateParameterNames (GpuProgramParametersSharedPtr params) |
Populate the passed parameters with name->index map, must be overridden. | |
void | processParamElement (D3DXHANDLE parent, String prefix, unsigned int index, GpuProgramParametersSharedPtr params) |
virtual void | loadHighLevelImpl (void) |
Internal load implementation, loads just the high-level portion, enough to get parameters. | |
bool | createParamDictionary (const String &className) |
Internal method for creating a parameter dictionary for the class, if it does not already exist. | |
Protected Attributes | |
String | mTarget |
String | mEntryPoint |
LPD3DXBUFFER | mpMicroCode |
LPD3DXCONSTANTTABLE | mpConstTable |
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 | |
CmdEntryPoint | msCmdEntryPoint |
CmdTarget | msCmdTarget |
ParamDictionaryMap | msDictionary |
Dictionary of parameters. |
Definition at line 40 of file OgreD3D9HLSLProgram.h.
|
Definition at line 167 of file OgreD3D9HLSLProgram.cpp. References Ogre::ParamDictionary::addParameter(), Ogre::StringInterface::createParamDictionary(), Ogre::StringInterface::getParamDictionary(), Ogre::GpuProgramType, msCmdEntryPoint, msCmdTarget, and Ogre::PT_STRING. |
|
Definition at line 186 of file OgreD3D9HLSLProgram.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.
Implements Ogre::HighLevelGpuProgram. Definition at line 64 of file OgreD3D9HLSLProgram.cpp. References Ogre::HighLevelGpuProgram::mAssemblerProgram, Ogre::Resource::mName, mpMicroCode, mTarget, and Ogre::GpuProgram::mType. |
|
|
Overridden from GpuProgram.
Reimplemented from Ogre::HighLevelGpuProgram. Definition at line 196 of file OgreD3D9HLSLProgram.cpp. References Ogre::GpuProgramParametersSharedPtr. |
|
A method to make the resource delete itself.
Definition at line 137 of file OgreResource.h. |
|
Gets the entry point defined for this program.
Definition at line 90 of file OgreD3D9HLSLProgram.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(), 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. |
|
Gets the shader target to compile down to, e.g. 'vs_1_1'. Definition at line 94 of file OgreD3D9HLSLProgram.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(). |
|
Overridden from GpuProgram.
Reimplemented from Ogre::GpuProgram. Definition at line 191 of file OgreD3D9HLSLProgram.cpp. References mTarget. |
|
@copydoc Resource::unload
Reimplemented from Ogre::GpuProgram. Definition at line 40 of file OgreHighLevelGpuProgram.cpp. References Ogre::HighLevelGpuProgram::createLowLevelImpl(), Ogre::GpuProgram::load(), Ogre::HighLevelGpuProgram::loadHighLevelImpl(), Ogre::HighLevelGpuProgram::mAssemblerProgram, Ogre::Resource::mIsLoaded, and Ogre::HighLevelGpuProgram::unload(). |
|
Internal load implementation, must be implemented by subclasses.
Implements Ogre::GpuProgram. Definition at line 37 of file OgreD3D9HLSLProgram.cpp. References Except, mEntryPoint, Ogre::Resource::mName, mpConstTable, mpMicroCode, Ogre::GpuProgram::mSource, and mTarget. |
|
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, Ogre::HighLevelGpuProgram::mHighLevelLoaded, and Ogre::GpuProgram::mSource. Referenced by Ogre::HighLevelGpuProgram::createParameters(), and Ogre::HighLevelGpuProgram::load(). |
|
Populate the passed parameters with name->index map, must be overridden.
Implements Ogre::HighLevelGpuProgram. Definition at line 85 of file OgreD3D9HLSLProgram.cpp. References Except, Ogre::GpuProgramParametersSharedPtr, mpConstTable, and processParamElement(). |
|
Definition at line 110 of file OgreD3D9HLSLProgram.cpp. References Except, Ogre::GpuProgramParametersSharedPtr, and mpConstTable. Referenced by populateParameterNames(). |
|
Sets the entry point for this program ie the first method called.
Definition at line 88 of file OgreD3D9HLSLProgram.h. |
|
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(). |
|
Sets the shader target to compile down to, e.g. 'vs_1_1'. Definition at line 207 of file OgreD3D9HLSLProgram.cpp. References mTarget. |
|
'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 Ogre::HighLevelGpuProgram::mAssemblerProgram, Ogre::Resource::mIsLoaded, Ogre::Resource::unload(), and Ogre::HighLevelGpuProgram::unloadImpl(). Referenced by Ogre::HighLevelGpuProgram::load(). |
|
Internal unload implementation, must be implemented by subclasses.
Implements Ogre::HighLevelGpuProgram. Definition at line 77 of file OgreD3D9HLSLProgram.cpp. References mpConstTable, mpMicroCode, and SAFE_RELEASE. |
|
The underlying assembler program.
Definition at line 62 of file OgreHighLevelGpuProgram.h. Referenced by createLowLevelImpl(), Ogre::CgProgram::createLowLevelImpl(), Ogre::HighLevelGpuProgram::load(), and Ogre::HighLevelGpuProgram::unload(). |
|
Definition at line 78 of file OgreD3D9HLSLProgram.h. Referenced by loadFromSource(). |
|
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(), Ogre::HighLevelGpuProgram::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 Ogre::HighLevelGpuProgram::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(), Ogre::HighLevelGpuProgram::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(), Ogre::HighLevelGpuProgram::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(), 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(), 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. |
|
Definition at line 81 of file OgreD3D9HLSLProgram.h. Referenced by loadFromSource(), populateParameterNames(), processParamElement(), and unloadImpl(). |
|
Definition at line 80 of file OgreD3D9HLSLProgram.h. Referenced by createLowLevelImpl(), loadFromSource(), and unloadImpl(). |
|
Definition at line 33 of file OgreD3D9HLSLProgram.cpp. Referenced by D3D9HLSLProgram(). |
|
Definition at line 34 of file OgreD3D9HLSLProgram.cpp. Referenced by D3D9HLSLProgram(). |
|
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(), loadFromSource(), Ogre::D3D9GpuProgram::loadFromSource(), Ogre::CgProgram::loadFromSource(), Ogre::HighLevelGpuProgram::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(). |
|
Definition at line 77 of file OgreD3D9HLSLProgram.h. Referenced by createLowLevelImpl(), isSupported(), loadFromSource(), and setTarget(). |
|
The type of the program.
Definition at line 422 of file OgreGpuProgram.h. Referenced by Ogre::GLArbGpuProgram::bindProgramParameters(), createLowLevelImpl(), and Ogre::CgProgram::createLowLevelImpl(). |
Copyright © 2002-2003 by The OGRE Team
Last modified Wed Jan 21 00:12:11 2004