Go to the documentation of this file.
28 #ifndef __GpuProgram_H_
29 #define __GpuProgram_H_
76 String doGet(
const void* target)
const;
77 void doSet(
void* target,
const String& val);
82 String doGet(
const void* target)
const;
83 void doSet(
void* target,
const String& val);
88 String doGet(
const void* target)
const;
89 void doSet(
void* target,
const String& val);
94 String doGet(
const void* target)
const;
95 void doSet(
void* target,
const String& val);
100 String doGet(
const void* target)
const;
101 void doSet(
void* target,
const String& val);
106 String doGet(
const void* target)
const;
107 void doSet(
void* target,
const String& val);
112 String doGet(
const void* target)
const;
113 void doSet(
void* target,
const String& val);
118 String doGet(
const void* target)
const;
119 void doSet(
void* target,
const String& val);
187 void setupBaseParamDictionary(
void);
191 bool isRequiredCapabilitiesSupported(
void)
const;
197 void createParameterMappingStructures(
bool recreateIfExists =
true)
const;
199 void createLogicalParameterMappingStructures(
bool recreateIfExists =
true)
const;
201 void createNamedParameterMappingStructures(
bool recreateIfExists =
true)
const;
214 virtual void setSourceFile(
const String& filename);
220 virtual void setSource(
const String& source);
226 virtual void setSyntaxCode(
const String& syntax);
244 virtual bool isSupported(
void)
const;
262 { mSkeletalAnimation = included; }
279 { mMorphAnimation = included; }
289 { mPoseAnimation = poseCount; }
373 virtual const String& getLanguage(
void)
const;
406 virtual void setManualNamedConstantsFile(
const String& paramDefFile);
421 virtual size_t calculateSize(
void)
const;
425 virtual void loadFromSource(
void) = 0;
unsigned long long int ResourceHandle
virtual bool isVertexTextureFetchRequired(void) const
Returns whether this vertex program requires support for vertex texture fetch from the hardware.
virtual const String & getManualNamedConstantsFile() const
Gets the name of a file from which to load named parameters mapping for a program which would not be ...
GpuLogicalBufferStructPtr mFloatLogicalToPhysical
Record of logical to physical buffer maps.
Struct collecting together the information for named constants.
bool mLoadFromFile
Whether we need to load source from file or not.
virtual void resetCompileError(void)
Reset a compile error if it occurred, allowing the load to be retried.
static CmdManualNamedConstsFile msManNamedConstsFileCmd
bool mCompileError
Did we encounter a compilation error?
virtual const String & getSourceFile(void) const
Gets the name of the file used as source for this program.
virtual const String & getSyntaxCode(void) const
Gets the syntax code for this program e.g.
String mSource
The assembler source of the program (may be blank until file loaded)
virtual bool getPassSurfaceAndLightStates(void) const
Returns whether a vertex program wants light and material states to be passed through fixed pipeline ...
static CmdSyntax msSyntaxCmd
static CmdMorph msMorphCmd
Defines a program which runs on the GPU such as a vertex or fragment program.
static CmdSkeletal msSkeletalCmd
bool mNeedsAdjacencyInfo
Does this (geometry) program require adjacency information?
virtual bool isMorphAnimationIncluded(void) const
Returns whether a vertex program includes the required instructions to perform morph animation.
virtual void setSkeletalAnimationIncluded(bool included)
Sets whether a vertex program includes the required instructions to perform skeletal animation.
GpuLogicalBufferStructPtr mDoubleLogicalToPhysical
Record of logical to physical buffer maps.
virtual bool isSkeletalAnimationIncluded(void) const
Returns whether a vertex program includes the required instructions to perform skeletal animation.
bool mLoadedManualNamedConstants
GpuLogicalBufferStructPtr mIntLogicalToPhysical
Record of logical to physical buffer maps.
virtual const GpuNamedConstants & getConstantDefinitions() const
Get the full list of named constants.
Abstract class which is command object which gets/sets parameters.
GpuProgramType
Enumerates the types of programs which can run on the GPU.
String mSyntaxCode
Syntax code e.g. arbvp1, vs_2_0 etc.
virtual bool isAdjacencyInfoRequired(void) const
Returns whether this geometry program requires adjacency information from the input primitives.
Command object - see ParamCommand.
virtual GpuProgramType getType(void) const
Get the program type.
Defines a generic resource handler.
virtual void setVertexTextureFetchRequired(bool r)
Sets whether this vertex program requires support for vertex texture fetch from the hardware.
virtual bool isPoseAnimationIncluded(void) const
Returns whether a vertex program includes the required instructions to perform pose animation.
virtual void setMorphAnimationIncluded(bool included)
Sets whether a vertex program includes the required instructions to perform morph animation.
virtual ushort getNumberOfPosesIncluded(void) const
Returns the number of simultaneous poses the vertex program can blend, for use in pose animation.
bool mMorphAnimation
Does this (vertex) program include morph animation?
Abstract class representing a loadable resource (e.g.
virtual bool hasCompileError(void) const
Did this program encounter a compile error when loading?
GpuProgramParametersSharedPtr mDefaultParams
The default parameters for use with this object.
virtual void setPoseAnimationIncluded(ushort poseCount)
Sets whether a vertex program includes the required instructions to perform pose animation.
ushort mPoseAnimation
Does this (vertex) program include pose animation (count of number of poses supported)
virtual void setAdjacencyInfoRequired(bool r)
Sets whether this geometry program requires adjacency information from the input primitives.
String mManualNamedConstantsFile
File from which to load named constants manually.
virtual GpuProgram * _getBindingDelegate(void)
Returns the GpuProgram which should be bound to the pipeline.
virtual bool getPassTransformStates(void) const
Returns whether a vertex program wants transform state to be passed through fixed pipeline low level ...
bool mSkeletalAnimation
Does this (vertex) program include skeletal animation?
Interface describing a manual resource loader.
String mFilename
The name of the file to load source from (may be blank)
GpuProgramType mType
The type of the program.
bool mVertexTextureFetch
Does this (vertex) program require support for vertex texture fetch?
virtual bool getPassFogStates(void) const
Returns whether a fragment program wants fog state to be passed through fixed pipeline low level API ...
GpuNamedConstantsPtr mConstantDefs
Parameter name -> ConstantDefinition map, shared instance used by all parameter objects.
virtual const String & getSource(void) const
Gets the assembler source for this program.
static CmdAdjacency msAdjacencyCmd
virtual const GpuNamedConstants & getNamedConstants() const
Get a read-only reference to the named constants registered for this program (manually or automatical...
virtual bool hasDefaultParameters(void) const
Returns true if default parameters have been set up.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.