28 #ifndef __Technique_H__
29 #define __Technique_H__
59 IPS_COMPILE_DISABLED = -1,
81 void clearIlluminationPasses(
void);
83 bool checkManuallyOrganisedIlluminationPasses();
127 : vendor(
GPU_UNKNOWN), includeOrExclude(EXCLUDE) {}
129 : vendor(v), includeOrExclude(ie) {}
138 : includeOrExclude(EXCLUDE), caseSensitive(false) {}
140 : devicePattern(pattern), includeOrExclude(ie), caseSensitive(caseSen) {}
158 bool isSupported(
void)
const;
162 String _compile(
bool autoManageTextureUnits);
168 void _compileIlluminationPasses(
void);
181 Pass* createPass(
void);
183 Pass* getPass(
unsigned short index);
189 unsigned short getNumPasses(
void)
const;
191 void removePass(
unsigned short index);
193 void removeAllPasses(
void);
197 bool movePass(
const unsigned short sourceIndex,
const unsigned short destinationIndex);
211 const String& getResourceGroup(
void)
const;
221 bool isTransparent(
void)
const;
228 bool isTransparentSortingEnabled(
void)
const;
235 bool isTransparentSortingForced(
void)
const;
240 void _unprepare(
void);
247 bool isLoaded(
void)
const;
250 void _notifyNeedsRecompile(
void);
269 void setShadowReceiverMaterial(
const Ogre::String &name);
284 void setPointSize(
Real ps);
354 void setShininess(
Real val);
364 void setSelfIllumination(
Real red,
Real green,
Real blue);
374 void setSelfIllumination(
const ColourValue& selfIllum);
384 void setDepthCheckEnabled(
bool enabled);
394 void setDepthWriteEnabled(
bool enabled);
414 void setColourWriteEnabled(
bool enabled);
444 void setLightingEnabled(
bool enabled);
468 Real expDensity = 0.001,
Real linearStart = 0.0,
Real linearEnd = 1.0 );
478 void setDepthBias(
float constantBias,
float slopeScaleBias);
497 void setTextureAnisotropy(
unsigned int maxAniso);
555 void setLodIndex(
unsigned short index);
576 void setSchemeName(
const String& schemeName);
580 const String& getSchemeName(
void)
const;
583 unsigned short _getSchemeIndex(
void)
const;
586 bool isDepthWriteEnabled(
void)
const;
589 bool isDepthCheckEnabled(
void)
const;
592 bool hasColourWriteDisabled(
void)
const;
599 void setName(
const String& name);
632 void addGPUVendorRule(
GPUVendor vendor, IncludeOrExclude includeOrExclude);
646 void addGPUVendorRule(
const GPUVendorRule& rule);
650 void removeGPUVendorRule(
GPUVendor vendor);
672 void addGPUDeviceNameRule(
const String& devicePattern,
IncludeOrExclude includeOrExclude,
bool caseSensitive =
false);
691 void removeGPUDeviceNameRule(
const String& devicePattern);
ConstVectorIterator< GPUVendorRuleList > GPUVendorRuleIterator
ManualCullingMode
Manual culling modes based on vertex normals.
float Real
Software floating point type.
IncludeOrExclude
Directive used to manually control technique support based on the inclusion or exclusion of some fact...
GPUVendorRuleList mGPUVendorRules
MaterialPtr mShadowCasterMaterial
When casting shadow, if not using default Ogre shadow casting material, or nor using fixed function c...
IlluminationPassList mIlluminationPasses
List of derived passes, categorised into IlluminationStage (ordered)
GPUDeviceNameRule(const String &pattern, IncludeOrExclude ie, bool caseSen)
Class representing colour.
static const ColourValue White
String mShadowCasterMaterialName
When casting shadow, if not using default Ogre shadow casting material, or nor using fixed function c...
StringStream StrStreamType
SceneBlendType
Types of blending that you can specify between an object and the existing contents of the scene...
Class encapsulates rendering properties of an object.
Class representing an approach to rendering this particular Material.
SceneBlendFactor
Blending factors for manually blending objects with the scene.
Class defining a single pass of a Technique (of a Material), i.e.
CullingMode
Hardware culling modes based on vertex winding.
vector< GPUVendorRule >::type GPUVendorRuleList
GPUVendorRule(GPUVendor v, IncludeOrExclude ie)
IlluminationPassesState mIlluminationPassesCompilationPhase
IncludeOrExclude includeOrExclude
ConstVectorIterator< GPUDeviceNameRuleList > GPUDeviceNameRuleIterator
unsigned short mSchemeIndex
Scheme index, derived from scheme name but the names are held on MaterialManager, for speed an index ...
ShadeOptions
Light shading modes.
VectorIterator< Passes > PassIterator
String mShadowReceiverMaterialName
When receiving shadow, if not using default Ogre shadow receiving material, or nor using fixed functi...
IncludeOrExclude includeOrExclude
Concrete IteratorWrapper for const access to the underlying container.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Passes mPasses
List of primary passes.
GPUVendor
Enumeration of GPU vendors.
Material * getParent(void) const
Gets the parent Material.
UserObjectBindings mUserObjectBindings
Rule controlling whether technique is deemed supported based on GPU vendor.
UserObjectBindings & getUserObjectBindings()
Return an instance of user objects binding associated with this class.
const String & getName(void) const
Gets the name of the technique.
vector< Pass * >::type Passes
vector< GPUDeviceNameRule >::type GPUDeviceNameRuleList
Rule controlling whether technique is deemed supported based on GPU device name.
vector< IlluminationPass * >::type IlluminationPassList
VectorIterator< IlluminationPassList > IlluminationPassIterator
unsigned short mLodIndex
LOD level.
Specialisation of SharedPtr to allow SharedPtr to be assigned to MaterialPtr.
MaterialPtr mShadowReceiverMaterial
When receiving shadow, if not using default Ogre shadow receiving material, or nor using fixed functi...
Concrete IteratorWrapper for nonconst access to the underlying container.
map< String, String >::type AliasTextureNamePairList
Alias / Texture name pair (first = alias, second = texture name)
CompareFunction
Comparison functions used for the depth/stencil buffer operations and others.
const UserObjectBindings & getUserObjectBindings() const
Return an instance of user objects binding associated with this class.
unsigned short getLodIndex(void) const
Gets the level-of-detail index assigned to this Technique.
Class that provide convenient interface to establish a linkage between custom user application object...
TextureFilterOptions
High-level filtering options providing shortcuts to settings the minification, magnification and mip ...
GPUDeviceNameRuleList mGPUDeviceNameRules