![]() |
OGRE 1.12.10
Object-Oriented Graphics Rendering Engine
|
Specialization of HighLevelGpuProgram to provide support for D3D11 High-Level Shader Language (HLSL). More...
#include <OgreD3D11HLSLProgram.h>
Classes | |
class | CmdColumnMajorMatrices |
Command object for setting matrix packing in column-major order. More... | |
class | CmdEnableBackwardsCompatibility |
Command object for setting backwards compatibility. More... | |
class | CmdEntryPoint |
Command object for setting entry point. More... | |
class | CmdTarget |
Command object for setting target assembler. More... | |
Public Member Functions | |
D3D11HLSLProgram (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual, ManualResourceLoader *loader, D3D11Device &device) | |
~D3D11HLSLProgram () | |
GpuProgram * | _getBindingDelegate (void) |
shortcut as we there is no low-level separation here | |
virtual void | buildConstantDefinitions () const |
Build the constant definition map, must be overridden. | |
void | CreateComputeShader () |
void | CreateDomainShader () |
void | CreateGeometryShader () |
void | CreateHullShader () |
GpuProgramParametersSharedPtr | createParameters (void) |
Overridden from GpuProgram. | |
void | CreatePixelShader () |
void | CreateVertexShader () |
bool | getColumnMajorMatrices (void) const |
Gets whether matrix packed in column-major order. | |
const char * | getCompatibleTarget (void) const |
Gets the shader target promoted to the first compatible, e.g. | |
ID3D11ComputeShader * | getComputeShader (void) const |
ID3D11Buffer * | getConstantBuffer (GpuProgramParametersSharedPtr params, uint16 variabilityMask) |
void | getConstantBuffers (ID3D11Buffer **buffers, unsigned int &numBuffers, ID3D11ClassInstance **classes, unsigned int &numInstances, GpuProgramParametersSharedPtr params, uint16 variabilityMask) |
ID3D11DomainShader * | getDomainShader (void) const |
bool | getEnableBackwardsCompatibility (void) const |
Gets whether backwards compatibility is enabled. | |
const String & | getEntryPoint (void) const |
Gets the entry point defined for this program. | |
ID3D11GeometryShader * | getGeometryShader (void) const |
ID3D11HullShader * | getHullShader (void) const |
const D3D11_SIGNATURE_PARAMETER_DESC & | getInputParamDesc (unsigned int index) const |
const String & | getLanguage (void) const |
Overridden from GpuProgram. | |
const MicroCode & | getMicroCode (void) const |
uint32 | getNameForMicrocodeCache () |
unsigned int | getNumInputs (void) const |
unsigned int | getNumOutputs (void) const |
const D3D11_SIGNATURE_PARAMETER_DESC & | getOutputParamDesc (unsigned int index) const |
ID3D11PixelShader * | getPixelShader (void) const |
unsigned int | getSubroutineSlot (const String &subroutineSlotName) const |
const String & | getTarget (void) const |
Gets the shader target to compile down to, e.g. | |
ID3D11VertexShader * | getVertexShader (void) const |
bool | isSupported (void) const |
Overridden from GpuProgram. | |
void | loadFromSource (void) |
Internal load implementation, must be implemented by subclasses. | |
void | prepareImpl () |
Internal implementation of the meat of the 'prepare' action. | |
void | reinterpretGSForStreamOut (void) |
void | setColumnMajorMatrices (bool columnMajor) |
Sets whether matrix packing in column-major order. | |
void | setEnableBackwardsCompatibility (bool enableBackwardsCompatibility) |
Sets whether backwards compatibility is enabled. | |
void | setEntryPoint (const String &entryPoint) |
Sets the entry point for this program ie the first method called. | |
void | setTarget (const String &target) |
Sets the shader target to compile down to, e.g. | |
![]() | |
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 () | |
GpuProgram * | _getBindingDelegate (void) |
Returns the GpuProgram which should be bound to the pipeline. | |
virtual size_t | calculateSize (void) const |
Calculate the size of a resource; this will only be called after 'load'. | |
GpuProgramParametersSharedPtr | createParameters (void) |
Creates a new parameters object compatible with this program definition. | |
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. | |
![]() | |
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 | 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. | |
![]() | |
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. | |
![]() | |
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. | |
Public Attributes | |
bool | mReinterpretingGS |
Additional Inherited Members | |
![]() | |
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... | |
![]() | |
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 const String | getProgramTypeName (GpuProgramType programType) |
![]() | |
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. | |
Specialization of HighLevelGpuProgram to provide support for D3D11 High-Level Shader Language (HLSL).
Ogre::D3D11HLSLProgram::D3D11HLSLProgram | ( | ResourceManager * | creator, |
const String & | name, | ||
ResourceHandle | handle, | ||
const String & | group, | ||
bool | isManual, | ||
ManualResourceLoader * | loader, | ||
D3D11Device & | device | ||
) |
Ogre::D3D11HLSLProgram::~D3D11HLSLProgram | ( | ) |
Sets the entry point for this program ie the first method called.
Gets the entry point defined for this program.
Sets the shader target to compile down to, e.g.
'vs_1_1'.
Gets the shader target to compile down to, e.g.
'vs_1_1'.
Gets the shader target promoted to the first compatible, e.g.
'vs_4_0' or 'ps_4_0' if backward compatibility is enabled.
Sets whether matrix packing in column-major order.
Gets whether matrix packed in column-major order.
|
inline |
Sets whether backwards compatibility is enabled.
Gets whether backwards compatibility is enabled.
Overridden from GpuProgram.
Reimplemented from Ogre::GpuProgram.
|
virtual |
Overridden from GpuProgram.
Reimplemented from Ogre::GpuProgram.
Overridden from GpuProgram.
Reimplemented from Ogre::GpuProgram.
Build the constant definition map, must be overridden.
Implements Ogre::HighLevelGpuProgram.
ID3D11VertexShader * Ogre::D3D11HLSLProgram::getVertexShader | ( | void | ) | const |
ID3D11PixelShader * Ogre::D3D11HLSLProgram::getPixelShader | ( | void | ) | const |
ID3D11GeometryShader * Ogre::D3D11HLSLProgram::getGeometryShader | ( | void | ) | const |
ID3D11DomainShader * Ogre::D3D11HLSLProgram::getDomainShader | ( | void | ) | const |
ID3D11HullShader * Ogre::D3D11HLSLProgram::getHullShader | ( | void | ) | const |
ID3D11ComputeShader * Ogre::D3D11HLSLProgram::getComputeShader | ( | void | ) | const |
ID3D11Buffer * Ogre::D3D11HLSLProgram::getConstantBuffer | ( | GpuProgramParametersSharedPtr | params, |
uint16 | variabilityMask | ||
) |
void Ogre::D3D11HLSLProgram::getConstantBuffers | ( | ID3D11Buffer ** | buffers, |
unsigned int & | numBuffers, | ||
ID3D11ClassInstance ** | classes, | ||
unsigned int & | numInstances, | ||
GpuProgramParametersSharedPtr | params, | ||
uint16 | variabilityMask | ||
) |
void Ogre::D3D11HLSLProgram::CreateVertexShader | ( | ) |
void Ogre::D3D11HLSLProgram::CreatePixelShader | ( | ) |
void Ogre::D3D11HLSLProgram::CreateGeometryShader | ( | ) |
void Ogre::D3D11HLSLProgram::CreateDomainShader | ( | ) |
void Ogre::D3D11HLSLProgram::CreateHullShader | ( | ) |
void Ogre::D3D11HLSLProgram::CreateComputeShader | ( | ) |
|
inlinevirtual |
shortcut as we there is no low-level separation here
Reimplemented from Ogre::GpuProgram.
Internal load implementation, must be implemented by subclasses.
Implements Ogre::GpuProgram.
Internal implementation of the meat of the 'prepare' action.
Reimplemented from Ogre::Resource.
uint32 Ogre::D3D11HLSLProgram::getNameForMicrocodeCache | ( | ) |
const D3D11_SIGNATURE_PARAMETER_DESC & Ogre::D3D11HLSLProgram::getInputParamDesc | ( | unsigned int | index | ) | const |
const D3D11_SIGNATURE_PARAMETER_DESC & Ogre::D3D11HLSLProgram::getOutputParamDesc | ( | unsigned int | index | ) | const |
bool Ogre::D3D11HLSLProgram::mReinterpretingGS |