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 #include "OgreHeaderPrefix.h"
50 
51 namespace Ogre
52 {
64 
65  class TextureManager;
68  {
79  };
82  {
99  };
100 
101 
126  {
127  public:
131 
134  virtual ~RenderSystem();
135 
138  virtual const String& getName(void) const = 0;
139 
161  virtual ConfigOptionMap& getConfigOptions(void) = 0;
162 
182  virtual void setConfigOption(const String &name, const String &value) = 0;
183 
187 
191 
196  virtual String validateConfigOptions(void) = 0;
197 
212  virtual RenderWindow* _initialise(bool autoCreateWindow, const String& windowTitle = "OGRE Render Window");
213 
214  /*
215  Returns whether under the current render system buffers marked as TU_STATIC can be locked for update
216  @remarks
217  Needed in the implementation of DirectX9 with DirectX9Ex driver
218  */
219  virtual bool isStaticBufferLockable() const { return true; }
220 
223 
231  RenderSystemCapabilities* getMutableCapabilities(){ return mCurrentCapabilities; }
232 
240 
243  virtual void reinitialise(void) = 0;
244 
247  virtual void shutdown(void);
248 
249 
252  virtual void setAmbientLight(float r, float g, float b) = 0;
253 
256  virtual void setShadingType(ShadeOptions so) = 0;
257 
263  virtual void setLightingEnabled(bool enabled) = 0;
264 
271  void setWBufferEnabled(bool enabled);
272 
275  bool getWBufferEnabled(void) const;
276 
529  virtual RenderWindow* _createRenderWindow(const String &name, unsigned int width, unsigned int height,
530  bool fullScreen, const NameValuePairList *miscParams = 0) = 0;
531 
547  virtual bool _createRenderWindows(const RenderWindowDescriptionList& renderWindowDescriptions,
548  RenderWindowList& createdWindows);
549 
550 
555  virtual MultiRenderTarget * createMultiRenderTarget(const String & name) = 0;
556 
558  virtual void destroyRenderWindow(const String& name);
560  virtual void destroyRenderTexture(const String& name);
562  virtual void destroyRenderTarget(const String& name);
563 
566  virtual void attachRenderTarget( RenderTarget &target );
570  virtual RenderTarget * getRenderTarget( const String &name );
576  virtual RenderTarget * detachRenderTarget( const String &name );
577 
580 
583  return RenderTargetIterator( mRenderTargets.begin(), mRenderTargets.end() );
584  }
587  virtual String getErrorDescription(long errorNumber) const = 0;
588 
606  void setGlobalNumberOfInstances(const size_t val);
607 
610  void setFixedPipelineEnabled(bool enabled);
611 
614  bool getFixedPipelineEnabled(void) const;
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 
803  virtual void _setTextureUnitCompareEnabled(size_t unit, bool compare) = 0;
804 
805 
810  virtual void _setTextureUnitCompareFunction(size_t unit, CompareFunction function) = 0;
811 
812 
814  virtual void _setTextureLayerAnisotropy(size_t unit, unsigned int maxAnisotropy) = 0;
815 
817  virtual void _setTextureAddressingMode(size_t unit, const TextureUnitState::UVWAddressingMode& uvw) = 0;
818 
820  virtual void _setTextureBorderColour(size_t unit, const ColourValue& colour) = 0;
821 
830  virtual void _setTextureMipmapBias(size_t unit, float bias) = 0;
831 
836  virtual void _setTextureMatrix(size_t unit, const Matrix4& xform) = 0;
837 
848  virtual void _setSceneBlending(SceneBlendFactor sourceFactor, SceneBlendFactor destFactor, SceneBlendOperation op = SBO_ADD) = 0;
849 
862  virtual void _setSeparateSceneBlending(SceneBlendFactor sourceFactor, SceneBlendFactor destFactor, SceneBlendFactor sourceFactorAlpha,
863  SceneBlendFactor destFactorAlpha, SceneBlendOperation op = SBO_ADD, SceneBlendOperation alphaOp = SBO_ADD) = 0;
864 
871  virtual void _setAlphaRejectSettings(CompareFunction func, unsigned char value, bool alphaToCoverage) = 0;
872 
876  virtual void _setTextureProjectionRelativeTo(bool enabled, const Vector3& pos);
877 
885  virtual DepthBuffer* _createDepthBufferFor( RenderTarget *renderTarget ) = 0;
886 
894  void _cleanupDepthBuffers( bool bCleanManualBuffers=true );
895 
900  virtual void _beginFrame(void) = 0;
901 
902  //Dummy structure for render system contexts - implementing RenderSystems can extend
903  //as needed
917  virtual void _resumeFrame(RenderSystemContext* context);
918 
922  virtual void _endFrame(void) = 0;
930  virtual void _setViewport(Viewport *vp) = 0;
932  virtual Viewport* _getViewport(void);
933 
945  virtual void _setCullingMode(CullingMode mode) = 0;
946 
947  virtual CullingMode _getCullingMode(void) const;
948 
962  virtual void _setDepthBufferParams(bool depthTest = true, bool depthWrite = true, CompareFunction depthFunction = CMPF_LESS_EQUAL) = 0;
963 
968  virtual void _setDepthBufferCheckEnabled(bool enabled = true) = 0;
973  virtual void _setDepthBufferWriteEnabled(bool enabled = true) = 0;
989  virtual void _setColourBufferWriteEnabled(bool red, bool green, bool blue, bool alpha) = 0;
1012  virtual void _setDepthBias(float constantBias, float slopeScaleBias = 0.0f) = 0;
1024  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;
1025 
1026 
1028  virtual void _beginGeometryCount(void);
1030  virtual unsigned int _getFaceCount(void) const;
1032  virtual unsigned int _getBatchCount(void) const;
1034  virtual unsigned int _getVertexCount(void) const;
1035 
1044  virtual void convertColourValue(const ColourValue& colour, uint32* pDest);
1049 
1056  virtual void _convertProjectionMatrix(const Matrix4& matrix,
1057  Matrix4& dest, bool forGpuProgram = false) = 0;
1058 
1065  virtual void _makeProjectionMatrix(const Radian& fovy, Real aspect, Real nearPlane, Real farPlane,
1066  Matrix4& dest, bool forGpuProgram = false) = 0;
1067 
1074  virtual void _makeProjectionMatrix(Real left, Real right, Real bottom, Real top,
1075  Real nearPlane, Real farPlane, Matrix4& dest, bool forGpuProgram = false) = 0;
1082  virtual void _makeOrthoMatrix(const Radian& fovy, Real aspect, Real nearPlane, Real farPlane,
1083  Matrix4& dest, bool forGpuProgram = false) = 0;
1084 
1101  virtual void _applyObliqueDepthProjection(Matrix4& matrix, const Plane& plane,
1102  bool forGpuProgram) = 0;
1103 
1105  virtual void _setPolygonMode(PolygonMode level) = 0;
1106 
1113  virtual void setStencilCheckEnabled(bool enabled) = 0;
1129  /*virtual bool hasHardwareStencil(void) = 0;*/
1130 
1170  uint32 refValue = 0, uint32 compareMask = 0xFFFFFFFF, uint32 writeMask = 0xFFFFFFFF,
1171  StencilOperation stencilFailOp = SOP_KEEP,
1172  StencilOperation depthFailOp = SOP_KEEP,
1173  StencilOperation passOp = SOP_KEEP,
1174  bool twoSidedOperation = false) = 0;
1175 
1176 
1177 
1179  virtual void setVertexDeclaration(VertexDeclaration* decl) = 0;
1181  virtual void setVertexBufferBinding(VertexBufferBinding* binding) = 0;
1182 
1193  virtual void setNormaliseNormals(bool normalise) = 0;
1194 
1207  virtual void _render(const RenderOperation& op);
1208 
1210  const RenderSystemCapabilities* getCapabilities(void) const { return mCurrentCapabilities; }
1211 
1212 
1215  virtual const DriverVersion& getDriverVersion(void) const { return mDriverVersion; }
1216 
1226  virtual const String& _getDefaultViewportMaterialScheme(void) const;
1227 
1232  virtual void bindGpuProgram(GpuProgram* prg);
1233 
1240  GpuProgramParametersSharedPtr params, uint16 variabilityMask) = 0;
1241 
1249  virtual void unbindGpuProgram(GpuProgramType gptype);
1250 
1252  virtual bool isGpuProgramBound(GpuProgramType gptype);
1253 
1259  uint16 getNativeShadingLanguageVersion() const { return mNativeShadingLanguageVersion; }
1260 
1263  virtual void setClipPlanes(const PlaneList& clipPlanes);
1264 
1266  virtual void addClipPlane (const Plane &p);
1268  virtual void addClipPlane (Real A, Real B, Real C, Real D);
1269 
1272  virtual void resetClipPlanes();
1273 
1275  virtual void _initRenderTargets(void);
1276 
1280  virtual void _notifyCameraRemoved(const Camera* cam);
1281 
1283  virtual void _updateAllRenderTargets(bool swapBuffers = true);
1287 
1290  virtual void setInvertVertexWinding(bool invert);
1291 
1295  virtual bool getInvertVertexWinding(void) const;
1296 
1308  virtual void setScissorTest(bool enabled, size_t left = 0, size_t top = 0,
1309  size_t right = 800, size_t bottom = 600) = 0;
1310 
1318  virtual void clearFrameBuffer(unsigned int buffers,
1319  const ColourValue& colour = ColourValue::Black,
1320  Real depth = 1.0f, unsigned short stencil = 0) = 0;
1330  virtual Real getHorizontalTexelOffset(void) = 0;
1340  virtual Real getVerticalTexelOffset(void) = 0;
1341 
1350  virtual Real getMinimumDepthInputValue(void) = 0;
1359  virtual Real getMaximumDepthInputValue(void) = 0;
1365  virtual void setCurrentPassIterationCount(const size_t count) { mCurrentPassIterationCount = count; }
1366 
1376  virtual void setDeriveDepthBias(bool derive, float baseValue = 0.0f,
1377  float multiplier = 0.0f, float slopeScale = 0.0f)
1378  {
1379  mDerivedDepthBias = derive;
1380  mDerivedDepthBiasBase = baseValue;
1381  mDerivedDepthBiasMultiplier = multiplier;
1382  mDerivedDepthBiasSlopeScale = slopeScale;
1383  }
1384 
1388  virtual void _setRenderTarget(RenderTarget *target) = 0;
1389 
1395  {
1396  public:
1398  virtual ~Listener() {}
1399 
1405  virtual void eventOccurred(const String& eventName,
1406  const NameValuePairList* parameters = 0) = 0;
1407  };
1421  virtual void addListener(Listener* l);
1424  virtual void removeListener(Listener* l);
1425 
1430  virtual const StringVector& getRenderSystemEvents(void) const { return mEventNames; }
1431 
1448  virtual void preExtraThreadsStarted() = 0;
1449 
1450  /* Tell the rendersystem to perform any tasks it needs to directly
1451  after other threads which might access the rendering API are registered.
1452  @see RenderSystem::preExtraThreadsStarted
1453  */
1454  virtual void postExtraThreadsStarted() = 0;
1455 
1468  virtual void registerThread() = 0;
1469 
1473  virtual void unregisterThread() = 0;
1474 
1479  virtual unsigned int getDisplayMonitorCount() const = 0;
1480 
1484  virtual void beginProfileEvent( const String &eventName ) = 0;
1485 
1489  virtual void endProfileEvent( void ) = 0;
1490 
1495  virtual void markProfileEvent( const String &event ) = 0;
1496 
1499  virtual bool hasAnisotropicMipMapFilter() const = 0;
1500 
1506  virtual void getCustomAttribute(const String& name, void* pData);
1507 
1508  protected:
1509 
1512 
1519 
1527 
1528  // Texture manager
1529  // A concrete class of this will be created and
1530  // made available under the TextureManager singleton,
1531  // managed by the RenderSystem
1533 
1534  // Active viewport (dest for future rendering operations)
1536 
1538 
1539  bool mWBuffer;
1540 
1541  size_t mBatchCount;
1542  size_t mFaceCount;
1544 
1546  ColourValue mManualBlendColours[OGRE_MAX_TEXTURE_LAYERS][2];
1547 
1549 
1552 
1561 
1568 
1571 
1577 
1580 
1582  virtual void fireEvent(const String& name, const NameValuePairList* params = 0);
1583 
1586 
1589 
1596 
1597  // Recording user clip planes
1599  // Indicator that we need to re-set the clip planes on next render call
1601 
1606 
1608  virtual void setClipPlanesImpl(const PlaneList& clipPlanes) = 0;
1609 
1612 
1613 
1616 
1619 
1620 
1621 
1622  };
1625 }
1626 
1627 #include "OgreHeaderSuffix.h"
1628 
1629 #endif
Ogre::TextureManager
Class for loading & managing textures.
Definition: OgreTextureManager.h:61
OgreHeaderSuffix.h
Ogre::HashedVector< Light * >
Ogre::RenderSystem::mActiveComputeGpuProgramParameters
GpuProgramParametersSharedPtr mActiveComputeGpuProgramParameters
Definition: OgreRenderSystem.h:1526
Ogre::RenderSystem::destroyHardwareOcclusionQuery
virtual void destroyHardwareOcclusionQuery(HardwareOcclusionQuery *hq)
Destroy a hardware occlusion query object.
Ogre::RenderSystem::setLightingEnabled
virtual void setLightingEnabled(bool enabled)=0
Sets whether or not dynamic lighting is enabled.
Ogre::SOP_DECREMENT_WRAP
@ SOP_DECREMENT_WRAP
Decrease the stencil value by 1, wrapping when decrementing 0.
Definition: OgreRenderSystem.h:96
Ogre::RenderSystem::setConfigOption
virtual void setConfigOption(const String &name, const String &value)=0
Sets an option for this API.
Ogre::RenderSystem::mDerivedDepthBiasBase
float mDerivedDepthBiasBase
Definition: OgreRenderSystem.h:1558
Ogre::TextureUnitState
Class representing the state of a single texture unit during a Pass of a Technique,...
Definition: OgreTextureUnitState.h:63
Ogre::RenderSystem::_setViewMatrix
virtual void _setViewMatrix(const Matrix4 &m)=0
Sets the view transform matrix.
Ogre::RenderSystem::mGlobalNumberOfInstances
size_t mGlobalNumberOfInstances
the number of global instances (this number will be multiply by the render op instance number)
Definition: OgreRenderSystem.h:1567
Ogre::RenderSystem
Defines the functionality of a 3D API.
Definition: OgreRenderSystem.h:126
Ogre::RenderSystem::mPrioritisedRenderTargets
RenderTargetPriorityMap mPrioritisedRenderTargets
The render targets, ordered by priority.
Definition: OgreRenderSystem.h:1516
Ogre::RenderSystem::setGlobalInstanceVertexBufferVertexDeclaration
void setGlobalInstanceVertexBufferVertexDeclaration(VertexDeclaration *val)
Sets vertex declaration for the global vertex buffer for the global instancing.
Ogre::DepthBufferMap
map< uint16, DepthBufferVec >::type DepthBufferMap
Definition: OgreRenderSystem.h:61
Ogre::RenderSystem::getCapabilities
const RenderSystemCapabilities * getCapabilities(void) const
Gets the capabilities of the render system.
Definition: OgreRenderSystem.h:1210
Ogre::AllocatedObject
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Definition: OgreMemoryAllocatedObject.h:59
Ogre::RenderSystem::_setTextureUnitFiltering
virtual void _setTextureUnitFiltering(size_t unit, FilterType ftype, FilterOptions filter)=0
Sets a single filter for a given texture unit.
Ogre::RenderSystem::mActiveTesselationDomainGpuProgramParameters
GpuProgramParametersSharedPtr mActiveTesselationDomainGpuProgramParameters
Definition: OgreRenderSystem.h:1525
Ogre
Definition: OgreAndroidLogListener.h:35
Ogre::RenderSystem::mTexProjRelative
bool mTexProjRelative
Definition: OgreRenderSystem.h:1617
Ogre::Plane
Defines a plane in 3D space.
Definition: OgrePlane.h:62
Ogre::RenderSystem::setDepthBufferFor
virtual void setDepthBufferFor(RenderTarget *renderTarget)
Retrieves an existing DepthBuffer or creates a new one suited for the given RenderTarget and sets it.
Ogre::RenderSystem::_setDepthBufferCheckEnabled
virtual void _setDepthBufferCheckEnabled(bool enabled=true)=0
Sets whether or not the depth buffer check is performed before a pixel write.
Ogre::RenderTargetPriorityMap
multimap< uchar, RenderTarget * >::type RenderTargetPriorityMap
Definition: OgreRenderSystem.h:63
Ogre::RenderSystem::_createRenderWindows
virtual bool _createRenderWindows(const RenderWindowDescriptionList &renderWindowDescriptions, RenderWindowList &createdWindows)
Creates multiple rendering windows.
OgreTextureUnitState.h
Ogre::DepthBuffer
An abstract class that contains a depth/stencil buffer.
Definition: OgreDepthBuffer.h:83
Ogre::TVC_NONE
@ TVC_NONE
Definition: OgreCommon.h:278
Ogre::SOP_DECREMENT
@ SOP_DECREMENT
Decrease the stencil value by 1, clamping at 0.
Definition: OgreRenderSystem.h:92
Ogre::TEXCALC_ENVIRONMENT_MAP
@ TEXCALC_ENVIRONMENT_MAP
Environment map based on vertex normals.
Definition: OgreRenderSystem.h:72
Ogre::RenderSystem::mEnableFixedPipeline
bool mEnableFixedPipeline
is fixed pipeline enabled
Definition: OgreRenderSystem.h:1570
Ogre::HardwareOcclusionQuery
This is a abstract class that that provides the interface for the query class for hardware occlusion.
Definition: OgreHardwareOcclusionQuery.h:52
Ogre::RenderSystem::_setDepthBufferWriteEnabled
virtual void _setDepthBufferWriteEnabled(bool enabled=true)=0
Sets whether or not the depth buffer is updated after a pixel write.
Ogre::map
Definition: OgrePrerequisites.h:534
Ogre::RenderSystem::_setTextureUnitFiltering
virtual void _setTextureUnitFiltering(size_t unit, FilterOptions minFilter, FilterOptions magFilter, FilterOptions mipFilter)
Sets the filtering options for a given texture unit.
Ogre::RenderSystem::beginProfileEvent
virtual void beginProfileEvent(const String &eventName)=0
This marks the beginning of an event for GPU profiling.
Ogre::Camera
A viewpoint from which the scene will be rendered.
Definition: OgreCamera.h:87
Ogre::RenderSystem::~RenderSystem
virtual ~RenderSystem()
Destructor.
Ogre::RenderSystem::isGpuProgramBound
virtual bool isGpuProgramBound(GpuProgramType gptype)
Returns whether or not a Gpu program of the given type is currently bound.
Ogre::RenderSystem::_makeProjectionMatrix
virtual void _makeProjectionMatrix(const Radian &fovy, Real aspect, Real nearPlane, Real farPlane, Matrix4 &dest, bool forGpuProgram=false)=0
Builds a perspective projection matrix suitable for this render system.
Ogre::RenderSystem::shutdown
virtual void shutdown(void)
Shutdown the renderer and cleanup resources.
Ogre::RenderSystem::getMinimumDepthInputValue
virtual Real getMinimumDepthInputValue(void)=0
Gets the minimum (closest) depth value to be used when rendering using identity transforms.
Ogre::RenderSystem::bindGpuProgramPassIterationParameters
virtual void bindGpuProgramPassIterationParameters(GpuProgramType gptype)=0
Only binds Gpu program parameters used for passes that have more than one iteration rendering.
Ogre::RenderSystem::_makeOrthoMatrix
virtual void _makeOrthoMatrix(const Radian &fovy, Real aspect, Real nearPlane, Real farPlane, Matrix4 &dest, bool forGpuProgram=false)=0
Builds an orthographic projection matrix suitable for this render system.
OgreConfigOptionMap.h
Ogre::RenderSystem::_setTextureProjectionRelativeTo
virtual void _setTextureProjectionRelativeTo(bool enabled, const Vector3 &pos)
Notify the rendersystem that it should adjust texture projection to be relative to a different origin...
Ogre::RenderSystem::markProfileEvent
virtual void markProfileEvent(const String &event)=0
Marks an instantaneous event for graphics profilers.
Ogre::RenderSystem::Listener::eventOccurred
virtual void eventOccurred(const String &eventName, const NameValuePairList *parameters=0)=0
A rendersystem-specific event occurred.
Ogre::RenderSystem::useCustomRenderSystemCapabilities
virtual void useCustomRenderSystemCapabilities(RenderSystemCapabilities *capabilities)
Force the render system to use the special capabilities.
Ogre::TEXCALC_NONE
@ TEXCALC_NONE
No calculated texture coordinates.
Definition: OgreRenderSystem.h:70
Ogre::RenderSystem::mDerivedDepthBias
bool mDerivedDepthBias
Whether to update the depth bias per render call.
Definition: OgreRenderSystem.h:1557
Ogre::RenderSystem::mActiveFragmentGpuProgramParameters
GpuProgramParametersSharedPtr mActiveFragmentGpuProgramParameters
Definition: OgreRenderSystem.h:1523
Ogre::RenderSystem::setClipPlanes
virtual void setClipPlanes(const PlaneList &clipPlanes)
Sets the user clipping region.
Ogre::RenderSystem::_updateAllRenderTargets
virtual void _updateAllRenderTargets(bool swapBuffers=true)
Internal method for updating all render targets attached to this rendering system.
Ogre::RenderSystem::mEventNames
StringVector mEventNames
List of names of events this rendersystem may raise.
Definition: OgreRenderSystem.h:1579
Ogre::StringVector
vector< String >::type StringVector
Definition: OgreStringVector.h:45
Ogre::RenderSystem::_cleanupDepthBuffers
void _cleanupDepthBuffers(bool bCleanManualBuffers=true)
Removes all depth buffers.
OgreMaterialManager.h
Ogre::RenderSystem::_setTextureUnitCompareFunction
virtual void _setTextureUnitCompareFunction(size_t unit, CompareFunction function)=0
Sets the compare function to use for a given texture unit.
Ogre::RenderWindow
Manages the target rendering window.
Definition: OgreRenderWindow.h:63
Ogre::RenderSystem::mActiveTesselationHullGpuProgramParameters
GpuProgramParametersSharedPtr mActiveTesselationHullGpuProgramParameters
Definition: OgreRenderSystem.h:1524
OgreRenderTarget.h
Ogre::RenderSystem::mDisabledTexUnitsFrom
size_t mDisabledTexUnitsFrom
Texture units from this upwards are disabled.
Definition: OgreRenderSystem.h:1551
Ogre::RenderSystem::mFragmentProgramBound
bool mFragmentProgramBound
Definition: OgreRenderSystem.h:1592
Ogre::RenderWindowDescriptionList
vector< RenderWindowDescription >::type RenderWindowDescriptionList
Render window creation parameters container.
Definition: OgreCommon.h:761
Ogre::RenderSystem::getColourVertexElementType
virtual VertexElementType getColourVertexElementType(void) const =0
Get the native VertexElementType for a compact 32-bit colour value for this rendersystem.
Ogre::SOP_ZERO
@ SOP_ZERO
Set the stencil value to zero.
Definition: OgreRenderSystem.h:86
Ogre::RenderSystem::_setDepthBias
virtual void _setDepthBias(float constantBias, float slopeScaleBias=0.0f)=0
Sets the depth bias, NB you should use the Material version of this.
Ogre::RenderSystem::_render
virtual void _render(const RenderOperation &op)
Render something to the active viewport.
Ogre::RenderSystem::mComputeProgramBound
bool mComputeProgramBound
Definition: OgreRenderSystem.h:1595
Ogre::GpuProgram
Defines a program which runs on the GPU such as a vertex or fragment program.
Definition: OgreGpuProgram.h:70
Ogre::RenderSystem::_getCullingMode
virtual CullingMode _getCullingMode(void) const
Ogre::FogMode
FogMode
Fog modes.
Definition: OgreCommon.h:122
Ogre::RenderSystem::_setTextureCoordSet
virtual void _setTextureCoordSet(size_t unit, size_t index)=0
Sets the texture coordinate set to use for a texture unit.
Ogre::RenderSystem::_setTextureMipmapBias
virtual void _setTextureMipmapBias(size_t unit, float bias)=0
Sets the mipmap bias value for a given texture unit.
Ogre::RenderSystem::setCurrentPassIterationCount
virtual void setCurrentPassIterationCount(const size_t count)
set the current multi pass count value.
Definition: OgreRenderSystem.h:1365
Ogre::RenderSystem::_makeProjectionMatrix
virtual void _makeProjectionMatrix(Real left, Real right, Real bottom, Real top, Real nearPlane, Real farPlane, Matrix4 &dest, bool forGpuProgram=false)=0
Builds a perspective projection matrix for the case when frustum is not centered around camera.
Ogre::CMPF_ALWAYS_PASS
@ CMPF_ALWAYS_PASS
Definition: OgreCommon.h:67
Ogre::RenderSystem::_setWorldMatrix
virtual void _setWorldMatrix(const Matrix4 &m)=0
Sets the world transform matrix.
Ogre::uint16
unsigned short uint16
Definition: OgrePlatform.h:360
Ogre::RenderSystem::convertColourValue
virtual void convertColourValue(const ColourValue &colour, uint32 *pDest)
Generates a packed data version of the passed in ColourValue suitable for use as with this RenderSyst...
Ogre::RenderSystem::_getFaceCount
virtual unsigned int _getFaceCount(void) const
Reports the number of tris rendered since the last _beginGeometryCount call.
Ogre::RenderSystem::mVertexCount
size_t mVertexCount
Definition: OgreRenderSystem.h:1543
Ogre::RenderSystem::mActiveVertexGpuProgramParameters
GpuProgramParametersSharedPtr mActiveVertexGpuProgramParameters
The Active GPU programs and gpu program parameters.
Definition: OgreRenderSystem.h:1521
Ogre::RenderSystem::preExtraThreadsStarted
virtual void preExtraThreadsStarted()=0
Tell the rendersystem to perform any prep tasks it needs to directly before other threads which might...
Ogre::RenderSystem::_endFrame
virtual void _endFrame(void)=0
Ends rendering of a frame to the current viewport.
Ogre::RenderSystem::createMultiRenderTarget
virtual MultiRenderTarget * createMultiRenderTarget(const String &name)=0
Create a MultiRenderTarget, which is a render target that renders to multiple RenderTextures at once.
Ogre::RenderSystem::_getBatchCount
virtual unsigned int _getBatchCount(void) const
Reports the number of batches rendered since the last _beginGeometryCount call.
Ogre::RenderSystem::mRealCapabilities
RenderSystemCapabilities * mRealCapabilities
Used to store the capabilities of the graphics card.
Definition: OgreRenderSystem.h:1603
Ogre::uint32
unsigned int uint32
Definition: OgrePlatform.h:359
Ogre::SOP_KEEP
@ SOP_KEEP
Leave the stencil buffer unchanged.
Definition: OgreRenderSystem.h:84
Ogre::RenderSystem::mInvertVertexWinding
bool mInvertVertexWinding
Definition: OgreRenderSystem.h:1548
Ogre::RenderSystem::destroyRenderTexture
virtual void destroyRenderTexture(const String &name)
Destroys a render texture.
Ogre::RenderSystem::_setColourBufferWriteEnabled
virtual void _setColourBufferWriteEnabled(bool red, bool green, bool blue, bool alpha)=0
Sets whether or not colour buffer writing is enabled, and for which channels.
Ogre::RenderSystem::getGlobalInstanceVertexBufferVertexDeclaration
VertexDeclaration * getGlobalInstanceVertexBufferVertexDeclaration() const
Gets vertex declaration for the global vertex buffer for the global instancing.
Ogre::String
_StringBase String
Definition: OgrePrerequisites.h:439
Ogre::RenderSystem::_setVertexTexture
virtual void _setVertexTexture(size_t unit, const TexturePtr &tex)
Binds a texture to a vertex sampler.
Ogre::RenderSystem::_setSceneBlending
virtual void _setSceneBlending(SceneBlendFactor sourceFactor, SceneBlendFactor destFactor, SceneBlendOperation op=SBO_ADD)=0
Sets the global blending factors for combining subsequent renders with the existing frame contents.
Ogre::RenderSystem::getRenderTarget
virtual RenderTarget * getRenderTarget(const String &name)
Returns a pointer to the render target with the passed name, or NULL if that render target cannot be ...
Ogre::RenderSystem::_setPointSpritesEnabled
virtual void _setPointSpritesEnabled(bool enabled)=0
Sets whether or not rendering points using OT_POINT_LIST will render point sprites (textured quads) o...
Ogre::RenderSystem::getVerticalTexelOffset
virtual Real getVerticalTexelOffset(void)=0
Returns the vertical texel offset value required for mapping texel origins to pixel origins in this r...
Ogre::RenderSystem::getGlobalInstanceVertexBuffer
HardwareVertexBufferSharedPtr getGlobalInstanceVertexBuffer() const
Returns the global instance vertex buffer.
Ogre::RenderSystem::_setRenderTarget
virtual void _setRenderTarget(RenderTarget *target)=0
Set current render target to target, enabling its device context if needed.
Ogre::RenderSystem::RenderTargetIterator
MapIterator< Ogre::RenderTargetMap > RenderTargetIterator
Iterator over RenderTargets.
Definition: OgreRenderSystem.h:579
Ogre::TEXCALC_PROJECTIVE_TEXTURE
@ TEXCALC_PROJECTIVE_TEXTURE
Projective texture.
Definition: OgreRenderSystem.h:78
Ogre::RenderSystem::mFaceCount
size_t mFaceCount
Definition: OgreRenderSystem.h:1542
Ogre::RenderSystem::mNativeShadingLanguageVersion
uint16 mNativeShadingLanguageVersion
Definition: OgreRenderSystem.h:1615
Ogre::RenderSystem::mDepthBufferPool
DepthBufferMap mDepthBufferPool
DepthBuffers to be attached to render targets.
Definition: OgreRenderSystem.h:1511
Ogre::RenderSystem::_notifyCameraRemoved
virtual void _notifyCameraRemoved(const Camera *cam)
Utility method to notify all render targets that a camera has been removed, in case they were referri...
Ogre::LayerBlendModeEx
Class which manages blending of both colour and alpha components.
Definition: OgreBlendMode.h:140
Ogre::NameValuePairList
map< String, String >::type NameValuePairList
Name / value parameter pair (first = name, second = value)
Definition: OgreCommon.h:550
Ogre::RenderSystem::endProfileEvent
virtual void endProfileEvent(void)=0
Ends the currently active GPU profiling event.
Ogre::RenderSystem::_resumeFrame
virtual void _resumeFrame(RenderSystemContext *context)
Resume rendering for a frame.
Ogre::CompareFunction
CompareFunction
Comparison functions used for the depth/stencil buffer operations and others.
Definition: OgreCommon.h:65
Ogre::GpuProgramType
GpuProgramType
Enumerates the types of programs which can run on the GPU.
Definition: OgreGpuProgram.h:51
Ogre::RenderSystem::Listener::Listener
Listener()
Definition: OgreRenderSystem.h:1397
Ogre::RenderSystem::_setTextureBlendMode
virtual void _setTextureBlendMode(size_t unit, const LayerBlendModeEx &bm)=0
Sets the texture blend modes from a TextureUnitState record.
Ogre::RenderSystem::_setTextureAddressingMode
virtual void _setTextureAddressingMode(size_t unit, const TextureUnitState::UVWAddressingMode &uvw)=0
Sets the texture addressing mode for a texture unit.
Ogre::VertexBufferBinding
Records the state of all the vertex buffer bindings required to provide a vertex declaration with the...
Definition: OgreHardwareVertexBuffer.h:522
Ogre::RenderSystem::getMaximumDepthInputValue
virtual Real getMaximumDepthInputValue(void)=0
Gets the maximum (farthest) depth value to be used when rendering using identity transforms.
Ogre::RenderSystem::_beginGeometryCount
virtual void _beginGeometryCount(void)
The RenderSystem will keep a count of tris rendered, this resets the count.
Ogre::vector::type
std::vector< T, A > type
Definition: OgrePrerequisites.h:494
Ogre::RenderSystem::updatePassIterationRenderState
bool updatePassIterationRenderState(void)
updates pass iteration rendering state including bound gpu program parameter pass iteration auto cons...
Ogre::RenderSystem::_setSurfaceParams
virtual void _setSurfaceParams(const ColourValue &ambient, const ColourValue &diffuse, const ColourValue &specular, const ColourValue &emissive, Real shininess, TrackVertexColourType tracking=TVC_NONE)=0
Sets the surface properties to be used for future rendering.
Ogre::VertexElementType
VertexElementType
Vertex element type, used to identify the base types of the vertex contents.
Definition: OgreHardwareVertexBuffer.h:124
Ogre::RenderSystem::_setWorldMatrices
virtual void _setWorldMatrices(const Matrix4 *m, unsigned short count)
Sets multiple world matrices (vertex blending).
Ogre::StencilOperation
StencilOperation
Enum describing the various actions which can be taken on the stencil buffer.
Definition: OgreRenderSystem.h:82
Ogre::RenderSystem::_setTextureMatrix
virtual void _setTextureMatrix(size_t unit, const Matrix4 &xform)=0
Sets the texture coordinate transformation matrix for a texture unit.
OgreRenderOperation.h
Ogre::RenderSystem::setShadingType
virtual void setShadingType(ShadeOptions so)=0
Sets the type of light shading required (default = Gouraud).
Ogre::RenderSystem::mCullingMode
CullingMode mCullingMode
Definition: OgreRenderSystem.h:1537
OgreHeaderPrefix.h
Ogre::Matrix4
Class encapsulating a standard 4x4 homogeneous matrix.
Definition: OgreMatrix4.h:79
Ogre::RenderTarget
A 'canvas' which can receive the results of a rendering operation.
Definition: OgreRenderTarget.h:66
Ogre::list
Definition: OgrePrerequisites.h:506
Ogre::ConfigOptionMap
map< String, ConfigOption >::type ConfigOptionMap
Definition: OgreConfigOptionMap.h:58
Ogre::SceneBlendFactor
SceneBlendFactor
Blending factors for manually blending objects with the scene.
Definition: OgreBlendMode.h:235
Ogre::RenderSystem::setInvertVertexWinding
virtual void setInvertVertexWinding(bool invert)
Sets whether or not vertex windings set should be inverted; this can be important for rendering refle...
Ogre::SOP_INCREMENT_WRAP
@ SOP_INCREMENT_WRAP
Increase the stencil value by 1, wrapping back to 0 when incrementing the maximum value.
Definition: OgreRenderSystem.h:94
Ogre::RenderSystem::_createDepthBufferFor
virtual DepthBuffer * _createDepthBufferFor(RenderTarget *renderTarget)=0
Creates a DepthBuffer that can be attached to the specified RenderTarget.
OgreFrameListener.h
Ogre::RenderSystem::getFixedPipelineEnabled
bool getFixedPipelineEnabled(void) const
Returns true if fixed pipeline rendering is enabled on the system.
Ogre::RenderSystem::areFixedFunctionLightsInViewSpace
virtual bool areFixedFunctionLightsInViewSpace() const
Are fixed-function lights provided in view space? Affects optimisation.
Definition: OgreRenderSystem.h:636
Ogre::RenderSystem::mClipPlanes
PlaneList mClipPlanes
Definition: OgreRenderSystem.h:1598
Ogre::RenderSystem::mActiveViewport
Viewport * mActiveViewport
Definition: OgreRenderSystem.h:1535
Ogre::RenderSystem::_convertProjectionMatrix
virtual void _convertProjectionMatrix(const Matrix4 &matrix, Matrix4 &dest, bool forGpuProgram=false)=0
Converts a uniform projection matrix to suitable for this render system.
Ogre::RenderSystem::setAmbientLight
virtual void setAmbientLight(float r, float g, float b)=0
Sets the colour & strength of the ambient (global directionless) light in the world.
Ogre::Viewport
An abstraction of a viewport, i.e.
Definition: OgreViewport.h:58
Ogre::RenderSystem::hasAnisotropicMipMapFilter
virtual bool hasAnisotropicMipMapFilter() const =0
Determines if the system has anisotropic mip map filter support.
Ogre::TEXCALC_ENVIRONMENT_MAP_PLANAR
@ TEXCALC_ENVIRONMENT_MAP_PLANAR
Environment map based on vertex positions.
Definition: OgreRenderSystem.h:74
OgrePrerequisites.h
Ogre::RenderSystem::postExtraThreadsStarted
virtual void postExtraThreadsStarted()=0
Ogre::VertexDeclaration
This class declares the format of a set of vertex inputs, which can be issued to the rendering API th...
Definition: OgreHardwareVertexBuffer.h:338
Ogre::RenderSystem::bindGpuProgramParameters
virtual void bindGpuProgramParameters(GpuProgramType gptype, GpuProgramParametersSharedPtr params, uint16 variabilityMask)=0
Bind Gpu program parameters.
Ogre::HardwareVertexBufferSharedPtr
Shared pointer implementation used to share vertex buffers.
Definition: OgreHardwareVertexBuffer.h:87
Ogre::RenderSystem::mUseCustomCapabilities
bool mUseCustomCapabilities
Definition: OgreRenderSystem.h:1605
Ogre::RenderSystem::addClipPlane
virtual void addClipPlane(Real A, Real B, Real C, Real D)
Add a user clipping plane.
Ogre::RenderSystem::_setFog
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
Sets the fogging mode for future geometry.
Ogre::RenderSystem::getDisplayMonitorCount
virtual unsigned int getDisplayMonitorCount() const =0
Gets the number of display monitors.
Ogre::SOP_INCREMENT
@ SOP_INCREMENT
Increase the stencil value by 1, clamping at the maximum value.
Definition: OgreRenderSystem.h:90
Ogre::RenderSystem::removeListener
virtual void removeListener(Listener *l)
Remove a listener to the custom events that this render system can raise.
Ogre::RenderSystem::validateConfigOptions
virtual String validateConfigOptions(void)=0
Validates the options set for the rendering system, returning a message if there are problems.
Ogre::RenderWindowList
vector< RenderWindow * >::type RenderWindowList
Render window container.
Definition: OgreCommon.h:764
Ogre::RenderSystem::mCurrentPassIterationCount
size_t mCurrentPassIterationCount
number of times to render the current state
Definition: OgreRenderSystem.h:1554
Ogre::RenderSystem::_getVertexCount
virtual unsigned int _getVertexCount(void) const
Reports the number of vertices passed to the renderer since the last _beginGeometryCount call.
Ogre::RenderSystem::mGeometryProgramBound
bool mGeometryProgramBound
Definition: OgreRenderSystem.h:1591
Ogre::TEXCALC_ENVIRONMENT_MAP_REFLECTION
@ TEXCALC_ENVIRONMENT_MAP_REFLECTION
Definition: OgreRenderSystem.h:75
Ogre::FilterOptions
FilterOptions
Filtering options for textures / mipmaps.
Definition: OgreCommon.h:101
Ogre::Radian
Wrapper class which indicates a given angle value is in Radians.
Definition: OgreMath.h:48
Ogre::RenderSystem::addListener
virtual void addListener(Listener *l)
Adds a listener to the custom events that this render system can raise.
Ogre::RenderSystem::getName
virtual const String & getName(void) const =0
Returns the name of the rendering system.
Ogre::RenderSystem::reinitialise
virtual void reinitialise(void)=0
Restart the renderer (normally following a change in settings).
Ogre::RenderSystem::mTesselationHullProgramBound
bool mTesselationHullProgramBound
Definition: OgreRenderSystem.h:1593
Ogre::RenderSystem::_setProjectionMatrix
virtual void _setProjectionMatrix(const Matrix4 &m)=0
Sets the projection transform matrix.
Ogre::SBO_ADD
@ SBO_ADD
Definition: OgreBlendMode.h:255
Ogre::RenderSystem::_useLights
virtual void _useLights(const LightList &lights, unsigned short limit)=0
Tells the rendersystem to use the attached set of lights (and no others) up to the number specified (...
Ogre::RenderSystemCapabilities
singleton class for storing the capabilities of the graphics card.
Definition: OgreRenderSystemCapabilities.h:280
_OgreExport
#define _OgreExport
Definition: OgrePlatform.h:257
Ogre::RenderSystem::mTexProjRelativeOrigin
Vector3 mTexProjRelativeOrigin
Definition: OgreRenderSystem.h:1618
Ogre::RenderSystem::resetClipPlanes
virtual void resetClipPlanes()
Clears the user clipping region.
Ogre::RenderSystem::mDerivedDepthBiasMultiplier
float mDerivedDepthBiasMultiplier
Definition: OgreRenderSystem.h:1559
Ogre::RenderSystem::_pauseFrame
virtual RenderSystemContext * _pauseFrame(void)
Pause rendering for a frame.
Ogre::CMPF_LESS_EQUAL
@ CMPF_LESS_EQUAL
Definition: OgreCommon.h:69
OgreCommon.h
Ogre::RenderSystem::setStencilCheckEnabled
virtual void setStencilCheckEnabled(bool enabled)=0
Turns stencil buffer checking on or off.
Ogre::MultiRenderTarget
This class represents a render target that renders to multiple RenderTextures at once.
Definition: OgreRenderTexture.h:70
Ogre::SOP_REPLACE
@ SOP_REPLACE
Set the stencil value to the reference value.
Definition: OgreRenderSystem.h:88
Ogre::CullingMode
CullingMode
Hardware culling modes based on vertex winding.
Definition: OgreCommon.h:136
Ogre::RenderSystem::RenderSystemContext
Definition: OgreRenderSystem.h:904
Ogre::RenderSystem::_initRenderTargets
virtual void _initRenderTargets(void)
Utility method for initialising all render targets attached to this rendering system.
Ogre::RenderSystem::setVertexDeclaration
virtual void setVertexDeclaration(VertexDeclaration *decl)=0
Sets the current vertex declaration, ie the source of vertex data.
Ogre::RenderSystem::_setCullingMode
virtual void _setCullingMode(CullingMode mode)=0
Sets the culling mode for the render system based on the 'vertex winding'.
Ogre::RenderSystem::_setDepthBufferFunction
virtual void _setDepthBufferFunction(CompareFunction func=CMPF_LESS_EQUAL)=0
Sets the comparison function for the depth buffer check.
Ogre::RenderSystem::_getDefaultViewportMaterialScheme
virtual const String & _getDefaultViewportMaterialScheme(void) const
Returns the default material scheme used by the render system.
Ogre::RenderSystem::Listener::~Listener
virtual ~Listener()
Definition: OgreRenderSystem.h:1398
Ogre::RenderSystem::getInvertVertexWinding
virtual bool getInvertVertexWinding(void) const
Indicates whether or not the vertex windings set will be inverted for the current render (e....
Ogre::TrackVertexColourType
int TrackVertexColourType
An enumeration describing which material properties should track the vertex colours.
Definition: OgreCommon.h:276
Ogre::RenderSystem::_swapAllRenderTargetBuffers
virtual void _swapAllRenderTargetBuffers()
Internal method for swapping all the buffers on all render targets, if _updateAllRenderTargets was ca...
Ogre::RenderSystem::setStencilBufferParams
virtual void setStencilBufferParams(CompareFunction func=CMPF_ALWAYS_PASS, uint32 refValue=0, uint32 compareMask=0xFFFFFFFF, uint32 writeMask=0xFFFFFFFF, StencilOperation stencilFailOp=SOP_KEEP, StencilOperation depthFailOp=SOP_KEEP, StencilOperation passOp=SOP_KEEP, bool twoSidedOperation=false)=0
Determines if this system supports hardware accelerated stencil buffer.
Ogre::ColourValue::White
static const ColourValue White
Definition: OgreColourValue.h:62
Ogre::Frustum
A frustum represents a pyramid, capped at the near and far end which is used to represent either a vi...
Definition: OgreFrustum.h:86
Ogre::RenderSystem::mActiveGeometryGpuProgramParameters
GpuProgramParametersSharedPtr mActiveGeometryGpuProgramParameters
Definition: OgreRenderSystem.h:1522
Ogre::RenderSystem::mGlobalInstanceVertexBufferVertexDeclaration
VertexDeclaration * mGlobalInstanceVertexBufferVertexDeclaration
a vertex declaration for the global vertex buffer for the global instancing
Definition: OgreRenderSystem.h:1565
Ogre::multimap
Definition: OgrePrerequisites.h:548
Ogre::RenderSystem::mTextureManager
TextureManager * mTextureManager
Definition: OgreRenderSystem.h:1532
Ogre::SharedPtr< Texture >
Ogre::MapIterator
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
Definition: OgreIteratorWrapper.h:319
OgreIteratorWrappers.h
OgrePlane.h
Ogre::FOG_NONE
@ FOG_NONE
No fog. Duh.
Definition: OgreCommon.h:124
Ogre::RenderSystem::_getViewport
virtual Viewport * _getViewport(void)
Get the current active viewport for rendering.
Ogre::RenderSystem::getGlobalNumberOfInstances
size_t getGlobalNumberOfInstances() const
Gets the global number of instances.
OGRE_MAX_TEXTURE_LAYERS
#define OGRE_MAX_TEXTURE_LAYERS
Define max number of texture layers allowed per pass on any card.
Definition: OgreConfig.h:72
Ogre::RenderSystem::setFixedPipelineEnabled
void setFixedPipelineEnabled(bool enabled)
Sets if fixed pipeline rendering is enabled on the system.
Ogre::ColourValue
Class representing colour.
Definition: OgreColourValue.h:58
Ogre::RenderSystem::setDeriveDepthBias
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 ...
Definition: OgreRenderSystem.h:1376
Ogre::RenderSystem::_setTextureBorderColour
virtual void _setTextureBorderColour(size_t unit, const ColourValue &colour)=0
Sets the texture border colour for a texture unit.
Ogre::RenderSystem::setScissorTest
virtual void setScissorTest(bool enabled, size_t left=0, size_t top=0, size_t right=800, size_t bottom=600)=0
Sets the 'scissor region' i.e.
Ogre::RenderSystem::setGlobalInstanceVertexBuffer
void setGlobalInstanceVertexBuffer(const HardwareVertexBufferSharedPtr &val)
Sets the global instance vertex buffer.
Ogre::RenderSystem::HardwareOcclusionQueryList
list< HardwareOcclusionQuery * >::type HardwareOcclusionQueryList
Definition: OgreRenderSystem.h:1587
Ogre::RenderSystem::mRenderTargets
RenderTargetMap mRenderTargets
The render targets.
Definition: OgreRenderSystem.h:1514
Ogre::RenderSystem::mDriverVersion
DriverVersion mDriverVersion
Definition: OgreRenderSystem.h:1614
Ogre::RenderSystem::_applyObliqueDepthProjection
virtual void _applyObliqueDepthProjection(Matrix4 &matrix, const Plane &plane, bool forGpuProgram)=0
Update a perspective projection matrix to use 'oblique depth projection'.
Ogre::RenderSystem::_createRenderWindow
virtual RenderWindow * _createRenderWindow(const String &name, unsigned int width, unsigned int height, bool fullScreen, const NameValuePairList *miscParams=0)=0
Creates a new rendering window.
OgreGpuProgram.h
Ogre::RenderSystem::unregisterThread
virtual void unregisterThread()=0
Unregister an additional thread which may make calls to rendersystem-related objects.
Ogre::RenderSystem::mGlobalInstanceVertexBuffer
HardwareVertexBufferSharedPtr mGlobalInstanceVertexBuffer
a global vertex buffer for global instancing
Definition: OgreRenderSystem.h:1563
Ogre::RenderSystem::_beginFrame
virtual void _beginFrame(void)=0
Signifies the beginning of a frame, i.e.
Ogre::RenderSystem::detachRenderTarget
virtual RenderTarget * detachRenderTarget(const String &name)
Detaches the render target with the passed name from the render system and returns a pointer to it.
OgreRenderTexture.h
Ogre::RenderSystem::_setViewport
virtual void _setViewport(Viewport *vp)=0
Sets the provided viewport as the active one for future rendering operations.
Ogre::RenderSystem::destroyRenderTarget
virtual void destroyRenderTarget(const String &name)
Destroys a render target of any sort.
Ogre::RenderSystem::mTesselationDomainProgramBound
bool mTesselationDomainProgramBound
Definition: OgreRenderSystem.h:1594
Ogre::RenderSystem::mCurrentPassIterationNum
size_t mCurrentPassIterationNum
Definition: OgreRenderSystem.h:1555
Ogre::RenderSystem::_setTextureCoordCalculation
virtual void _setTextureCoordCalculation(size_t unit, TexCoordCalcMethod m, const Frustum *frustum=0)=0
Sets a method for automatically calculating texture coordinates for a stage.
Ogre::RenderSystem::RenderSystem
RenderSystem()
Default Constructor.
Ogre::RenderSystem::getRenderTargetIterator
virtual RenderTargetIterator getRenderTargetIterator(void)
Returns a specialised MapIterator over all render targets attached to the RenderSystem.
Definition: OgreRenderSystem.h:582
Ogre::ColourValue::Black
static const ColourValue Black
Definition: OgreColourValue.h:61
Ogre::RenderSystem::setNormaliseNormals
virtual void setNormaliseNormals(bool normalise)=0
Sets whether or not normals are to be automatically normalised.
Ogre::RenderSystem::getCustomAttribute
virtual void getCustomAttribute(const String &name, void *pData)
Gets a custom (maybe platform-specific) attribute.
Ogre::ShadeOptions
ShadeOptions
Light shading modes.
Definition: OgreCommon.h:114
Ogre::RenderSystem::getHorizontalTexelOffset
virtual Real getHorizontalTexelOffset(void)=0
Returns the horizontal texel offset value required for mapping texel origins to pixel origins in this...
Ogre::RenderSystem::setClipPlanesImpl
virtual void setClipPlanesImpl(const PlaneList &clipPlanes)=0
Internal method used to set the underlying clip planes when needed.
Ogre::RenderSystem::getRenderSystemEvents
virtual const StringVector & getRenderSystemEvents(void) const
Gets a list of the rendersystem specific events that this rendersystem can raise.
Definition: OgreRenderSystem.h:1430
Ogre::RenderSystem::_setTextureUnitCompareEnabled
virtual void _setTextureUnitCompareEnabled(size_t unit, bool compare)=0
Sets whether the compare func is enabled or not for this texture unit.
Ogre::TextureUnitState::UVWAddressingMode
Texture addressing mode for each texture coordinate.
Definition: OgreTextureUnitState.h:142
Ogre::DepthBufferVec
vector< DepthBuffer * >::type DepthBufferVec
Definition: OgreRenderSystem.h:60
Ogre::SOP_INVERT
@ SOP_INVERT
Invert the bits of the stencil buffer.
Definition: OgreRenderSystem.h:98
Ogre::RenderSystem::initialiseFromRenderSystemCapabilities
virtual void initialiseFromRenderSystemCapabilities(RenderSystemCapabilities *caps, RenderTarget *primary)=0
Initialize the render system from the capabilities.
Ogre::RenderSystem::mWBuffer
bool mWBuffer
Definition: OgreRenderSystem.h:1539
Ogre::Real
float Real
Software floating point type.
Definition: OgrePrerequisites.h:70
Ogre::RenderSystem::_setTexture
virtual void _setTexture(size_t unit, bool enabled, const TexturePtr &texPtr)=0
Sets the texture to bind to a given texture unit.
Ogre::RenderSystem::fireEvent
virtual void fireEvent(const String &name, const NameValuePairList *params=0)
Internal method for firing a rendersystem event.
Ogre::RenderSystem::getMutableCapabilities
RenderSystemCapabilities * getMutableCapabilities()
Get a pointer to the current capabilities being used by the RenderSystem.
Definition: OgreRenderSystem.h:231
Ogre::RenderSystem::getErrorDescription
virtual String getErrorDescription(long errorNumber) const =0
Returns a description of an error code.
Ogre::RenderSystem::_setPointParameters
virtual void _setPointParameters(Real size, bool attenuationEnabled, Real constant, Real linear, Real quadratic, Real minSize, Real maxSize)=0
Sets the size of points and how they are attenuated with distance.
Ogre::RenderSystem::destroyRenderWindow
virtual void destroyRenderWindow(const String &name)
Destroys a render window.
OgreRenderSystemCapabilities.h
Ogre::RenderSystem::mVertexProgramBound
bool mVertexProgramBound
Definition: OgreRenderSystem.h:1590
Ogre::RenderSystem::_setPolygonMode
virtual void _setPolygonMode(PolygonMode level)=0
Sets how to rasterise triangles, as points, wireframe or solid polys.
Ogre::RenderSystem::clearFrameBuffer
virtual void clearFrameBuffer(unsigned int buffers, const ColourValue &colour=ColourValue::Black, Real depth=1.0f, unsigned short stencil=0)=0
Clears one or more frame buffers on the active render target.
Ogre::RenderSystem::getNativeShadingLanguageVersion
uint16 getNativeShadingLanguageVersion() const
Gets the native shading language version for this render system.
Definition: OgreRenderSystem.h:1259
Ogre::RenderSystem::mDerivedDepthBiasSlopeScale
float mDerivedDepthBiasSlopeScale
Definition: OgreRenderSystem.h:1560
Ogre::RenderSystem::_setTexture
virtual void _setTexture(size_t unit, bool enabled, const String &texname)
Sets the texture to bind to a given texture unit.
Ogre::RenderSystem::mEventListeners
ListenerList mEventListeners
Definition: OgreRenderSystem.h:1585
Ogre::RenderSystem::mBatchCount
size_t mBatchCount
Definition: OgreRenderSystem.h:1541
Ogre::RenderSystem::_disableTextureUnit
virtual void _disableTextureUnit(size_t texUnit)
Turns off a texture unit.
Ogre::TEXCALC_ENVIRONMENT_MAP_NORMAL
@ TEXCALC_ENVIRONMENT_MAP_NORMAL
Definition: OgreRenderSystem.h:76
OgreString.h
Ogre::RenderSystem::getDriverVersion
virtual const DriverVersion & getDriverVersion(void) const
Returns the driver version.
Definition: OgreRenderSystem.h:1215
Ogre::RenderSystem::ListenerList
list< Listener * >::type ListenerList
Definition: OgreRenderSystem.h:1584
Ogre::TexCoordCalcMethod
TexCoordCalcMethod
Enum describing the ways to generate texture coordinates.
Definition: OgreRenderSystem.h:68
Ogre::RenderSystem::_disableTextureUnitsFrom
virtual void _disableTextureUnitsFrom(size_t texUnit)
Disables all texture units from the given unit upwards.
Ogre::RenderSystem::setWBufferEnabled
void setWBufferEnabled(bool enabled)
Sets whether or not W-buffers are enabled if they are available for this renderer.
Ogre::RenderSystem::mCurrentCapabilities
RenderSystemCapabilities * mCurrentCapabilities
Definition: OgreRenderSystem.h:1604
Ogre::RenderSystem::registerThread
virtual void registerThread()=0
Register the an additional thread which may make calls to rendersystem-related objects.
Ogre::RenderTargetMap
map< String, RenderTarget * >::type RenderTargetMap
Definition: OgreRenderSystem.h:62
Ogre::RenderSystem::getConfigOptions
virtual ConfigOptionMap & getConfigOptions(void)=0
Returns the details of this API's configuration options.
Ogre::RenderSystem::mActiveRenderTarget
RenderTarget * mActiveRenderTarget
The Active render target.
Definition: OgreRenderSystem.h:1518
Ogre::RenderSystem::addClipPlane
virtual void addClipPlane(const Plane &p)
Add a user clipping plane.
Ogre::RenderSystem::_setAlphaRejectSettings
virtual void _setAlphaRejectSettings(CompareFunction func, unsigned char value, bool alphaToCoverage)=0
Sets the global alpha rejection approach for future renders.
Ogre::RenderSystem::setGlobalNumberOfInstances
void setGlobalNumberOfInstances(const size_t val)
Sets the global number of instances.
Ogre::RenderSystem::getWBufferEnabled
bool getWBufferEnabled(void) const
Returns true if the renderer will try to use W-buffers when available.
Ogre::RenderSystem::bindGpuProgram
virtual void bindGpuProgram(GpuProgram *prg)
Binds a given GpuProgram (but not the parameters).
Ogre::FilterType
FilterType
Definition: OgreCommon.h:91
Ogre::RenderSystem::unbindGpuProgram
virtual void unbindGpuProgram(GpuProgramType gptype)
Unbinds GpuPrograms of a given GpuProgramType.
Ogre::PlaneList
vector< Plane >::type PlaneList
Definition: OgrePlane.h:160
Ogre::PolygonMode
PolygonMode
The polygon mode to use when rasterising.
Definition: OgreCommon.h:180
Ogre::Vector3
Standard 3-dimensional vector.
Definition: OgreVector3.h:52
Ogre::RenderOperation
'New' rendering operation using vertex buffers.
Definition: OgreRenderOperation.h:45
Ogre::DriverVersion
DriverVersion is used by RenderSystemCapabilities and both GL and D3D9 to store the version of the cu...
Definition: OgreRenderSystemCapabilities.h:216
Ogre::RenderSystem::setVertexBufferBinding
virtual void setVertexBufferBinding(VertexBufferBinding *binding)=0
Sets the current vertex buffer binding state.
Ogre::RenderSystem::isStaticBufferLockable
virtual bool isStaticBufferLockable() const
Definition: OgreRenderSystem.h:219
Ogre::RenderSystem::Listener
Defines a listener on the custom events that this render system can raise.
Definition: OgreRenderSystem.h:1395
Ogre::RenderSystem::createRenderSystemCapabilities
virtual RenderSystemCapabilities * createRenderSystemCapabilities() const =0
Query the real capabilities of the GPU and driver in the RenderSystem.
Ogre::SceneBlendOperation
SceneBlendOperation
Blending operations controls how objects are blended into the scene.
Definition: OgreBlendMode.h:254
Ogre::RenderSystem::_initialise
virtual RenderWindow * _initialise(bool autoCreateWindow, const String &windowTitle="OGRE Render Window")
Start up the renderer using the settings selected (Or the defaults if none have been selected).
Ogre::RenderSystem::attachRenderTarget
virtual void attachRenderTarget(RenderTarget &target)
Attaches the passed render target to the render system.
Ogre::RenderSystem::_setTextureLayerAnisotropy
virtual void _setTextureLayerAnisotropy(size_t unit, unsigned int maxAnisotropy)=0
Sets the maximal anisotropy for the specified texture unit.
Ogre::RenderSystem::mClipPlanesDirty
bool mClipPlanesDirty
Definition: OgreRenderSystem.h:1600
Ogre::RenderSystem::_setTextureUnitSettings
virtual void _setTextureUnitSettings(size_t texUnit, TextureUnitState &tl)
Utility function for setting all the properties of a texture unit at once.
Ogre::RenderSystem::_setDepthBufferParams
virtual void _setDepthBufferParams(bool depthTest=true, bool depthWrite=true, CompareFunction depthFunction=CMPF_LESS_EQUAL)=0
Sets the mode of operation for depth buffer tests from this point onwards.
Ogre::RenderSystem::mHwOcclusionQueries
HardwareOcclusionQueryList mHwOcclusionQueries
Definition: OgreRenderSystem.h:1588
Ogre::RenderSystem::_setSeparateSceneBlending
virtual void _setSeparateSceneBlending(SceneBlendFactor sourceFactor, SceneBlendFactor destFactor, SceneBlendFactor sourceFactorAlpha, SceneBlendFactor destFactorAlpha, SceneBlendOperation op=SBO_ADD, SceneBlendOperation alphaOp=SBO_ADD)=0
Sets the global blending factors for combining subsequent renders with the existing frame contents.
Ogre::RenderSystem::createHardwareOcclusionQuery
virtual HardwareOcclusionQuery * createHardwareOcclusionQuery(void)=0
Create an object for performing hardware occlusion queries.

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.