OGRE  1.8
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
OgreRenderSystem.h
Go to the documentation of this file.
1 /*
2 -----------------------------------------------------------------------------
3 This source file is part of OGRE
4 (Object-oriented Graphics Rendering Engine)
5 For the latest info, see http://www.ogre3d.org
6 
7 Copyright (c) 2000-2013 Torus Knot Software Ltd
8 
9 Permission is hereby granted, free of charge, to any person obtaining a copy
10 of this software and associated documentation files (the "Software"), to deal
11 in the Software without restriction, including without limitation the rights
12 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 copies of the Software, and to permit persons to whom the Software is
14 furnished to do so, subject to the following conditions:
15 
16 The above copyright notice and this permission notice shall be included in
17 all copies or substantial portions of the Software.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 THE SOFTWARE.
26 -----------------------------------------------------------------------------
27 */
28 #ifndef __RenderSystem_H_
29 #define __RenderSystem_H_
30 
31 // Precompiler options
32 #include "OgrePrerequisites.h"
33 
34 #include "OgreString.h"
35 
36 #include "OgreTextureUnitState.h"
37 #include "OgreCommon.h"
38 
39 #include "OgreMaterialManager.h"
40 #include "OgreRenderOperation.h"
42 #include "OgreRenderTarget.h"
43 #include "OgreRenderTexture.h"
44 #include "OgreFrameListener.h"
45 #include "OgreConfigOptionMap.h"
46 #include "OgreGpuProgram.h"
47 #include "OgrePlane.h"
48 #include "OgreIteratorWrappers.h"
49 
50 namespace Ogre
51 {
63 
64  class TextureManager;
67  {
78  };
81  {
98  };
99 
100 
125  {
126  public:
129  RenderSystem();
130 
133  virtual ~RenderSystem();
134 
137  virtual const String& getName(void) const = 0;
138 
160  virtual ConfigOptionMap& getConfigOptions(void) = 0;
161 
181  virtual void setConfigOption(const String &name, const String &value) = 0;
182 
185  virtual HardwareOcclusionQuery* createHardwareOcclusionQuery(void) = 0;
186 
189  virtual void destroyHardwareOcclusionQuery(HardwareOcclusionQuery *hq);
190 
195  virtual String validateConfigOptions(void) = 0;
196 
213  virtual RenderWindow* _initialise(bool autoCreateWindow, const String& windowTitle = "OGRE Render Window");
214 
215 
217  virtual RenderSystemCapabilities* createRenderSystemCapabilities() const = 0;
218 
226  RenderSystemCapabilities* getMutableCapabilities(){ return mCurrentCapabilities; }
227 
234  virtual void useCustomRenderSystemCapabilities(RenderSystemCapabilities* capabilities);
235 
238  virtual void reinitialise(void) = 0;
239 
242  virtual void shutdown(void);
243 
244 
247  virtual void setAmbientLight(float r, float g, float b) = 0;
248 
251  virtual void setShadingType(ShadeOptions so) = 0;
252 
258  virtual void setLightingEnabled(bool enabled) = 0;
259 
266  void setWBufferEnabled(bool enabled);
267 
270  bool getWBufferEnabled(void) const;
271 
508  virtual RenderWindow* _createRenderWindow(const String &name, unsigned int width, unsigned int height,
509  bool fullScreen, const NameValuePairList *miscParams = 0) = 0;
510 
526  virtual bool _createRenderWindows(const RenderWindowDescriptionList& renderWindowDescriptions,
527  RenderWindowList& createdWindows);
528 
529 
534  virtual MultiRenderTarget * createMultiRenderTarget(const String & name) = 0;
535 
537  virtual void destroyRenderWindow(const String& name);
539  virtual void destroyRenderTexture(const String& name);
541  virtual void destroyRenderTarget(const String& name);
542 
545  virtual void attachRenderTarget( RenderTarget &target );
549  virtual RenderTarget * getRenderTarget( const String &name );
555  virtual RenderTarget * detachRenderTarget( const String &name );
556 
559 
562  return RenderTargetIterator( mRenderTargets.begin(), mRenderTargets.end() );
563  }
566  virtual String getErrorDescription(long errorNumber) const = 0;
567 
581  void setWaitForVerticalBlank(bool enabled);
582 
585  bool getWaitForVerticalBlank(void) const;
586 
589  HardwareVertexBufferSharedPtr getGlobalInstanceVertexBuffer() const;
592  void setGlobalInstanceVertexBuffer(const HardwareVertexBufferSharedPtr val);
595  VertexDeclaration* getGlobalInstanceVertexBufferVertexDeclaration() const;
598  void setGlobalInstanceVertexBufferVertexDeclaration( VertexDeclaration* val);
601  size_t getGlobalNumberOfInstances() const;
604  void setGlobalNumberOfInstances(const size_t val);
605 
606 #ifdef RTSHADER_SYSTEM_BUILD_CORE_SHADERS
607 
609  void setFixedPipelineEnabled(bool enabled);
610 
613  bool getFixedPipelineEnabled(void) const;
614 #endif
615 
621  virtual void setDepthBufferFor( RenderTarget *renderTarget );
622 
623  // ------------------------------------------------------------------------
624  // Internal Rendering Access
625  // All methods below here are normally only called by other OGRE classes
626  // They can be called by library user if required
627  // ------------------------------------------------------------------------
628 
629 
633  virtual void _useLights(const LightList& lights, unsigned short limit) = 0;
636  virtual bool areFixedFunctionLightsInViewSpace() const { return false; }
638  virtual void _setWorldMatrix(const Matrix4 &m) = 0;
640  virtual void _setWorldMatrices(const Matrix4* m, unsigned short count);
642  virtual void _setViewMatrix(const Matrix4 &m) = 0;
644  virtual void _setProjectionMatrix(const Matrix4 &m) = 0;
650  virtual void _setTextureUnitSettings(size_t texUnit, TextureUnitState& tl);
652  virtual void _disableTextureUnit(size_t texUnit);
654  virtual void _disableTextureUnitsFrom(size_t texUnit);
688  virtual void _setSurfaceParams(const ColourValue &ambient,
689  const ColourValue &diffuse, const ColourValue &specular,
690  const ColourValue &emissive, Real shininess,
691  TrackVertexColourType tracking = TVC_NONE) = 0;
692 
698  virtual void _setPointSpritesEnabled(bool enabled) = 0;
699 
710  virtual void _setPointParameters(Real size, bool attenuationEnabled,
711  Real constant, Real linear, Real quadratic, Real minSize, Real maxSize) = 0;
712 
713 
726  virtual void _setTexture(size_t unit, bool enabled,
727  const TexturePtr &texPtr) = 0;
741  virtual void _setTexture(size_t unit, bool enabled, const String &texname);
742 
752  virtual void _setVertexTexture(size_t unit, const TexturePtr& tex);
753 
763  virtual void _setTextureCoordSet(size_t unit, size_t index) = 0;
764 
772  virtual void _setTextureCoordCalculation(size_t unit, TexCoordCalcMethod m,
773  const Frustum* frustum = 0) = 0;
774 
781  virtual void _setTextureBlendMode(size_t unit, const LayerBlendModeEx& bm) = 0;
782 
789  virtual void _setTextureUnitFiltering(size_t unit, FilterOptions minFilter,
790  FilterOptions magFilter, FilterOptions mipFilter);
791 
797  virtual void _setTextureUnitFiltering(size_t unit, FilterType ftype, FilterOptions filter) = 0;
798 
800  virtual void _setTextureLayerAnisotropy(size_t unit, unsigned int maxAnisotropy) = 0;
801 
803  virtual void _setTextureAddressingMode(size_t unit, const TextureUnitState::UVWAddressingMode& uvw) = 0;
804 
806  virtual void _setTextureBorderColour(size_t unit, const ColourValue& colour) = 0;
807 
816  virtual void _setTextureMipmapBias(size_t unit, float bias) = 0;
817 
822  virtual void _setTextureMatrix(size_t unit, const Matrix4& xform) = 0;
823 
834  virtual void _setSceneBlending(SceneBlendFactor sourceFactor, SceneBlendFactor destFactor, SceneBlendOperation op = SBO_ADD) = 0;
835 
848  virtual void _setSeparateSceneBlending(SceneBlendFactor sourceFactor, SceneBlendFactor destFactor, SceneBlendFactor sourceFactorAlpha,
849  SceneBlendFactor destFactorAlpha, SceneBlendOperation op = SBO_ADD, SceneBlendOperation alphaOp = SBO_ADD) = 0;
850 
857  virtual void _setAlphaRejectSettings(CompareFunction func, unsigned char value, bool alphaToCoverage) = 0;
858 
862  virtual void _setTextureProjectionRelativeTo(bool enabled, const Vector3& pos);
863 
871  virtual DepthBuffer* _createDepthBufferFor( RenderTarget *renderTarget ) = 0;
872 
880  void _cleanupDepthBuffers( bool bCleanManualBuffers=true );
881 
886  virtual void _beginFrame(void) = 0;
887 
888  //Dummy structure for render system contexts - implementing RenderSystems can extend
889  //as needed
896  virtual RenderSystemContext* _pauseFrame(void);
903  virtual void _resumeFrame(RenderSystemContext* context);
904 
908  virtual void _endFrame(void) = 0;
916  virtual void _setViewport(Viewport *vp) = 0;
918  virtual Viewport* _getViewport(void);
919 
931  virtual void _setCullingMode(CullingMode mode) = 0;
932 
933  virtual CullingMode _getCullingMode(void) const;
934 
948  virtual void _setDepthBufferParams(bool depthTest = true, bool depthWrite = true, CompareFunction depthFunction = CMPF_LESS_EQUAL) = 0;
949 
954  virtual void _setDepthBufferCheckEnabled(bool enabled = true) = 0;
959  virtual void _setDepthBufferWriteEnabled(bool enabled = true) = 0;
967  virtual void _setDepthBufferFunction(CompareFunction func = CMPF_LESS_EQUAL) = 0;
975  virtual void _setColourBufferWriteEnabled(bool red, bool green, bool blue, bool alpha) = 0;
998  virtual void _setDepthBias(float constantBias, float slopeScaleBias = 0.0f) = 0;
1010  virtual void _setFog(FogMode mode = FOG_NONE, const ColourValue& colour = ColourValue::White, Real expDensity = 1.0, Real linearStart = 0.0, Real linearEnd = 1.0) = 0;
1011 
1012 
1014  virtual void _beginGeometryCount(void);
1016  virtual unsigned int _getFaceCount(void) const;
1018  virtual unsigned int _getBatchCount(void) const;
1020  virtual unsigned int _getVertexCount(void) const;
1021 
1030  virtual void convertColourValue(const ColourValue& colour, uint32* pDest);
1034  virtual VertexElementType getColourVertexElementType(void) const = 0;
1035 
1042  virtual void _convertProjectionMatrix(const Matrix4& matrix,
1043  Matrix4& dest, bool forGpuProgram = false) = 0;
1044 
1051  virtual void _makeProjectionMatrix(const Radian& fovy, Real aspect, Real nearPlane, Real farPlane,
1052  Matrix4& dest, bool forGpuProgram = false) = 0;
1053 
1060  virtual void _makeProjectionMatrix(Real left, Real right, Real bottom, Real top,
1061  Real nearPlane, Real farPlane, Matrix4& dest, bool forGpuProgram = false) = 0;
1068  virtual void _makeOrthoMatrix(const Radian& fovy, Real aspect, Real nearPlane, Real farPlane,
1069  Matrix4& dest, bool forGpuProgram = false) = 0;
1070 
1087  virtual void _applyObliqueDepthProjection(Matrix4& matrix, const Plane& plane,
1088  bool forGpuProgram) = 0;
1089 
1091  virtual void _setPolygonMode(PolygonMode level) = 0;
1092 
1099  virtual void setStencilCheckEnabled(bool enabled) = 0;
1115  /*virtual bool hasHardwareStencil(void) = 0;*/
1116 
1152  virtual void setStencilBufferParams(CompareFunction func = CMPF_ALWAYS_PASS,
1153  uint32 refValue = 0, uint32 mask = 0xFFFFFFFF,
1154  StencilOperation stencilFailOp = SOP_KEEP,
1155  StencilOperation depthFailOp = SOP_KEEP,
1156  StencilOperation passOp = SOP_KEEP,
1157  bool twoSidedOperation = false) = 0;
1158 
1159 
1160 
1162  virtual void setVertexDeclaration(VertexDeclaration* decl) = 0;
1164  virtual void setVertexBufferBinding(VertexBufferBinding* binding) = 0;
1165 
1176  virtual void setNormaliseNormals(bool normalise) = 0;
1177 
1190  virtual void _render(const RenderOperation& op);
1191 
1193  const RenderSystemCapabilities* getCapabilities(void) const { return mCurrentCapabilities; }
1194 
1195 
1198  virtual const DriverVersion& getDriverVersion(void) const { return mDriverVersion; }
1199 
1209  virtual const String& _getDefaultViewportMaterialScheme(void) const;
1210 
1215  virtual void bindGpuProgram(GpuProgram* prg);
1216 
1222  virtual void bindGpuProgramParameters(GpuProgramType gptype,
1223  GpuProgramParametersSharedPtr params, uint16 variabilityMask) = 0;
1224 
1227  virtual void bindGpuProgramPassIterationParameters(GpuProgramType gptype) = 0;
1232  virtual void unbindGpuProgram(GpuProgramType gptype);
1233 
1235  virtual bool isGpuProgramBound(GpuProgramType gptype);
1236 
1239  virtual void setClipPlanes(const PlaneList& clipPlanes);
1240 
1242  virtual void addClipPlane (const Plane &p);
1244  virtual void addClipPlane (Real A, Real B, Real C, Real D);
1245 
1248  virtual void resetClipPlanes();
1249 
1251  virtual void _initRenderTargets(void);
1252 
1256  virtual void _notifyCameraRemoved(const Camera* cam);
1257 
1259  virtual void _updateAllRenderTargets(bool swapBuffers = true);
1262  virtual void _swapAllRenderTargetBuffers(bool waitForVsync = true);
1263 
1266  virtual void setInvertVertexWinding(bool invert);
1267 
1271  virtual bool getInvertVertexWinding(void) const;
1272 
1284  virtual void setScissorTest(bool enabled, size_t left = 0, size_t top = 0,
1285  size_t right = 800, size_t bottom = 600) = 0;
1286 
1294  virtual void clearFrameBuffer(unsigned int buffers,
1295  const ColourValue& colour = ColourValue::Black,
1296  Real depth = 1.0f, unsigned short stencil = 0) = 0;
1306  virtual Real getHorizontalTexelOffset(void) = 0;
1316  virtual Real getVerticalTexelOffset(void) = 0;
1317 
1326  virtual Real getMinimumDepthInputValue(void) = 0;
1335  virtual Real getMaximumDepthInputValue(void) = 0;
1341  virtual void setCurrentPassIterationCount(const size_t count) { mCurrentPassIterationCount = count; }
1342 
1352  virtual void setDeriveDepthBias(bool derive, float baseValue = 0.0f,
1353  float multiplier = 0.0f, float slopeScale = 0.0f)
1354  {
1355  mDerivedDepthBias = derive;
1356  mDerivedDepthBiasBase = baseValue;
1357  mDerivedDepthBiasMultiplier = multiplier;
1358  mDerivedDepthBiasSlopeScale = slopeScale;
1359  }
1360 
1364  virtual void _setRenderTarget(RenderTarget *target) = 0;
1365 
1371  {
1372  public:
1374  virtual ~Listener() {}
1375 
1381  virtual void eventOccurred(const String& eventName,
1382  const NameValuePairList* parameters = 0) = 0;
1383  };
1397  virtual void addListener(Listener* l);
1400  virtual void removeListener(Listener* l);
1401 
1406  virtual const StringVector& getRenderSystemEvents(void) const { return mEventNames; }
1407 
1424  virtual void preExtraThreadsStarted() = 0;
1425 
1426  /* Tell the rendersystem to perform any tasks it needs to directly
1427  after other threads which might access the rendering API are registered.
1428  @see RenderSystem::preExtraThreadsStarted
1429  */
1430  virtual void postExtraThreadsStarted() = 0;
1431 
1444  virtual void registerThread() = 0;
1445 
1449  virtual void unregisterThread() = 0;
1450 
1455  virtual unsigned int getDisplayMonitorCount() const = 0;
1456 
1460  virtual void beginProfileEvent( const String &eventName ) = 0;
1461 
1465  virtual void endProfileEvent( void ) = 0;
1466 
1471  virtual void markProfileEvent( const String &event ) = 0;
1472 
1473  protected:
1474 
1477 
1484 
1489 
1490  // Texture manager
1491  // A concrete class of this will be created and
1492  // made available under the TextureManager singleton,
1493  // managed by the RenderSystem
1495 
1496  // Active viewport (dest for future rendering operations)
1498 
1500 
1501  bool mVSync;
1502  unsigned int mVSyncInterval;
1503  bool mWBuffer;
1504 
1505  size_t mBatchCount;
1506  size_t mFaceCount;
1508 
1510  ColourValue mManualBlendColours[OGRE_MAX_TEXTURE_LAYERS][2];
1511 
1513 
1516 
1525 
1532 
1533 #ifdef RTSHADER_SYSTEM_BUILD_CORE_SHADERS
1534  bool mEnableFixedPipeline;
1536 #endif
1537 
1542  bool updatePassIterationRenderState(void);
1543 
1546 
1548  virtual void fireEvent(const String& name, const NameValuePairList* params = 0);
1549 
1552 
1555 
1559 
1560  // Recording user clip planes
1562  // Indicator that we need to re-set the clip planes on next render call
1564 
1569 
1571  virtual void setClipPlanesImpl(const PlaneList& clipPlanes) = 0;
1572 
1574  virtual void initialiseFromRenderSystemCapabilities(RenderSystemCapabilities* caps, RenderTarget* primary) = 0;
1575 
1576 
1578 
1581 
1582 
1583 
1584  };
1587 }
1588 
1589 #endif
virtual const DriverVersion & getDriverVersion(void) const
Returns the driver version.
Manages the target rendering window.
A 'canvas' which can receive the results of a rendering operation.
GpuProgramParametersSharedPtr mActiveFragmentGpuProgramParameters
A viewpoint from which the scene will be rendered.
Definition: OgreCamera.h:86
RenderSystemCapabilities * mCurrentCapabilities
Class encapsulating a standard 4x4 homogeneous matrix.
Definition: OgreMatrix4.h:78
float Real
Software floating point type.
unsigned int uint32
Definition: OgrePlatform.h:270
#define _OgreExport
Definition: OgrePlatform.h:233
std::vector< T, A > type
GpuProgramParametersSharedPtr mActiveGeometryGpuProgramParameters
Records the state of all the vertex buffer bindings required to provide a vertex declaration with the...
map< String, String >::type NameValuePairList
Name / value parameter pair (first = name, second = value)
Definition: OgreCommon.h:553
bool mDerivedDepthBias
Whether to update the depth bias per render call.
Defines a plane in 3D space.
Definition: OgrePlane.h:61
FogMode
Fog modes.
Definition: OgreCommon.h:124
Leave the stencil buffer unchanged.
map< String, RenderTarget * >::type RenderTargetMap
Class for loading & managing textures.
Class representing colour.
GpuProgramType
Enumerates the types of programs which can run on the GPU.
static const ColourValue White
A frustum represents a pyramid, capped at the near and far end which is used to represent either a vi...
Definition: OgreFrustum.h:85
virtual void setCurrentPassIterationCount(const size_t count)
set the current multi pass count value.
StringVector mEventNames
List of names of events this rendersystem may raise.
RenderSystemCapabilities * mRealCapabilities
Used to store the capabilities of the graphics card.
Defines a program which runs on the GPU such as a vertex or fragment program.
VertexDeclaration * mGlobalInstanceVertexBufferVertexDeclaration
a vertex declaration for the global vertex buffer for the global instancing
TexCoordCalcMethod
Enum describing the ways to generate texture coordinates.
MapIterator< Ogre::RenderTargetMap > RenderTargetIterator
Iterator over RenderTargets.
Shared pointer implementation used to share index buffers.
FilterType
Definition: OgreCommon.h:93
vector< DepthBuffer * >::type DepthBufferVec
Invert the bits of the stencil buffer.
SceneBlendFactor
Blending factors for manually blending objects with the scene.
Environment map based on vertex positions.
RenderTarget * mActiveRenderTarget
The Active render target.
size_t mGlobalNumberOfInstances
the number of global instances (this number will be multiply by the render op instance number) ...
CullingMode
Hardware culling modes based on vertex winding.
Definition: OgreCommon.h:138
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
No fog. Duh.
Definition: OgreCommon.h:127
This class represents a render target that renders to multiple RenderTextures at once.
Decrease the stencil value by 1, wrapping when decrementing 0.
No calculated texture coordinates.
This is a abstract class that that provides the interface for the query class for hardware occlusion...
vector< RenderWindow * >::type RenderWindowList
Render window container.
Definition: OgreCommon.h:767
ListenerList mEventListeners
RenderTargetPriorityMap mPrioritisedRenderTargets
The render targets, ordered by priority.
Increase the stencil value by 1, clamping at the maximum value.
vector< Plane >::type PlaneList
Definition: OgrePlane.h:160
HardwareOcclusionQueryList mHwOcclusionQueries
#define OGRE_MAX_TEXTURE_LAYERS
Define max number of texture layers allowed per pass on any card.
Definition: OgreConfig.h:70
DepthBufferMap mDepthBufferPool
DepthBuffers to be attached to render targets.
size_t mDisabledTexUnitsFrom
Texture units from this upwards are disabled.
virtual const StringVector & getRenderSystemEvents(void) const
Gets a list of the rendersystem specific events that this rendersystem can raise. ...
An abstract class that contains a depth/stencil buffer.
DriverVersion is used by RenderSystemCapabilities and both GL and D3D9 to store the version of the cu...
virtual RenderTargetIterator getRenderTargetIterator(void)
Returns a specialised MapIterator over all render targets attached to the RenderSystem.
const RenderSystemCapabilities * getCapabilities(void) const
Gets the capabilities of the render system.
ShadeOptions
Light shading modes.
Definition: OgreCommon.h:116
Texture addressing mode for each texture coordinate.
map< String, ConfigOption >::type ConfigOptionMap
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Set the stencil value to the reference value.
Specialisation of SharedPtr to allow SharedPtr to be assigned to TexturePtr.
Definition: OgreTexture.h:443
VertexElementType
Vertex element type, used to identify the base types of the vertex contents.
vector< String >::type StringVector
RenderSystemCapabilities * getMutableCapabilities()
Get a pointer to the current capabilities being used by the RenderSystem.
DriverVersion mDriverVersion
size_t mCurrentPassIterationCount
number of times to render the current state
Standard 3-dimensional vector.
Definition: OgreVector3.h:51
GpuProgramParametersSharedPtr mActiveVertexGpuProgramParameters
The Active GPU programs and gpu program parameters.
virtual void setDeriveDepthBias(bool derive, float baseValue=0.0f, float multiplier=0.0f, float slopeScale=0.0f)
Tell the render system whether to derive a depth bias on its own based on the values passed to it in ...
An abstraction of a viewport, i.e.
Definition: OgreViewport.h:56
'New' rendering operation using vertex buffers.
Set the stencil value to zero.
This class declares the format of a set of vertex inputs, which can be issued to the rendering API th...
Increase the stencil value by 1, wrapping back to 0 when incrementing the maximum value...
Wrapper class which indicates a given angle value is in Radians.
Definition: OgreMath.h:46
virtual bool areFixedFunctionLightsInViewSpace() const
Are fixed-function lights provided in view space? Affects optimisation.
TextureManager * mTextureManager
PolygonMode
The polygon mode to use when rasterising.
Definition: OgreCommon.h:182
static const ColourValue Black
SceneBlendOperation
Blending operations controls how objects are blended into the scene.
singleton class for storing the capabilities of the graphics card.
list< HardwareOcclusionQuery * >::type HardwareOcclusionQueryList
HardwareVertexBufferSharedPtr mGlobalInstanceVertexBuffer
a global vertex buffer for global instancing
map< uint16, DepthBufferVec >::type DepthBufferMap
_StringBase String
vector< RenderWindowDescription >::type RenderWindowDescriptionList
Render window creation parameters container.
Definition: OgreCommon.h:764
unsigned short uint16
Definition: OgrePlatform.h:271
Decrease the stencil value by 1, clamping at 0.
StencilOperation
Enum describing the various actions which can be taken onthe stencil buffer.
FilterOptions
Filtering options for textures / mipmaps.
Definition: OgreCommon.h:103
Environment map based on vertex normals.
Defines the functionality of a 3D API.
CompareFunction
Comparison functions used for the depth/stencil buffer operations and others.
Definition: OgreCommon.h:67
Class representing the state of a single texture unit during a Pass of a Technique, of a Material.
multimap< uchar, RenderTarget * >::type RenderTargetPriorityMap
int TrackVertexColourType
An enumeration describing which material properties should track the vertex colours.
Definition: OgreCommon.h:279
Class which manages blending of both colour and alpha components.
unsigned int mVSyncInterval
RenderTargetMap mRenderTargets
The render targets.
Defines a listener on the custom events that this render system can raise.
list< Listener * >::type ListenerList