#include <OgreGpuProgram.h>
Inheritance diagram for Ogre::GpuProgram:
Public Types | |
enum | LoadingState { LOADSTATE_UNLOADED, LOADSTATE_LOADING, LOADSTATE_LOADED, LOADSTATE_UNLOADING } |
Enum identifying the loading state of the resource. More... | |
Public Member Functions | |
GpuProgram (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual=false, ManualResourceLoader *loader=0) | |
virtual | ~GpuProgram () |
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 void | setSyntaxCode (const String &syntax) |
Sets 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 void | setType (GpuProgramType t) |
Set the program type (only valid before load). | |
virtual GpuProgramType | getType (void) const |
Get the program type. | |
virtual GpuProgram * | _getBindingDelegate (void) |
Returns the GpuProgram which should be bound to the pipeline. | |
virtual bool | isSupported (void) const |
Returns whether this program can be supported on the current renderer and hardware. | |
virtual GpuProgramParametersSharedPtr | createParameters (void) |
Creates a new parameters object compatible with this program definition. | |
virtual void | setSkeletalAnimationIncluded (bool included) |
Sets whether a vertex program includes the required instructions to perform skeletal animation. | |
virtual bool | isSkeletalAnimationIncluded (void) const |
Returns whether a vertex program includes the required instructions to perform skeletal animation. | |
virtual void | setMorphAnimationIncluded (bool included) |
Sets whether a vertex program includes the required instructions to perform morph animation. | |
virtual void | setPoseAnimationIncluded (ushort poseCount) |
Sets whether a vertex program includes the required instructions to perform pose animation. | |
virtual bool | isMorphAnimationIncluded (void) const |
Returns whether a vertex program includes the required instructions to perform morph animation. | |
virtual bool | isPoseAnimationIncluded (void) const |
Returns whether a vertex program includes the required instructions to perform pose animation. | |
virtual ushort | getNumberOfPosesIncluded (void) const |
Returns the number of simultaneous poses the vertex program can blend, for use in pose animation. | |
virtual void | setVertexTextureFetchRequired (bool r) |
Sets whether this vertex program requires support for vertex texture fetch from the hardware. | |
virtual bool | isVertexTextureFetchRequired (void) const |
Returns whether this vertex program requires support for vertex texture fetch from the hardware. | |
virtual GpuProgramParametersSharedPtr | getDefaultParameters (void) |
Get a reference to the default parameters which are to be used for all uses of this program. | |
virtual bool | hasDefaultParameters (void) const |
Returns true if default parameters have been set up. | |
virtual void | setSurfaceAndPassLightStates (bool state) |
Sets whether a vertex program requires light and material states to be passed to through fixed pipeline low level API rendering calls. | |
virtual bool | getPassSurfaceAndLightStates (void) const |
Returns whether a vertex program wants light and material states to be passed through fixed pipeline low level API rendering calls. | |
virtual const String & | getLanguage (void) const |
Returns a string that specifies the language of the gpu programs as specified in a material script. | |
virtual bool | hasCompileError (void) const |
Did this program encounter a compile error when loading? | |
virtual void | resetCompileError (void) |
Reset a compile error if it occurred, allowing the load to be retried. | |
virtual void | load (bool backgroundThread=false) |
Loads the resource, if it is not already. | |
virtual void | reload (void) |
Reloads the resource, if it is already loaded. | |
bool | isReloadable (void) const |
Returns true if the Resource is reloadable, false otherwise. | |
bool | isManuallyLoaded (void) const |
Is this resource manually loaded? | |
virtual void | unload (void) |
Unloads the resource; this is not permanent, the resource can be reloaded later if required. | |
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. | |
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. | |
LoadingState | isLoading () const |
Returns whether the resource is currently in the process of background loading. | |
LoadingState | getLoadingState () const |
Returns the current loading state. | |
bool | isBackgroundLoaded (void) const |
Returns whether this Resource has been earmarked for background loading. | |
void | setBackgroundLoaded (bool bl) |
Tells the resource whether it is background loaded or not. | |
void | escalateLoading () |
Escalates the loading of a background loaded resource. | |
void | addListener (Listener *lis) |
Register a listener on this resource. | |
void | removeListener (Listener *lis) |
Remove a listener on this resource. | |
const String & | getGroup (void) |
Gets the group which this resource is a member of. | |
void | changeGroupOwnership (const String &newGroup) |
Change the resource group ownership of a Resource. | |
ResourceManager * | getCreator (void) |
Gets the manager which created this resource. | |
const String & | getOrigin (void) const |
Get the origin of this resource, e.g. | |
void | _notifyOrigin (const String &origin) |
Notify this resource of it's origin. | |
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 void | setParameterList (const NameValuePairList ¶mList) |
Generic multiple 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. | |
Static Public Member Functions | |
static void | cleanupDictionary () |
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. | |
Protected Types | |
typedef std::list< Listener * > | ListenerList |
Protected Member Functions | |
void | setupBaseParamDictionary (void) |
Internal method for setting up the basic parameter definitions for a subclass. | |
bool | isRequiredCapabilitiesSupported (void) const |
Internal method returns whether required capabilities for this program is supported. | |
size_t | calculateSize (void) const |
| |
void | loadImpl (void) |
| |
virtual void | loadFromSource (void)=0 |
Virtual method which must be implemented by subclasses, load from mSource. | |
virtual void | preLoadImpl (void) |
Internal hook to perform actions before the load process, but after the resource has been marked as 'loading'. | |
virtual void | postLoadImpl (void) |
Internal hook to perform actions after the load process, but before the resource has been marked as fully loaded. | |
virtual void | preUnloadImpl (void) |
Internal hook to perform actions before the unload process. | |
virtual void | postUnloadImpl (void) |
Internal hook to perform actions after the unload process, but before the resource has been marked as fully unloaded. | |
virtual void | unloadImpl (void)=0 |
Internal implementation of the 'unload' action; called regardless of whether this resource is being loaded from a ManualResourceLoader. | |
virtual void | queueFireBackgroundLoadingComplete (void) |
Queue the firing of background loading complete event. | |
bool | createParamDictionary (const String &className) |
Internal method for creating a parameter dictionary for the class, if it does not already exist. | |
Protected Attributes | |
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. | |
bool | mSkeletalAnimation |
Does this (vertex) program include skeletal animation? | |
bool | mMorphAnimation |
Does this (vertex) program include morph animation? | |
ushort | mPoseAnimation |
Does this (vertex) program include pose animation (count of number of poses supported). | |
bool | mVertexTextureFetch |
Does this (vertex) program require support for vertex texture fetch? | |
GpuProgramParametersSharedPtr | mDefaultParams |
The default parameters for use with this object. | |
bool | mPassSurfaceAndLightStates |
Does this program want light states passed through fixed pipeline. | |
bool | mCompileError |
Did we encounter a compilation error? | |
GpuLogicalBufferStruct | mFloatLogicalToPhysical |
Record of logical to physical buffer maps. | |
GpuLogicalBufferStruct | mIntLogicalToPhysical |
Record of logical to physical buffer maps. | |
ResourceManager * | mCreator |
Creator. | |
String | mName |
Unique name of the resource. | |
String | mGroup |
The name of the resource group. | |
ResourceHandle | mHandle |
Numeric handle for more efficient look up than name. | |
volatile LoadingState | mLoadingState |
Is the resource currently loaded? | |
volatile bool | mIsBackgroundLoaded |
Is this resource going to be background loaded? Only applicable for multithreaded. | |
size_t | mSize |
Mutex to cover the status of loading The size of the resource in bytes. | |
bool | mIsManual |
Is this file manually loaded? | |
String | mOrigin |
Origin of this resource (e.g. script name) - optional. | |
ManualResourceLoader * | mLoader |
Optional manual loader; if provided, data is loaded from here instead of a file. | |
ListenerList | mListenerList |
String | mParamDictName |
Class name for this instance to be used as a lookup (must be initialised by subclasses). | |
Static Protected Attributes | |
static CmdType | msTypeCmd |
static CmdSyntax | msSyntaxCmd |
static CmdSkeletal | msSkeletalCmd |
static CmdMorph | msMorphCmd |
static CmdPose | msPoseCmd |
static CmdVTF | msVTFCmd |
static ParamDictionaryMap | msDictionary |
Dictionary of parameters. | |
Classes | |
class | CmdMorph |
class | CmdPose |
class | CmdSkeletal |
class | CmdSyntax |
class | CmdType |
Command object - see ParamCommand. More... | |
class | CmdVTF |
Definition at line 1308 of file OgreGpuProgram.h.
|
Definition at line 131 of file OgreResource.h. |
|
Enum identifying the loading state of the resource.
Definition at line 96 of file OgreResource.h. |
|
|
|
Definition at line 1411 of file OgreGpuProgram.h. |
|
Returns the GpuProgram which should be bound to the pipeline.
Reimplemented in Ogre::HighLevelGpuProgram, and Ogre::UnifiedHighLevelGpuProgram. Definition at line 1444 of file OgreGpuProgram.h. |
|
Notify this resource of it's origin.
Definition at line 357 of file OgreResource.h. |
|
Register a listener on this resource.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. |
|
Implements Ogre::Resource. Definition at line 1402 of file OgreGpuProgram.h. |
|
Change the resource group ownership of a Resource.
|
|
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. MaterialManager) initializes. |
|
Method for copying this object's parameters to another object.
Definition at line 300 of file OgreStringInterface.h. References Ogre::ParamDictionary::mParamDefs. |
|
Internal method for creating a parameter dictionary for the class, if it does not already exist.
Definition at line 176 of file OgreStringInterface.h. |
|
Creates a new parameters object compatible with this program definition.
Reimplemented in Ogre::HighLevelGpuProgram, and Ogre::UnifiedHighLevelGpuProgram. |
|
Escalates the loading of a background loaded resource.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. |
|
Gets the manager which created this resource.
Definition at line 348 of file OgreResource.h. |
|
Get a reference to the default parameters which are to be used for all uses of this program.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. |
|
Gets the group which this resource is a member of.
Reimplemented in Ogre::SkeletonInstance. Definition at line 336 of file OgreResource.h. |
|
Reimplemented in Ogre::SkeletonInstance. Definition at line 262 of file OgreResource.h. |
|
Returns a string that specifies the language of the gpu programs as specified in a material script. ie: asm, cg, hlsl, glsl Reimplemented in Ogre::UnifiedHighLevelGpuProgram. |
|
Returns the current loading state.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 285 of file OgreResource.h. |
|
Gets resource name.
Reimplemented in Ogre::SkeletonInstance. Definition at line 257 of file OgreResource.h. |
|
Returns the number of simultaneous poses the vertex program can blend, for use in pose animation.
Definition at line 1512 of file OgreGpuProgram.h. |
|
Get the origin of this resource, e.g. a script file name.
Definition at line 355 of file OgreResource.h. |
|
Definition at line 213 of file OgreStringInterface.h. |
|
Retrieves the parameter dictionary for this class.
Definition at line 200 of file OgreStringInterface.h. |
|
Generic parameter retrieval method.
Definition at line 269 of file OgreStringInterface.h. References Ogre::ParamCommand::doGet(), and Ogre::ParamDictionary::getParamCommand(). |
|
Retrieves a list of parameters valid for this object.
|
|
Returns whether a vertex program wants light and material states to be passed through fixed pipeline low level API rendering calls.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 1552 of file OgreGpuProgram.h. |
|
Retrieves info about the size of the resource.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 246 of file OgreResource.h. |
|
Gets the assembler source for this program.
Definition at line 1434 of file OgreGpuProgram.h. |
|
Gets the name of the file used as source for this program.
Definition at line 1432 of file OgreGpuProgram.h. |
|
Gets the syntax code for this program e.g. arbvp1, fp20, vs_1_1 etc Definition at line 1426 of file OgreGpuProgram.h. |
|
Get the program type.
Definition at line 1438 of file OgreGpuProgram.h. |
|
Did this program encounter a compile error when loading?
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 1561 of file OgreGpuProgram.h. |
|
Returns true if default parameters have been set up.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 1536 of file OgreGpuProgram.h. |
|
Returns whether this Resource has been earmarked for background loading.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 302 of file OgreResource.h. |
|
Returns true if the Resource has been loaded, false otherwise.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 269 of file OgreResource.h. |
|
Returns whether the resource is currently in the process of background loading.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 278 of file OgreResource.h. |
|
Is this resource manually loaded?
Definition at line 234 of file OgreResource.h. |
|
Returns whether a vertex program includes the required instructions to perform morph animation.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 1500 of file OgreGpuProgram.h. |
|
Returns whether a vertex program includes the required instructions to perform pose animation.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 1508 of file OgreGpuProgram.h. |
|
Returns true if the Resource is reloadable, false otherwise.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 227 of file OgreResource.h. |
|
Internal method returns whether required capabilities for this program is supported.
|
|
Returns whether a vertex program includes the required instructions to perform skeletal animation.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 1473 of file OgreGpuProgram.h. |
|
Returns whether this program can be supported on the current renderer and hardware.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. |
|
Returns whether this vertex program requires support for vertex texture fetch from the hardware.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 1520 of file OgreGpuProgram.h. |
|
Loads the resource, if it is not already.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. |
|
Virtual method which must be implemented by subclasses, load from mSource.
Implemented in Ogre::UnifiedHighLevelGpuProgram. |
|
Implements Ogre::Resource. Reimplemented in Ogre::HighLevelGpuProgram. |
|
Internal hook to perform actions after the load process, but before the resource has been marked as fully loaded.
Reimplemented in Ogre::Mesh. Definition at line 155 of file OgreResource.h. |
|
Internal hook to perform actions after the unload process, but before the resource has been marked as fully unloaded.
Definition at line 165 of file OgreResource.h. |
|
Internal hook to perform actions before the load process, but after the resource has been marked as 'loading'.
Definition at line 148 of file OgreResource.h. |
|
Internal hook to perform actions before the unload process.
Definition at line 160 of file OgreResource.h. |
|
Queue the firing of background loading complete event.
|
|
Reloads the resource, if it is already loaded.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. |
|
Remove a listener on this resource.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. |
|
Reset a compile error if it occurred, allowing the load to be retried.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 1565 of file OgreGpuProgram.h. |
|
Tells the resource whether it is background loaded or not.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. Definition at line 312 of file OgreResource.h. |
|
Sets whether a vertex program includes the required instructions to perform morph animation.
Definition at line 1481 of file OgreGpuProgram.h. |
|
Generic parameter setting method.
|
|
Generic multiple parameter setting method.
|
|
Sets whether a vertex program includes the required instructions to perform pose animation.
Definition at line 1491 of file OgreGpuProgram.h. |
|
Sets whether a vertex program includes the required instructions to perform skeletal animation.
Definition at line 1464 of file OgreGpuProgram.h. |
|
Sets the source assembly for this program from an in-memory string.
|
|
Sets the filename of the source assembly for this program.
|
|
Sets whether a vertex program requires light and material states to be passed to through fixed pipeline low level API rendering calls.
Definition at line 1546 of file OgreGpuProgram.h. |
|
Sets the syntax code for this program e.g. arbvp1, fp20, vs_1_1 etc |
|
Set the program type (only valid before load).
|
|
Internal method for setting up the basic parameter definitions for a subclass.
|
|
Sets whether this vertex program requires support for vertex texture fetch from the hardware.
Definition at line 1516 of file OgreGpuProgram.h. |
|
'Touches' the resource to indicate it has been used.
Reimplemented in Ogre::Material, and Ogre::UnifiedHighLevelGpuProgram. |
|
Unloads the resource; this is not permanent, the resource can be reloaded later if required.
Reimplemented in Ogre::UnifiedHighLevelGpuProgram. |
|
Internal implementation of the 'unload' action; called regardless of whether this resource is being loaded from a ManualResourceLoader.
Implemented in Ogre::Compositor, Ogre::Font, Ogre::HighLevelGpuProgram, Ogre::Material, Ogre::Mesh, Ogre::Skeleton, Ogre::SkeletonInstance, and Ogre::Texture. |
|
Did we encounter a compilation error?
Definition at line 1379 of file OgreGpuProgram.h. |
|
Creator.
Definition at line 109 of file OgreResource.h. |
|
The default parameters for use with this object.
Definition at line 1375 of file OgreGpuProgram.h. |
|
The name of the file to load source from (may be blank).
Definition at line 1359 of file OgreGpuProgram.h. |
|
Record of logical to physical buffer maps. Mandatory for low-level programs or high-level programs which set their params the same way. Definition at line 1382 of file OgreGpuProgram.h. |
|
The name of the resource group.
Definition at line 113 of file OgreResource.h. |
|
Numeric handle for more efficient look up than name.
Definition at line 115 of file OgreResource.h. |
|
Record of logical to physical buffer maps. Mandatory for low-level programs or high-level programs which set their params the same way. Definition at line 1385 of file OgreGpuProgram.h. |
|
Is this resource going to be background loaded? Only applicable for multithreaded.
Definition at line 119 of file OgreResource.h. |
|
Is this file manually loaded?
Definition at line 125 of file OgreResource.h. |
|
Definition at line 132 of file OgreResource.h. |
|
Optional manual loader; if provided, data is loaded from here instead of a file.
Definition at line 129 of file OgreResource.h. |
|
Whether we need to load source from file or not.
Definition at line 1363 of file OgreGpuProgram.h. |
|
Is the resource currently loaded?
Definition at line 117 of file OgreResource.h. |
|
Does this (vertex) program include morph animation?
Definition at line 1369 of file OgreGpuProgram.h. |
|
Unique name of the resource.
Definition at line 111 of file OgreResource.h. |
|
Origin of this resource (e.g. script name) - optional.
Definition at line 127 of file OgreResource.h. |
|
Class name for this instance to be used as a lookup (must be initialised by subclasses).
Definition at line 164 of file OgreStringInterface.h. |
|
Does this program want light states passed through fixed pipeline.
Definition at line 1377 of file OgreGpuProgram.h. |
|
Does this (vertex) program include pose animation (count of number of poses supported).
Definition at line 1371 of file OgreGpuProgram.h. |
|
Dictionary of parameters.
Definition at line 161 of file OgreStringInterface.h. |
|
Mutex to cover the status of loading The size of the resource in bytes.
Definition at line 123 of file OgreResource.h. |
|
Does this (vertex) program include skeletal animation?
Definition at line 1367 of file OgreGpuProgram.h. |
|
Definition at line 1352 of file OgreGpuProgram.h. |
|
The assembler source of the program (may be blank until file loaded).
Definition at line 1361 of file OgreGpuProgram.h. |
|
Definition at line 1353 of file OgreGpuProgram.h. |
|
Definition at line 1351 of file OgreGpuProgram.h. |
|
Definition at line 1350 of file OgreGpuProgram.h. |
|
Definition at line 1349 of file OgreGpuProgram.h. |
|
Definition at line 1354 of file OgreGpuProgram.h. |
|
Syntax code eg arbvp1, vs_2_0 etc.
Definition at line 1365 of file OgreGpuProgram.h. |
|
The type of the program.
Definition at line 1357 of file OgreGpuProgram.h. |
|
Does this (vertex) program require support for vertex texture fetch?
Definition at line 1373 of file OgreGpuProgram.h. |
Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Jul 8 15:20:52 2007