![]() |
OGRE 1.12.10
Object-Oriented Graphics Rendering Engine
|
Specialisation of HighLevelGpuProgram to provide support for Metal Shader Language. More...
#include <OgreMetalProgram.h>
Inheritance diagram for Ogre::MetalProgram:Classes | |
| class | CmdEntryPoint |
| Command object for setting entry point. More... | |
| class | CmdShaderReflectionPairHint |
| Command object for setting vertex shader pair. More... | |
Public Member Functions | |
| MetalProgram (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual, ManualResourceLoader *loader, MetalDevice *device) | |
| virtual | ~MetalProgram () |
| void | analyzeComputeParameters (void) |
| void | analyzeParameterBuffer (MTLArgument *arg) |
| void | analyzeRenderParameters (void) |
| bool | compile (const bool checkErrors=false) |
| Compile source into shader object. | |
| GpuProgramParametersSharedPtr | createParameters (void) |
| Overridden from GpuProgram. | |
| uint32 | getBufferRequiredSize (void) const |
| In bytes. | |
| const String & | getEntryPoint (void) const |
| Gets the entry point defined for this program. | |
| const String & | getLanguage (void) const |
| Overridden from GpuProgram. | |
| id< MTLFunction > | getMetalFunction (void) const |
| Retrieve the Metal function object. | |
| const String & | getShaderReflectionPairHint (void) const |
| Gets the paired shader. See setShaderReflectionPairHint. | |
| void | setEntryPoint (const String &entryPoint) |
| Sets the entry point for this program ie the first method called. | |
| void | setShaderReflectionPairHint (const String &shaderName) |
| If this shader is a pixel shader, sets a vertex shader that can be paired with us for properly getting reflection data for GPU program parameters. | |
| void | updateBuffers (const GpuProgramParametersSharedPtr ¶ms, uint8 *RESTRICT_ALIAS dstData) |
| dstData must be able to hold at least getBufferRequiredSize | |
Public Member Functions inherited from Ogre::HighLevelGpuProgram | |
| HighLevelGpuProgram (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual=false, ManualResourceLoader *loader=0) | |
| Constructor, should be used only by factory classes. | |
| ~HighLevelGpuProgram () | |
| virtual size_t | calculateSize (void) const |
| Calculate the size of a resource; this will only be called after 'load'. | |
| const GpuNamedConstants & | getConstantDefinitions () const |
| Get the full list of GpuConstantDefinition instances. | |
| const String & | getPreprocessorDefines (void) const |
| Gets the preprocessor defines used to compile the program. | |
| void | setPreprocessorDefines (const String &defines) |
| Sets the preprocessor defines used to compile the program. | |
Public Member Functions inherited from Ogre::GpuProgram | |
| GpuProgram (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual=false, ManualResourceLoader *loader=0) | |
| virtual | ~GpuProgram () |
| uint32 | _getHash (uint32 seed=0) const |
| internal method to get the microcode cache id | |
| Vector3 | getComputeGroupDimensions (void) const |
| virtual const GpuProgramParametersPtr & | getDefaultParameters (void) |
| Get a reference to the default parameters which are to be used for all uses of this program. | |
| const String & | getManualNamedConstantsFile () const |
| Gets the name of a file from which to load named parameters mapping for a program which would not be able to derive named parameters itself. | |
| virtual ushort | getNumberOfPosesIncluded (void) const |
| Returns the number of simultaneous poses the vertex program can blend, for use in pose animation. | |
| virtual bool | getPassFogStates (void) const |
| Returns whether a fragment program wants fog state to be passed through fixed pipeline low level API rendering calls (default true, subclasses can override) | |
| 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 (default false, subclasses can override) | |
| virtual bool | getPassTransformStates (void) const |
| Returns whether a vertex program wants transform state to be passed through fixed pipeline low level API rendering calls. | |
| const String & | getSource (void) const |
| Gets the assembler source for this program. | |
| const String & | getSourceFile (void) const |
| Gets the name of the file used as source for this program. | |
| const String & | getSyntaxCode (void) const |
| Gets the syntax code for this program e.g. | |
| GpuProgramType | getType (void) const |
| Get the program type. | |
| virtual bool | hasCompileError (void) const |
| Did this program encounter a compile error when loading? | |
| virtual bool | hasDefaultParameters (void) const |
| Returns true if default parameters have been set up. | |
| virtual bool | isAdjacencyInfoRequired (void) const |
| 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 bool | isSkeletalAnimationIncluded (void) const |
| Returns whether a vertex program includes the required instructions to perform skeletal animation. | |
| virtual bool | isSupported (void) const |
| Returns whether this program can be supported on the current renderer and hardware. | |
| virtual bool | isVertexTextureFetchRequired (void) const |
| Returns whether this vertex program requires support for vertex texture fetch from the hardware. | |
| virtual void | resetCompileError (void) |
| Reset a compile error if it occurred, allowing the load to be retried. | |
| virtual void | setAdjacencyInfoRequired (bool r) |
| void | setComputeGroupDimensions (Vector3 dimensions) |
| void | setManualNamedConstants (const GpuNamedConstants &namedConstants) |
| Allows you to manually provide a set of named parameter mappings to a program which would not be able to derive named parameters itself. | |
| void | setManualNamedConstantsFile (const String ¶mDefFile) |
| Specifies the name of a file from which to load named parameters mapping for a program which would not be able to derive named parameters itself. | |
| 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 void | setSkeletalAnimationIncluded (bool included) |
| Sets whether a vertex program includes the required instructions to perform skeletal animation. | |
| void | setSource (const String &source) |
| Sets the source assembly for this program from an in-memory string. | |
| void | setSourceFile (const String &filename) |
| Sets the filename of the source assembly for this program. | |
| void | setSyntaxCode (const String &syntax) |
| Sets the syntax code for this program e.g. | |
| void | setType (GpuProgramType t) |
| Set the program type (only valid before load) | |
| virtual void | setVertexTextureFetchRequired (bool r) |
| Sets whether this vertex program requires support for vertex texture fetch from the hardware. | |
Public Member Functions inherited from Ogre::Resource | |
| Resource (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual=false, ManualResourceLoader *loader=0) | |
| Standard constructor. | |
| virtual | ~Resource () |
| Virtual destructor. | |
| virtual void | _dirtyState () |
| Manually mark the state of this resource as having been changed. | |
| void | _fireLoadingComplete (bool wasBackgroundLoaded) |
| Firing of loading complete event. | |
| void | _firePreparingComplete (bool wasBackgroundLoaded) |
| Firing of preparing complete event. | |
| void | _fireUnloadingComplete (void) |
| Firing of unloading complete event. | |
| void | _notifyOrigin (const String &origin) |
| Notify this resource of it's origin. | |
| virtual void | addListener (Listener *lis) |
| Register a listener on this resource. | |
| virtual void | changeGroupOwnership (const String &newGroup) |
| Change the resource group ownership of a Resource. | |
| virtual void | escalateLoading () |
| Escalates the loading of a background loaded resource. | |
| ResourceManager * | getCreator (void) |
| Gets the manager which created this resource. | |
| const String & | getGroup (void) const |
| Gets the group which this resource is a member of. | |
| ResourceHandle | getHandle (void) const |
| LoadingState | getLoadingState () const |
| Returns the current loading state. | |
| const String & | getName (void) const |
| Gets resource name. | |
| const String & | getOrigin (void) const |
| Get the origin of this resource, e.g. | |
| size_t | getSize (void) const |
| Retrieves info about the size of the resource. | |
| virtual size_t | getStateCount () const |
| Returns the number of times this resource has changed state, which generally means the number of times it has been loaded. | |
| bool | isBackgroundLoaded (void) const |
| Returns whether this Resource has been earmarked for background loading. | |
| bool | isLoaded (void) const |
| Returns true if the Resource has been loaded, false otherwise. | |
| bool | isLoading () const |
| Returns whether the resource is currently in the process of background loading. | |
| bool | isManuallyLoaded (void) const |
| Is this resource manually loaded? | |
| bool | isPrepared (void) const |
| Returns true if the Resource has been prepared, false otherwise. | |
| bool | isReloadable (void) const |
| Returns true if the Resource is reloadable, false otherwise. | |
| virtual void | load (bool backgroundThread=false) |
| Loads the resource, if it is not already. | |
| virtual void | prepare (bool backgroundThread=false) |
| Prepares the resource for load, if it is not already. | |
| virtual void | reload (LoadingFlags flags=LF_DEFAULT) |
| Reloads the resource, if it is already loaded. | |
| virtual void | removeListener (Listener *lis) |
| Remove a listener on this resource. | |
| void | setBackgroundLoaded (bool bl) |
| Tells the resource whether it is background loaded or not. | |
| virtual void | touch (void) |
| 'Touches' the resource to indicate it has been used. | |
| virtual void | unload (void) |
| Unloads the resource; this is not permanent, the resource can be reloaded later if required. | |
Public Member Functions inherited from Ogre::StringInterface | |
| StringInterface () | |
| virtual | ~StringInterface () |
| Virtual destructor, see Effective C++. | |
| void | copyParametersTo (StringInterface *dest) const |
| Method for copying this object's parameters to another object. | |
| ParamDictionary * | getParamDictionary (void) |
| Retrieves the parameter dictionary for this class. | |
| const ParamDictionary * | getParamDictionary (void) const |
| String | getParameter (const String &name) const |
| Generic parameter retrieval method. | |
| const ParameterList & | getParameters (void) const |
| Retrieves a list of parameters valid for this object. | |
| bool | setParameter (const String &name, const String &value) |
| Generic parameter setting method. | |
| void | setParameterList (const NameValuePairList ¶mList) |
| Generic multiple parameter setting method. | |
Static Public Member Functions | |
| static void | autoFillDummyVertexAttributesForShader (id< MTLFunction > inVertexFunction, MTLRenderPipelineDescriptor *outPsd) |
| static uint32 | getAttributeIndex (VertexElementSemantic semantic) |
Static Public Member Functions inherited from Ogre::HighLevelGpuProgram | |
| static String | _resolveIncludes (const String &source, Resource *resourceBeingLoaded, const String &fileName, bool supportsFilename=false) |
| Scan the source for #include and replace with contents from OGRE resources. | |
Static Public Member Functions inherited from Ogre::GpuProgram | |
| static const String | getProgramTypeName (GpuProgramType programType) |
Static Public Member Functions inherited from Ogre::StringInterface | |
| 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. | |
Additional Inherited Members | |
Public Types inherited from Ogre::Resource | |
| enum | LoadingFlags { LF_DEFAULT = 0 , LF_INCLUDE_NON_RELOADABLE = 1 , LF_ONLY_UNREFERENCED = 2 , LF_ONLY_UNREFERENCED_INCLUDE_NON_RELOADABLE = 3 , LF_PRESERVE_STATE = 4 } |
| Enum that allow to choose subset of unloaded/reloaded resources and to adjust reloading behavior. More... | |
| enum | LoadingState { LOADSTATE_UNLOADED , LOADSTATE_LOADING , LOADSTATE_LOADED , LOADSTATE_UNLOADING , LOADSTATE_PREPARED , LOADSTATE_PREPARING } |
| Enum identifying the loading state of the resource. More... | |
Specialisation of HighLevelGpuProgram to provide support for Metal Shader Language.
| Ogre::MetalProgram::MetalProgram | ( | ResourceManager * | creator, |
| const String & | name, | ||
| ResourceHandle | handle, | ||
| const String & | group, | ||
| bool | isManual, | ||
| ManualResourceLoader * | loader, | ||
| MetalDevice * | device | ||
| ) |
|
virtual |
Sets the entry point for this program ie the first method called.
Gets the entry point defined for this program.
If this shader is a pixel shader, sets a vertex shader that can be paired with us for properly getting reflection data for GPU program parameters.
Gets the paired shader. See setShaderReflectionPairHint.
Overridden from GpuProgram.
Reimplemented from Ogre::GpuProgram.
|
virtual |
Overridden from GpuProgram.
Reimplemented from Ogre::HighLevelGpuProgram.
|
inline |
Retrieve the Metal function object.
Compile source into shader object.
|
static |
| void Ogre::MetalProgram::analyzeParameterBuffer | ( | MTLArgument * | arg | ) |
| void Ogre::MetalProgram::updateBuffers | ( | const GpuProgramParametersSharedPtr & | params, |
| uint8 *RESTRICT_ALIAS | dstData | ||
| ) |
dstData must be able to hold at least getBufferRequiredSize
|
static |