Go to the documentation of this file.
28 #ifndef __Technique_H__
29 #define __Technique_H__
59 IPS_COMPILE_DISABLED = -1,
83 void clearIlluminationPasses(
void);
85 bool checkManuallyOrganisedIlluminationPasses();
129 : vendor(
GPU_UNKNOWN), includeOrExclude(EXCLUDE) {}
131 : vendor(v), includeOrExclude(ie) {}
140 : includeOrExclude(EXCLUDE), caseSensitive(false) {}
142 : devicePattern(pattern), includeOrExclude(ie), caseSensitive(caseSen) {}
160 bool isSupported(
void)
const;
164 String _compile(
bool autoManageTextureUnits);
170 void _compileIlluminationPasses(
void);
171 size_t calculateSize(
void)
const;
183 Pass* createPass(
void);
185 Pass* getPass(
unsigned short index);
191 unsigned short getNumPasses(
void)
const;
193 void removePass(
unsigned short index);
195 void removeAllPasses(
void);
199 bool movePass(
const unsigned short sourceIndex,
const unsigned short destinationIndex);
213 const String& getResourceGroup(
void)
const;
223 bool isTransparent(
void)
const;
230 bool isTransparentSortingEnabled(
void)
const;
237 bool isTransparentSortingForced(
void)
const;
242 void _unprepare(
void);
249 bool isLoaded(
void)
const;
252 void _notifyNeedsRecompile(
void);
271 void setShadowReceiverMaterial(
const Ogre::String &name);
286 void setPointSize(
Real ps);
356 void setShininess(
Real val);
366 void setSelfIllumination(
Real red,
Real green,
Real blue);
376 void setSelfIllumination(
const ColourValue& selfIllum);
386 void setDepthCheckEnabled(
bool enabled);
396 void setDepthWriteEnabled(
bool enabled);
416 void setColourWriteEnabled(
bool enabled);
446 void setLightingEnabled(
bool enabled);
470 Real expDensity = 0.001,
Real linearStart = 0.0,
Real linearEnd = 1.0 );
480 void setDepthBias(
float constantBias,
float slopeScaleBias);
499 void setTextureAnisotropy(
unsigned int maxAniso);
557 void setLodIndex(
unsigned short index);
578 void setSchemeName(
const String& schemeName);
582 const String& getSchemeName(
void)
const;
585 unsigned short _getSchemeIndex(
void)
const;
588 bool isDepthWriteEnabled(
void)
const;
591 bool isDepthCheckEnabled(
void)
const;
594 bool hasColourWriteDisabled(
void)
const;
601 void setName(
const String& name);
634 void addGPUVendorRule(
GPUVendor vendor, IncludeOrExclude includeOrExclude);
648 void addGPUVendorRule(
const GPUVendorRule& rule);
652 void removeGPUVendorRule(
GPUVendor vendor);
674 void addGPUDeviceNameRule(
const String& devicePattern,
IncludeOrExclude includeOrExclude,
bool caseSensitive =
false);
693 void removeGPUDeviceNameRule(
const String& devicePattern);
GPUDeviceNameRule(const String &pattern, IncludeOrExclude ie, bool caseSen)
VectorIterator< IlluminationPassList > IlluminationPassIterator
vector< GPUVendorRule >::type GPUVendorRuleList
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
IncludeOrExclude includeOrExclude
vector< Pass * >::type Passes
ConstVectorIterator< GPUDeviceNameRuleList > GPUDeviceNameRuleIterator
UserObjectBindings mUserObjectBindings
IlluminationPassList mIlluminationPasses
List of derived passes, categorised into IlluminationStage (ordered)
Concrete IteratorWrapper for nonconst access to the underlying container.
MaterialPtr mShadowCasterMaterial
When casting shadow, if not using default Ogre shadow casting material, or nor using fixed function c...
GPUVendor
Enumeration of GPU vendors.
Class encapsulates rendering properties of an object.
String mName
Optional name for the technique.
TextureFilterOptions
High-level filtering options providing shortcuts to settings the minification, magnification and mip ...
vector< IlluminationPass * >::type IlluminationPassList
unsigned short mSchemeIndex
Scheme index, derived from scheme name but the names are held on MaterialManager, for speed an index ...
UserObjectBindings & getUserObjectBindings()
Return an instance of user objects binding associated with this class.
StringStream StrStreamType
Class defining a single pass of a Technique (of a Material), i.e.
Class representing an approach to rendering this particular Material.
IncludeOrExclude
Directive used to manually control technique support based on the inclusion or exclusion of some fact...
Class that provides convenient interface to establish a linkage between custom user application objec...
IlluminationPassesState
Illumination pass state type.
CompareFunction
Comparison functions used for the depth/stencil buffer operations and others.
Rule controlling whether technique is deemed supported based on GPU device name.
VectorIterator< Passes > PassIterator
unsigned short getLodIndex(void) const
Gets the level-of-detail index assigned to this Technique.
SceneBlendFactor
Blending factors for manually blending objects with the scene.
GPUVendorRule(GPUVendor v, IncludeOrExclude ie)
map< String, String >::type AliasTextureNamePairList
Alias / Texture name pair (first = alias, second = texture name)
MaterialPtr mShadowReceiverMaterial
When receiving shadow, if not using default Ogre shadow receiving material, or nor using fixed functi...
String mShadowCasterMaterialName
When casting shadow, if not using default Ogre shadow casting material, or nor using fixed function c...
IncludeOrExclude includeOrExclude
Material * getParent(void) const
Gets the parent Material.
CullingMode
Hardware culling modes based on vertex winding.
unsigned short mLodIndex
LOD level.
static const ColourValue White
String mShadowReceiverMaterialName
When receiving shadow, if not using default Ogre shadow receiving material, or nor using fixed functi...
vector< GPUDeviceNameRule >::type GPUDeviceNameRuleList
Class representing colour.
ShadeOptions
Light shading modes.
Passes mPasses
List of primary passes.
const UserObjectBindings & getUserObjectBindings() const
Return an instance of user objects binding associated with this class.
GPUDeviceNameRuleList mGPUDeviceNameRules
ManualCullingMode
Manual culling modes based on vertex normals.
float Real
Software floating point type.
GPUVendorRuleList mGPUVendorRules
ConstVectorIterator< GPUVendorRuleList > GPUVendorRuleIterator
IlluminationPassesState mIlluminationPassesCompilationPhase
Rule controlling whether technique is deemed supported based on GPU vendor.
const String & getName(void) const
Gets the name of the technique.
Concrete IteratorWrapper for const access to the underlying container.
SceneBlendType
Types of blending that you can specify between an object and the existing contents of the scene.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Tue Apr 13 2021 08:53:15