Ogre::RenderSystem Class Reference

Defines the functionality of a 3D API. More...

#include <OgreRenderSystem.h>

Inheritance diagram for Ogre::RenderSystem:

Inheritance graph
[legend]

List of all members.

Public Types

typedef MapIterator
< Ogre::RenderTargetMap
RenderTargetIterator
 Iterator over RenderTargets.

Public Member Functions

 RenderSystem ()
 Default Constructor.
virtual ~RenderSystem ()
 Destructor.
virtual const StringgetName (void) const =0
 Returns the name of the rendering system.
virtual ConfigOptionMapgetConfigOptions (void)=0
 Returns the details of this API's configuration options.
virtual void setConfigOption (const String &name, const String &value)=0
 Sets an option for this API.
virtual
HardwareOcclusionQuery
createHardwareOcclusionQuery (void)=0
 Create an object for performing hardware occlusion queries.
virtual void destroyHardwareOcclusionQuery (HardwareOcclusionQuery *hq)
 Destroy a hardware occlusion query object.
virtual String validateConfigOptions (void)=0
 Validates the options set for the rendering system, returning a message if there are problems.
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).
virtual
RenderSystemCapabilities
createRenderSystemCapabilities () const =0
 Query the real capabilities of the GPU and driver in the RenderSystem.
virtual void useCustomRenderSystemCapabilities (RenderSystemCapabilities *capabilities)
 Force the render system to use the special capabilities.
virtual void reinitialise (void)=0
 Restart the renderer (normally following a change in settings).
virtual void shutdown (void)
 Shutdown the renderer and cleanup resources.
virtual void setAmbientLight (float r, float g, float b)=0
 Sets the colour & strength of the ambient (global directionless) light in the world.
virtual void setShadingType (ShadeOptions so)=0
 Sets the type of light shading required (default = Gouraud).
virtual void setLightingEnabled (bool enabled)=0
 Sets whether or not dynamic lighting is enabled.
void setWBufferEnabled (bool enabled)
 Sets whether or not W-buffers are enabled if they are available for this renderer.
bool getWBufferEnabled (void) const
 Returns true if the renderer will try to use W-buffers when avalible.
virtual RenderWindow_createRenderWindow (const String &name, unsigned int width, unsigned int height, bool fullScreen, const NameValuePairList *miscParams=0)=0
 Creates a new rendering window.
virtual
MultiRenderTarget
createMultiRenderTarget (const String &name)=0
 Create a MultiRenderTarget, which is a render target that renders to multiple RenderTextures at once.
virtual void destroyRenderWindow (const String &name)
 Destroys a render window.
virtual void destroyRenderTexture (const String &name)
 Destroys a render texture.
virtual void destroyRenderTarget (const String &name)
 Destroys a render target of any sort.
virtual void attachRenderTarget (RenderTarget &target)
 Attaches the passed render target to the render system.
virtual RenderTargetgetRenderTarget (const String &name)
 Returns a pointer to the render target with the passed name, or NULL if that render target cannot be found.
virtual RenderTargetdetachRenderTarget (const String &name)
 Detaches the render target with the passed name from the render system and returns a pointer to it.
virtual
RenderTargetIterator 
getRenderTargetIterator (void)
 Returns a specialised MapIterator over all render targets attached to the RenderSystem.
virtual String getErrorDescription (long errorNumber) const =0
 Returns a description of an error code.
void setWaitForVerticalBlank (bool enabled)
 Defines whether or now fullscreen render windows wait for the vertical blank before flipping buffers.
bool getWaitForVerticalBlank (void) const
 Returns true if the system is synchronising frames with the monitor vertical blank.
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 (this allows the same list to be used with different count limits).
virtual void _setWorldMatrix (const Matrix4 &m)=0
 Sets the world transform matrix.
virtual void _setWorldMatrices (const Matrix4 *m, unsigned short count)
 Sets multiple world matrices (vertex blending).
virtual void _setViewMatrix (const Matrix4 &m)=0
 Sets the view transform matrix.
virtual void _setProjectionMatrix (const Matrix4 &m)=0
 Sets the projection transform matrix.
virtual void _setTextureUnitSettings (size_t texUnit, TextureUnitState &tl)
 Utility function for setting all the properties of a texture unit at once.
virtual void _disableTextureUnit (size_t texUnit)
 Turns off a texture unit.
virtual void _disableTextureUnitsFrom (size_t texUnit)
 Disables all texture units from the given unit upwards.
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.
virtual void _setPointSpritesEnabled (bool enabled)=0
 Sets whether or not rendering points using OT_POINT_LIST will render point sprites (textured quads) or plain points.
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.
virtual void _setTexture (size_t unit, bool enabled, const TexturePtr &texPtr)=0
 Sets the texture to bind to a given texture unit.
virtual void _setTexture (size_t unit, bool enabled, const String &texname)
 Sets the texture to bind to a given texture unit.
virtual void _setVertexTexture (size_t unit, const TexturePtr &tex)
 Binds a texture to a vertex sampler.
virtual void _setTextureCoordSet (size_t unit, size_t index)=0
 Sets the texture coordinate set to use for a texture unit.
virtual void _setTextureCoordCalculation (size_t unit, TexCoordCalcMethod m, const Frustum *frustum=0)=0
 Sets a method for automatically calculating texture coordinates for a stage.
virtual void _setTextureBlendMode (size_t unit, const LayerBlendModeEx &bm)=0
 Sets the texture blend modes from a TextureUnitState record.
virtual void _setTextureUnitFiltering (size_t unit, FilterOptions minFilter, FilterOptions magFilter, FilterOptions mipFilter)
 Sets the filtering options for a given texture unit.
virtual void _setTextureUnitFiltering (size_t unit, FilterType ftype, FilterOptions filter)=0
 Sets a single filter for a given texture unit.
virtual void _setTextureLayerAnisotropy (size_t unit, unsigned int maxAnisotropy)=0
 Sets the maximal anisotropy for the specified texture unit.
virtual void _setTextureAddressingMode (size_t unit, const TextureUnitState::UVWAddressingMode &uvw)=0
 Sets the texture addressing mode for a texture unit.
virtual void _setTextureBorderColour (size_t unit, const ColourValue &colour)=0
 Sets the texture border colour for a texture unit.
virtual void _setTextureMipmapBias (size_t unit, float bias)=0
 Sets the mipmap bias value for a given texture unit.
virtual void _setTextureMatrix (size_t unit, const Matrix4 &xform)=0
 Sets the texture coordinate transformation matrix for a texture unit.
virtual void _setSceneBlending (SceneBlendFactor sourceFactor, SceneBlendFactor destFactor)=0
 Sets the global blending factors for combining subsequent renders with the existing frame contents.
virtual void _setSeparateSceneBlending (SceneBlendFactor sourceFactor, SceneBlendFactor destFactor, SceneBlendFactor sourceFactorAlpha, SceneBlendFactor destFactorAlpha)=0
 Sets the global blending factors for combining subsequent renders with the existing frame contents.
virtual void _setAlphaRejectSettings (CompareFunction func, unsigned char value, bool alphaToCoverage)=0
 Sets the global alpha rejection approach for future renders.
virtual void _setTextureProjectionRelativeTo (bool enabled, const Vector3 &pos)
 Notify the rendersystem that it should adjust texture projection to be relative to a different origin.
virtual void _beginFrame (void)=0
 Signifies the beginning of a frame, i.e.
virtual void _endFrame (void)=0
 Ends rendering of a frame to the current viewport.
virtual void _setViewport (Viewport *vp)=0
 Sets the provided viewport as the active one for future rendering operations.
virtual Viewport_getViewport (void)
 Get the current active viewport for rendering.
virtual void _setCullingMode (CullingMode mode)=0
 Sets the culling mode for the render system based on the 'vertex winding'.
virtual CullingMode _getCullingMode (void) const
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.
virtual void _setDepthBufferCheckEnabled (bool enabled=true)=0
 Sets whether or not the depth buffer check is performed before a pixel write.
virtual void _setDepthBufferWriteEnabled (bool enabled=true)=0
 Sets whether or not the depth buffer is updated after a pixel write.
virtual void _setDepthBufferFunction (CompareFunction func=CMPF_LESS_EQUAL)=0
 Sets the comparison function for the depth buffer check.
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.
virtual void _setDepthBias (float constantBias, float slopeScaleBias=0.0f)=0
 Sets the depth bias, NB you should use the Material version of this.
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.
virtual void _beginGeometryCount (void)
 The RenderSystem will keep a count of tris rendered, this resets the count.
virtual unsigned int _getFaceCount (void) const
 Reports the number of tris rendered since the last _beginGeometryCount call.
virtual unsigned int _getBatchCount (void) const
 Reports the number of batches rendered since the last _beginGeometryCount call.
virtual unsigned int _getVertexCount (void) const
 Reports the number of vertices passed to the renderer since the last _beginGeometryCount call.
virtual void convertColourValue (const ColourValue &colour, uint32 *pDest)
 Generates a packed data version of the passed in ColourValue suitable for use as with this RenderSystem.
virtual VertexElementType getColourVertexElementType (void) const =0
 Get the native VertexElementType for a compact 32-bit colour value for this rendersystem.
virtual void _convertProjectionMatrix (const Matrix4 &matrix, Matrix4 &dest, bool forGpuProgram=false)=0
 Converts a uniform projection matrix to suitable for this render system.
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.
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.
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.
virtual void _applyObliqueDepthProjection (Matrix4 &matrix, const Plane &plane, bool forGpuProgram)=0
 Update a perspective projection matrix to use 'oblique depth projection'.
virtual void _setPolygonMode (PolygonMode level)=0
 Sets how to rasterise triangles, as points, wireframe or solid polys.
virtual void setStencilCheckEnabled (bool enabled)=0
 Turns stencil buffer checking on or off.
virtual void setStencilBufferParams (CompareFunction func=CMPF_ALWAYS_PASS, uint32 refValue=0, uint32 mask=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.
virtual void setVertexDeclaration (VertexDeclaration *decl)=0
 Sets the current vertex declaration, ie the source of vertex data.
virtual void setVertexBufferBinding (VertexBufferBinding *binding)=0
 Sets the current vertex buffer binding state.
virtual void setNormaliseNormals (bool normalise)=0
 Sets whether or not normals are to be automatically normalised.
virtual void _render (const RenderOperation &op)
 Render something to the active viewport.
const
RenderSystemCapabilities
getCapabilities (void) const
 Gets the capabilities of the render system.
virtual const
DriverVersion
getDriverVersion (void) const
 Returns the driver version.
virtual void bindGpuProgram (GpuProgram *prg)
 Binds a given GpuProgram (but not the parameters).
virtual void bindGpuProgramParameters (GpuProgramType gptype, GpuProgramParametersSharedPtr params)=0
 Bind Gpu program parameters.
virtual void bindGpuProgramPassIterationParameters (GpuProgramType gptype)=0
 Only binds Gpu program parameters used for passes that have more than one iteration rendering.
virtual void unbindGpuProgram (GpuProgramType gptype)
 Unbinds GpuPrograms of a given GpuProgramType.
virtual bool isGpuProgramBound (GpuProgramType gptype)
 Returns whether or not a Gpu program of the given type is currently bound.
virtual void setClipPlanes (const PlaneList &clipPlanes)
 Sets the user clipping region.
virtual void addClipPlane (const Plane &p)
 Add a user clipping plane.
virtual void addClipPlane (Real A, Real B, Real C, Real D)
 Add a user clipping plane.
virtual void resetClipPlanes ()
 Clears the user clipping region.
virtual void _initRenderTargets (void)
 Utility method for initialising all render targets attached to this rendering system.
virtual void _notifyCameraRemoved (const Camera *cam)
 Utility method to notify all render targets that a camera has been removed, in case they were referring to it as their viewer.
virtual void _updateAllRenderTargets (bool swapBuffers=true)
 Internal method for updating all render targets attached to this rendering system.
virtual void _swapAllRenderTargetBuffers (bool waitForVsync=true)
 Internal method for swapping all the buffers on all render targets, if _updateAllRenderTargets was called with a 'false' parameter.
virtual void setInvertVertexWinding (bool invert)
 Sets whether or not vertex windings set should be inverted; this can be important for rendering reflections.
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' ie the region of the target in which rendering can take place.
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.
virtual Real getHorizontalTexelOffset (void)=0
 Returns the horizontal texel offset value required for mapping texel origins to pixel origins in this rendersystem.
virtual Real getVerticalTexelOffset (void)=0
 Returns the vertical texel offset value required for mapping texel origins to pixel origins in this rendersystem.
virtual Real getMinimumDepthInputValue (void)=0
 Gets the minimum (closest) depth value to be used when rendering using identity transforms.
virtual Real getMaximumDepthInputValue (void)=0
 Gets the maximum (farthest) depth value to be used when rendering using identity transforms.
virtual void setCurrentPassIterationCount (const size_t count)
 set the current multi pass count value.
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 setCurrentPassIterationCount.
virtual void addListener (Listener *l)
 Adds a listener to the custom events that this render system can raise.
virtual void removeListener (Listener *l)
 Remove a listener to the custom events that this render system can raise.
virtual const
StringVector
getRenderSystemEvents (void) const
 Gets a list of the rendersystem specific events that this rendersystem can raise.
virtual void preExtraThreadsStarted ()=0
 Tell the rendersystem to perform any prep tasks it needs to directly before other threads which might access the rendering API are registered.
virtual void postExtraThreadsStarted ()=0
virtual void registerThread ()=0
 Register the an additional thread which may make calls to rendersystem-related objects.
virtual void unregisterThread ()=0
 Unregister an additional thread which may make calls to rendersystem-related objects.
void * operator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info
void * operator new (size_t sz)
void * operator new (size_t sz, void *ptr)
 placement operator new
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info
void * operator new[] (size_t sz)
void operator delete (void *ptr)
void operator delete (void *ptr, const char *, int, const char *)
void operator delete[] (void *ptr)
void operator delete[] (void *ptr, const char *, int, const char *)

Protected Types

typedef std::list
< Listener * > 
ListenerList
typedef std::list
< HardwareOcclusionQuery * > 
HardwareOcclusionQueryList

Protected Member Functions

bool updatePassIterationRenderState (void)
 updates pass iteration rendering state including bound gpu program parameter pass iteration auto constant entry
virtual void fireEvent (const String &name, const NameValuePairList *params=0)
 Internal method for firing a rendersystem event.
virtual void setClipPlanesImpl (const PlaneList &clipPlanes)=0
 Internal method used to set the underlying clip planes when needed.
virtual void initialiseFromRenderSystemCapabilities (RenderSystemCapabilities *caps, RenderTarget *primary)=0
 Initialize the render system from the capabilities.

Protected Attributes

RenderTargetMap mRenderTargets
 The render targets.
RenderTargetPriorityMap mPrioritisedRenderTargets
 The render targets, ordered by priority.
RenderTargetmActiveRenderTarget
 The Active render target.
GpuProgramParametersSharedPtr mActiveVertexGpuProgramParameters
 The Active GPU programs and gpu program parameters.
GpuProgramParametersSharedPtr mActiveGeometryGpuProgramParameters
GpuProgramParametersSharedPtr mActiveFragmentGpuProgramParameters
TextureManagermTextureManager
ViewportmActiveViewport
CullingMode mCullingMode
bool mVSync
bool mWBuffer
size_t mBatchCount
size_t mFaceCount
size_t mVertexCount
ColourValue mManualBlendColours [OGRE_MAX_TEXTURE_LAYERS][2]
 Saved manual colour blends.
bool mInvertVertexWinding
size_t mDisabledTexUnitsFrom
 Texture units from this upwards are disabled.
size_t mCurrentPassIterationCount
 number of times to render the current state
size_t mCurrentPassIterationNum
bool mDerivedDepthBias
 Whether to update the depth bias per render call.
float mDerivedDepthBiasBase
float mDerivedDepthBiasMultiplier
float mDerivedDepthBiasSlopeScale
StringVector mEventNames
 List of names of events this rendersystem may raise.
ListenerList mEventListeners
HardwareOcclusionQueryList mHwOcclusionQueries
bool mVertexProgramBound
bool mGeometryProgramBound
bool mFragmentProgramBound
PlaneList mClipPlanes
bool mClipPlanesDirty
RenderSystemCapabilitiesmRealCapabilities
 Used to store the capabilities of the graphics card.
RenderSystemCapabilitiesmCurrentCapabilities
bool mUseCustomCapabilities
DriverVersion mDriverVersion
bool mTexProjRelative
Vector3 mTexProjRelativeOrigin

Classes

class  Listener
 Defines a listener on the custom events that this render system can raise. More...


Detailed Description

Defines the functionality of a 3D API.

Remarks:
The RenderSystem class provides a base interface which abstracts the general functionality of the 3D API e.g. Direct3D or OpenGL. Whilst a few of the general methods have implementations, most of this class is abstract, requiring a subclass based on a specific API to be constructed to provide the full functionality. Note there are 2 levels to the interface - one which will be used often by the caller of the Ogre library, and one which is at a lower level and will be used by the other classes provided by Ogre. These lower level methods are prefixed with '_' to differentiate them. The advanced user of the library may use these lower level methods to access the 3D API at a more fundamental level (dealing direct with render states and rendering primitives), but still benefiting from Ogre's abstraction of exactly which 3D API is in use.
Author:
Steven Streeting
Version:
1.0

Definition at line 115 of file OgreRenderSystem.h.


Member Typedef Documentation

typedef MapIterator<Ogre::RenderTargetMap> Ogre::RenderSystem::RenderTargetIterator

Iterator over RenderTargets.

Definition at line 409 of file OgreRenderSystem.h.

typedef std::list<Listener*> Ogre::RenderSystem::ListenerList [protected]

Definition at line 1256 of file OgreRenderSystem.h.

typedef std::list<HardwareOcclusionQuery*> Ogre::RenderSystem::HardwareOcclusionQueryList [protected]

Definition at line 1259 of file OgreRenderSystem.h.


Constructor & Destructor Documentation

Ogre::RenderSystem::RenderSystem (  ) 

Default Constructor.

virtual Ogre::RenderSystem::~RenderSystem (  )  [virtual]

Destructor.


Member Function Documentation

virtual const String& Ogre::RenderSystem::getName ( void   )  const [pure virtual]

Returns the name of the rendering system.

virtual ConfigOptionMap& Ogre::RenderSystem::getConfigOptions ( void   )  [pure virtual]

Returns the details of this API's configuration options.

Remarks:
Each render system must be able to inform the world of what options must/can be specified for it's operation.
These are passed as strings for portability, but grouped into a structure (_ConfigOption) which includes both options and current value.
Note that the settings returned from this call are affected by the options that have been set so far, since some options are interdependent.
This routine is called automatically by the default configuration dialogue produced by Root::showConfigDialog or may be used by the caller for custom settings dialogs
Returns:
A 'map' of options, i.e. a list of options which is also indexed by option name.

virtual void Ogre::RenderSystem::setConfigOption ( const String name,
const String value 
) [pure virtual]

Sets an option for this API.

Remarks:
Used to confirm the settings (normally chosen by the user) in order to make the renderer able to initialise with the settings as required. This may be video mode, D3D driver, full screen / windowed etc. Called automatically by the default configuration dialog, and by the restoration of saved settings. These settings are stored and only activated when RenderSystem::initialise or RenderSystem::reinitialise are called.
If using a custom configuration dialog, it is advised that the caller calls RenderSystem::getConfigOptions again, since some options can alter resulting from a selection.
Parameters:
name The name of the option to alter.
value The value to set the option to.

virtual HardwareOcclusionQuery* Ogre::RenderSystem::createHardwareOcclusionQuery ( void   )  [pure virtual]

Create an object for performing hardware occlusion queries.

virtual void Ogre::RenderSystem::destroyHardwareOcclusionQuery ( HardwareOcclusionQuery hq  )  [virtual]

Destroy a hardware occlusion query object.

virtual String Ogre::RenderSystem::validateConfigOptions ( void   )  [pure virtual]

Validates the options set for the rendering system, returning a message if there are problems.

Note:
If the returned string is empty, there are no problems.

virtual RenderWindow* Ogre::RenderSystem::_initialise ( bool  autoCreateWindow,
const String windowTitle = "OGRE Render Window" 
) [virtual]

Start up the renderer using the settings selected (Or the defaults if none have been selected).

Remarks:
Called by Root::setRenderSystem. Shouldn't really be called directly, although this can be done if the app wants to.
Parameters:
autoCreateWindow If true, creates a render window automatically, based on settings chosen so far. This saves an extra call to _createRenderWindow for the main render window.
If an application has more specific window requirements, however (e.g. a level design app), it should specify false for this parameter and do it manually.
Returns:
A pointer to the automatically created window, if requested, otherwise null.

virtual RenderSystemCapabilities* Ogre::RenderSystem::createRenderSystemCapabilities (  )  const [pure virtual]

Query the real capabilities of the GPU and driver in the RenderSystem.

virtual void Ogre::RenderSystem::useCustomRenderSystemCapabilities ( RenderSystemCapabilities capabilities  )  [virtual]

Force the render system to use the special capabilities.

Can only be called before the render system has been fully initializer (before createWindow is called)

Parameters:
capabilities has to be a subset of the real capabilities and the caller is responsible for deallocating capabilities.

virtual void Ogre::RenderSystem::reinitialise ( void   )  [pure virtual]

Restart the renderer (normally following a change in settings).

virtual void Ogre::RenderSystem::shutdown ( void   )  [virtual]

Shutdown the renderer and cleanup resources.

virtual void Ogre::RenderSystem::setAmbientLight ( float  r,
float  g,
float  b 
) [pure virtual]

Sets the colour & strength of the ambient (global directionless) light in the world.

virtual void Ogre::RenderSystem::setShadingType ( ShadeOptions  so  )  [pure virtual]

Sets the type of light shading required (default = Gouraud).

virtual void Ogre::RenderSystem::setLightingEnabled ( bool  enabled  )  [pure virtual]

Sets whether or not dynamic lighting is enabled.

Parameters:
enabled If true, dynamic lighting is performed on geometry with normals supplied, geometry without normals will not be displayed. If false, no lighting is applied and all geometry will be full brightness.

void Ogre::RenderSystem::setWBufferEnabled ( bool  enabled  ) 

Sets whether or not W-buffers are enabled if they are available for this renderer.

Parameters:
enabled If true and the renderer supports them W-buffers will be used. If false W-buffers will not be used even if available. W-buffers are enabled by default for 16bit depth buffers and disabled for all other depths.

bool Ogre::RenderSystem::getWBufferEnabled ( void   )  const

Returns true if the renderer will try to use W-buffers when avalible.

virtual RenderWindow* Ogre::RenderSystem::_createRenderWindow ( const String name,
unsigned int  width,
unsigned int  height,
bool  fullScreen,
const NameValuePairList miscParams = 0 
) [pure virtual]

Creates a new rendering window.

Remarks:
This method creates a new rendering window as specified by the paramteters. The rendering system could be responible for only a single window (e.g. in the case of a game), or could be in charge of multiple ones (in the case of a level editor). The option to create the window as a child of another is therefore given. This method will create an appropriate subclass of RenderWindow depending on the API and platform implementation.
After creation, this window can be retrieved using getRenderTarget().
Parameters:
name The name of the window. Used in other methods later like setRenderTarget and getRenderWindow.
width The width of the new window.
height The height of the new window.
fullScreen Specify true to make the window full screen without borders, title bar or menu bar.
miscParams A NameValuePairList describing the other parameters for the new rendering window. Options are case sensitive. Unrecognised parameters will be ignored silently. These values might be platform dependent, but these are present for all platforms unless indicated otherwise:
Key: "title" Description: The title of the window that will appear in the title bar Values: string Default: RenderTarget name

Key: "colourDepth" Description: Colour depth of the resulting rendering window; only applies if fullScreen is set. Values: 16 or 32 Default: desktop depth Notes: [W32 specific]

Key: "left" Description: screen x coordinate from left Values: positive integers Default: 'center window on screen' Notes: Ignored in case of full screen

Key: "top" Description: screen y coordinate from top Values: positive integers Default: 'center window on screen' Notes: Ignored in case of full screen

Key: "depthBuffer" [DX9 specific] Description: Use depth buffer Values: false or true Default: true

Key: "externalWindowHandle" [API specific] Description: External window handle, for embedding the OGRE context Values: positive integer for W32 (HWND handle) poslong:posint:poslong (display*:screen:windowHandle) or poslong:posint:poslong:poslong (display*:screen:windowHandle:XVisualInfo*) for GLX Default: 0 (None)

Key: "externalGLControl" [Win32 OpenGL specific] Description: Let the external window control OpenGL i.e. don't select a pixel format for the window, do not change v-sync and do not swap buffer. When set to true, the calling application is responsible of OpenGL initialization and buffer swapping. It should also create an OpenGL context for its own rendering, Ogre will create one for its use. Then the calling application must also enable Ogre OpenGL context before calling any Ogre function and restore its OpenGL context after these calls. The Ogre OpenGL context can be retrieved after Ogre initialisation by calling wglGetCurrentDC() and wglGetCurrentContext(). It is only used when the externalWindowHandle parameter is used. Values: true, false Default: false

Key: "externalGLContext" [Win32 OpenGL specific] Description: Use an externally created GL context Values: <Context as="" unsigned="" long>=""> Default: 0 (create own context)

Key: "parentWindowHandle" [API specific] Description: Parent window handle, for embedding the OGRE context Values: positive integer for W32 (HWND handle) poslong:posint:poslong for GLX (display*:screen:windowHandle) Default: 0 (None)

Key: "FSAA" Description: Full screen antialiasing factor Values: 0,2,4,6,... Default: 0

Key: "displayFrequency" Description: Display frequency rate, for fullscreen mode Values: 60...? Default: Desktop vsync rate

Key: "vsync" Description: Synchronize buffer swaps to vsync Values: true, false Default: 0

Key: "border" Description: The type of window border (in windowed mode) Values: none, fixed, resize Default: resize

Key: "outerDimensions" Description: Whether the width/height is expressed as the size of the outer window, rather than the content area Values: true, false Default: false

Key: "useNVPerfHUD" [DX9 specific] Description: Enable the use of nVidia NVPerfHUD Values: true, false Default: false

Key: "gamma" Description: Enable hardware conversion from linear colour space to gamma colour space on rendering to the window. Values: true, false Default: false

virtual MultiRenderTarget* Ogre::RenderSystem::createMultiRenderTarget ( const String name  )  [pure virtual]

Create a MultiRenderTarget, which is a render target that renders to multiple RenderTextures at once.

Surfaces can be bound and unbound at will. This fails if mCapabilities->getNumMultiRenderTargets() is smaller than 2.

virtual void Ogre::RenderSystem::destroyRenderWindow ( const String name  )  [virtual]

Destroys a render window.

virtual void Ogre::RenderSystem::destroyRenderTexture ( const String name  )  [virtual]

Destroys a render texture.

virtual void Ogre::RenderSystem::destroyRenderTarget ( const String name  )  [virtual]

Destroys a render target of any sort.

virtual void Ogre::RenderSystem::attachRenderTarget ( RenderTarget target  )  [virtual]

Attaches the passed render target to the render system.

virtual RenderTarget* Ogre::RenderSystem::getRenderTarget ( const String name  )  [virtual]

Returns a pointer to the render target with the passed name, or NULL if that render target cannot be found.

virtual RenderTarget* Ogre::RenderSystem::detachRenderTarget ( const String name  )  [virtual]

Detaches the render target with the passed name from the render system and returns a pointer to it.

Note:
If the render target cannot be found, NULL is returned.

virtual RenderTargetIterator Ogre::RenderSystem::getRenderTargetIterator ( void   )  [virtual]

Returns a specialised MapIterator over all render targets attached to the RenderSystem.

Definition at line 412 of file OgreRenderSystem.h.

virtual String Ogre::RenderSystem::getErrorDescription ( long  errorNumber  )  const [pure virtual]

Returns a description of an error code.

void Ogre::RenderSystem::setWaitForVerticalBlank ( bool  enabled  ) 

Defines whether or now fullscreen render windows wait for the vertical blank before flipping buffers.

Remarks:
By default, all rendering windows wait for a vertical blank (when the CRT beam turns off briefly to move from the bottom right of the screen back to the top left) before flipping the screen buffers. This ensures that the image you see on the screen is steady. However it restricts the frame rate to the refresh rate of the monitor, and can slow the frame rate down. You can speed this up by not waiting for the blank, but this has the downside of introducing 'tearing' artefacts where part of the previous frame is still displayed as the buffers are switched. Speed vs quality, you choose.
Note:
Has NO effect on windowed mode render targets. Only aff