![]() |
OGRE 1.12.10
Object-Oriented Graphics Rendering Engine
|
#include <OgreGLRenderSystemCommon.h>
Classes | |
struct | VideoMode |
Public Types | |
typedef std::vector< VideoMode > | VideoModes |
![]() | |
typedef MapIterator< Ogre::RenderTargetMap > | RenderTargetIterator |
Iterator over RenderTargets. | |
Public Member Functions | |
virtual | ~GLRenderSystemCommon () |
virtual void | _bindVao (GLContext *context, uint32 vao) |
Bind VAO, context should be equal to current context, as VAOs are not shared | |
void | _completeDeferredVaoFboDestruction () |
Complete destruction of VAOs and FBOs deferred while creator context was not current. | |
void | _convertProjectionMatrix (const Matrix4 &matrix, Matrix4 &dest, bool) |
Converts a uniform projection matrix to suitable for this render system. | |
virtual void | _copyContentsToMemory (Viewport *vp, const Box &src, const PixelBox &dst, RenderWindow::FrameBuffer buffer)=0 |
Copies the current contents of the render target to a pixelbox. | |
virtual uint32 | _createVao () |
Create VAO on current context. | |
virtual void | _destroyFbo (GLContext *context, uint32 fbo) |
Destroy FBO immediately or defer if it was created on other context. | |
virtual void | _destroyVao (GLContext *context, uint32 vao) |
Destroy VAO immediately or defer if it was created on other context. | |
GLContext * | _getCurrentContext () |
Returns the current context. | |
virtual void | _getDepthStencilFormatFor (PixelFormat internalColourFormat, uint32 *depthFormat, uint32 *stencilFormat) |
Mimics D3D9RenderSystem::_getDepthStencilFormatFor, if no FBO RTT manager, outputs GL_NONE. | |
GLContext * | _getMainContext () |
Returns the main context. | |
virtual void | _unregisterContext (GLContext *context)=0 |
Unregister a render target->context mapping. | |
virtual void | bindVertexElementToGpu (const VertexElement &elem, const HardwareVertexBufferSharedPtr &vertexBuffer, const size_t vertexStart)=0 |
bool | checkExtension (const String &ext) const |
Check if an extension is available. | |
unsigned int | getDisplayMonitorCount () const |
Real | getHorizontalTexelOffset (void) |
Returns the horizontal texel offset value required for mapping texel origins to pixel origins in this rendersystem. | |
Real | getMaximumDepthInputValue (void) |
Gets the maximum (farthest) depth value to be used when rendering using identity transforms. | |
Real | getMinimumDepthInputValue (void) |
Gets the minimum (closest) depth value to be used when rendering using identity transforms. | |
Real | getVerticalTexelOffset (void) |
Returns the vertical texel offset value required for mapping texel origins to pixel origins in this rendersystem. | |
bool | hasMinGLVersion (int major, int minor) const |
Check if GL Version is supported. | |
void | postExtraThreadsStarted () |
Tell the rendersystem to perform any tasks it needs to directly after other threads which might access the rendering API are registered. | |
void | preExtraThreadsStarted () |
Tell the rendersystem to perform any prep tasks it needs to directly before other threads which might access the rendering API are registered. | |
void | registerThread () |
Register the an additional thread which may make calls to rendersystem-related objects. | |
void | setConfigOption (const String &name, const String &value) |
Specific options: | |
void | unregisterThread () |
Unregister an additional thread which may make calls to rendersystem-related objects. | |
String | validateConfigOptions () |
Validates the options set for the rendering system, returning a message if there are problems. | |
![]() | |
RenderSystem () | |
Default Constructor. | |
virtual | ~RenderSystem () |
Destructor. | |
virtual void | _beginFrame () |
Signifies the beginning of a frame, i.e. | |
virtual void | _beginGeometryCount (void) |
The RenderSystem will keep a count of tris rendered, this resets the count. | |
void | _cleanupDepthBuffers (bool bCleanManualBuffers=true) |
Removes all depth buffers. | |
virtual DepthBuffer * | _createDepthBufferFor (RenderTarget *renderTarget)=0 |
Creates a DepthBuffer that can be attached to the specified RenderTarget. | |
virtual RenderWindow * | _createRenderWindow (const String &name, unsigned int width, unsigned int height, bool fullScreen, const NameValuePairList *miscParams=0) |
Creates a new rendering window. | |
bool | _createRenderWindows (const RenderWindowDescriptionList &renderWindowDescriptions, RenderWindowList &createdWindows) |
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 | _dispatchCompute (const Vector3i &workgroupDim) |
virtual void | _endFrame (void)=0 |
Ends rendering of a frame to the current viewport. | |
virtual unsigned int | _getBatchCount (void) const |
Reports the number of batches rendered since the last _beginGeometryCount call. | |
virtual CullingMode | _getCullingMode (void) const |
const String & | _getDefaultViewportMaterialScheme (void) const |
Returns the default material scheme used by the render system. | |
virtual unsigned int | _getFaceCount (void) const |
Reports the number of tris 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 Viewport * | _getViewport (void) |
Get the current active viewport for rendering. | |
virtual void | _initialise () |
Start up the renderer using the settings selected (Or the defaults if none have been selected). | |
void | _initRenderTargets (void) |
Utility method for initialising all render targets attached to this rendering system. | |
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 RenderSystemContext * | _pauseFrame (void) |
Pause rendering for a frame. | |
virtual void | _render (const RenderOperation &op) |
Render something to the active viewport. | |
virtual void | _resumeFrame (RenderSystemContext *context) |
Resume rendering for a frame. | |
virtual void | _setAlphaRejectSettings (CompareFunction func, unsigned char value, bool alphaToCoverage)=0 |
Sets the global alpha rejection approach for future renders. | |
void | _setColourBufferWriteEnabled (bool red, bool green, bool blue, bool alpha) |
virtual void | _setCullingMode (CullingMode mode)=0 |
Sets the culling mode for the render system based on the 'vertex winding'. | |
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 | _setDepthBufferCheckEnabled (bool enabled=true) |
virtual void | _setDepthBufferFunction (CompareFunction func=CMPF_LESS_EQUAL) |
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 | _setDepthBufferWriteEnabled (bool enabled=true) |
virtual void | _setDepthClamp (bool enable) |
Clamp depth values to near and far plane rather than discarding. | |
void | _setFog (FogMode f) |
virtual void | _setLineWidth (float width) |
Set the line width when drawing as RenderOperation::OT_LINE_LIST/ RenderOperation::OT_LINE_STRIP. | |
virtual void | _setPointParameters (bool attenuationEnabled, Real minSize, Real maxSize) |
virtual void | _setPointSpritesEnabled (bool enabled) |
Sets whether or not rendering points using OT_POINT_LIST will render point sprites (textured quads) or plain points. | |
virtual void | _setPolygonMode (PolygonMode level)=0 |
Sets how to rasterise triangles, as points, wireframe or solid polys. | |
void | _setProjectionMatrix (Matrix4 m) |
virtual void | _setRenderTarget (RenderTarget *target)=0 |
Set current render target to target, enabling its device context if needed. | |
virtual void | _setSampler (size_t texUnit, Sampler &s)=0 |
set the sampler settings for the given texture unit | |
void | _setSceneBlending (SceneBlendFactor sourceFactor, SceneBlendFactor destFactor, SceneBlendOperation op=SBO_ADD) |
void | _setSeparateSceneBlending (SceneBlendFactor sourceFactor, SceneBlendFactor destFactor, SceneBlendFactor sourceFactorAlpha, SceneBlendFactor destFactorAlpha, SceneBlendOperation op=SBO_ADD, SceneBlendOperation alphaOp=SBO_ADD) |
virtual void | _setTexture (size_t unit, bool enabled, const TexturePtr &texPtr)=0 |
Sets the texture to bind to a given texture unit. | |
virtual void | _setTextureAddressingMode (size_t unit, const Sampler::UVWAddressingMode &uvw) |
virtual void | _setTextureBlendMode (size_t unit, const LayerBlendModeEx &bm) |
Sets the texture blend modes from a TextureUnitState record. | |
virtual void | _setTextureCoordCalculation (size_t unit, TexCoordCalcMethod m, const Frustum *frustum=0) |
Sets a method for automatically calculating texture coordinates for a stage. | |
virtual void | _setTextureCoordSet (size_t unit, size_t index) |
Sets the texture coordinate set to use for a texture unit. | |
virtual void | _setTextureMatrix (size_t unit, const Matrix4 &xform) |
Sets the texture coordinate transformation matrix for a texture unit. | |
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 | _setTextureUnitFiltering (size_t unit, FilterOptions minFilter, FilterOptions magFilter, FilterOptions mipFilter) |
virtual void | _setTextureUnitFiltering (size_t unit, FilterType ftype, FilterOptions filter) |
virtual void | _setTextureUnitSettings (size_t texUnit, TextureUnitState &tl) |
Utility function for setting all the properties of a texture unit at once. | |
virtual void | _setVertexTexture (size_t unit, const TexturePtr &tex) |
Binds a texture to a vertex, geometry, compute, tesselation hull or tessellation domain sampler. | |
void | _setViewMatrix (const Matrix4 &m) |
virtual void | _setViewport (Viewport *vp)=0 |
Sets the provided viewport as the active one for future rendering operations. | |
void | _setWorldMatrix (const Matrix4 &m) |
virtual void | _swapAllRenderTargetBuffers () |
Internal method for swapping all the buffers on all render targets, if _updateAllRenderTargets was called with a 'false' parameter. | |
virtual void | _updateAllRenderTargets (bool swapBuffers=true) |
Internal method for updating all render targets attached to this rendering system. | |
virtual void | _useLights (unsigned short limit) |
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) | |
void | addListener (Listener *l) |
Adds a listener to the custom events that this render system can raise. | |
virtual void | applyFixedFunctionParams (const GpuProgramParametersPtr ¶ms, uint16 variabilityMask) |
void | attachRenderTarget (RenderTarget &target) |
Attaches the passed render target to the render system. | |
virtual void | beginProfileEvent (const String &eventName)=0 |
This marks the beginning of an event for GPU profiling. | |
virtual void | bindGpuProgram (GpuProgram *prg) |
Binds a given GpuProgram (but not the parameters). | |
virtual void | bindGpuProgramParameters (GpuProgramType gptype, const GpuProgramParametersPtr ¶ms, uint16 variabilityMask)=0 |
Bind Gpu program parameters. | |
virtual void | bindGpuProgramPassIterationParameters (GpuProgramType gptype) |
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. | |
void | convertColourValue (const ColourValue &colour, uint32 *pDest) |
virtual HardwareOcclusionQuery * | createHardwareOcclusionQuery (void)=0 |
Create an object for performing hardware occlusion queries. | |
virtual MultiRenderTarget * | createMultiRenderTarget (const String &name)=0 |
Create a MultiRenderTarget, which is a render target that renders to multiple RenderTextures at once. | |
virtual RenderSystemCapabilities * | createRenderSystemCapabilities () const =0 |
Query the real capabilities of the GPU and driver in the RenderSystem. | |
virtual void | destroyHardwareOcclusionQuery (HardwareOcclusionQuery *hq) |
Destroy a hardware occlusion query object. | |
virtual void | destroyRenderTarget (const String &name) |
Destroys a render target of any sort. | |
virtual void | destroyRenderTexture (const String &name) |
Destroys a render texture. | |
virtual void | destroyRenderWindow (const String &name) |
Destroys a render window. | |
virtual RenderTarget * | detachRenderTarget (const String &name) |
Detaches the render target with the passed name from the render system and returns a pointer to it. | |
virtual void | endProfileEvent (void)=0 |
Ends the currently active GPU profiling event. | |
const RenderSystemCapabilities * | getCapabilities (void) const |
Gets the capabilities of the render system. | |
virtual VertexElementType | getColourVertexElementType (void) const |
const ConfigOptionMap & | getConfigOptions () const |
Returns the details of this API's configuration options. | |
virtual void | getCustomAttribute (const String &name, void *pData) |
Gets a custom (maybe platform-specific) attribute. | |
const DriverVersion & | getDriverVersion (void) const |
Returns the driver version. | |
virtual const GpuProgramParametersPtr & | getFixedFunctionParams (TrackVertexColourType tracking, FogMode fog) |
HardwareVertexBufferSharedPtr | getGlobalInstanceVertexBuffer () const |
Returns the global instance vertex buffer. | |
VertexDeclaration * | getGlobalInstanceVertexBufferVertexDeclaration () const |
Gets vertex declaration for the global vertex buffer for the global instancing. | |
size_t | getGlobalNumberOfInstances () const |
Gets the global number of instances. | |
bool | getInvertVertexWinding (void) const |
Indicates whether or not the vertex windings set will be inverted for the current render (e.g. | |
RenderSystemCapabilities * | getMutableCapabilities () |
Get a pointer to the current capabilities being used by the RenderSystem. | |
virtual const String & | getName (void) const =0 |
Returns the name of the rendering system. | |
uint16 | getNativeShadingLanguageVersion () const |
Gets the native shading language version for this render system. | |
const StringVector & | getRenderSystemEvents (void) const |
Gets a list of the rendersystem specific events that this rendersystem can raise. | |
RenderTarget * | getRenderTarget (const String &name) |
Returns a pointer to the render target with the passed name, or NULL if that render target cannot be found. | |
RenderTargetIterator | getRenderTargetIterator (void) |
Returns a specialised MapIterator over all render targets attached to the RenderSystem. | |
RenderWindowDescription | getRenderWindowDescription () const |
get a RenderWindowDescription from the current ConfigOptionMap | |
bool | isGpuProgramBound (GpuProgramType gptype) |
Returns whether or not a Gpu program of the given type is currently bound. | |
bool | isReverseDepthBufferEnabled () const |
Returns if reverse Z-buffer is enabled. | |
virtual bool | isStaticBufferLockable () const |
Returns whether under the current render system buffers marked as TU_STATIC can be locked for update. | |
virtual void | markProfileEvent (const String &event)=0 |
Marks an instantaneous event for graphics profilers. | |
void | reinitialise (void) |
Restart the renderer (normally following a change in settings). | |
void | removeListener (Listener *l) |
Remove a listener to the custom events that this render system can raise. | |
virtual void | setClipPlanes (const PlaneList &clipPlanes) |
Sets the user clipping region. | |
virtual void | setColourBlendState (const ColourBlendState &state)=0 |
Sets the global blending factors for combining subsequent renders with the existing frame contents. | |
virtual void | setCurrentPassIterationCount (const size_t count) |
set the current multi pass count value. | |
void | setDepthBufferFor (RenderTarget *renderTarget) |
Retrieves an existing DepthBuffer or creates a new one suited for the given RenderTarget and sets it. | |
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 bool | setDrawBuffer (ColourBufferType colourBuffer) |
Sets the colour buffer that the render system will to draw. | |
void | setGlobalInstanceVertexBuffer (const HardwareVertexBufferSharedPtr &val) |
Sets the global instance vertex buffer. | |
void | setGlobalInstanceVertexBufferVertexDeclaration (VertexDeclaration *val) |
Sets vertex declaration for the global vertex buffer for the global instancing. | |
void | setGlobalNumberOfInstances (const size_t val) |
Sets the global number of instances. | |
void | setInvertVertexWinding (bool invert) |
Sets whether or not vertex windings set should be inverted; this can be important for rendering reflections. | |
virtual void | setLightingEnabled (bool enabled) |
Sets whether or not dynamic lighting is enabled. | |
virtual void | setNormaliseNormals (bool normalise) |
Sets whether or not normals are to be automatically normalised. | |
virtual void | setScissorTest (bool enabled, const Rect &rect=Rect())=0 |
Sets the 'scissor region' i.e. | |
void | setScissorTest (bool enabled, size_t left, size_t top=0, size_t right=800, size_t bottom=600) |
virtual void | setShadingType (ShadeOptions so) |
Sets the type of light shading required (default = Gouraud). | |
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, bool readBackAsTexture=false)=0 |
This method allows you to set all the stencil buffer parameters in one call. | |
virtual void | setStencilCheckEnabled (bool enabled)=0 |
Turns stencil buffer checking on or off. | |
void | setStencilState (const StencilState &state) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
virtual void | shutdown (void) |
Shutdown the renderer and cleanup resources. | |
virtual void | unbindGpuProgram (GpuProgramType gptype) |
Unbinds GpuPrograms of a given GpuProgramType. | |
void | useCustomRenderSystemCapabilities (RenderSystemCapabilities *capabilities) |
Force the render system to use the special capabilities. | |
Additional Inherited Members | |
![]() | |
static Listener * | getSharedListener (void) |
Retrieve a pointer to the current shared render system listener. | |
static void | setSharedListener (Listener *listener) |
Sets shared listener. | |
typedef std::vector<VideoMode> Ogre::GLRenderSystemCommon::VideoModes |
|
inlinevirtual |
|
virtual |
Specific options:
Key | Default | Description |
---|---|---|
Reversed Z-Buffer | false | Use reverse depth buffer to improve depth precision (GL3+ only) |
Separate Shader Objects | false | Compile shaders individually instad of using monolithic programs. Better introspection. Allows mixing GLSL and SPIRV shaders (GL3+ only) |
Fixed Pipeline Enabled | true | Use fixed function units where possible. Disable to test migration to shader-only pipeline (GL only) |
Implements Ogre::RenderSystem.
|
pure virtual |
Copies the current contents of the render target to a pixelbox.
Implemented in Ogre::GLRenderSystem, Ogre::GL3PlusRenderSystem, and Ogre::GLES2RenderSystem.
|
inline |
Returns the main context.
|
inline |
Returns the current context.
Check if GL Version is supported.
Check if an extension is available.
|
inlinevirtual |
Validates the options set for the rendering system, returning a message if there are problems.
Implements Ogre::RenderSystem.
References Ogre::BLANKSTRING.
Unregister a render target->context mapping.
If the context of target is the current context, change the context to the main context so it can be destroyed safely.
Implemented in Ogre::GL3PlusRenderSystem, Ogre::GLRenderSystem, and Ogre::GLES2RenderSystem.
|
pure virtual |
Returns the horizontal texel offset value required for mapping texel origins to pixel origins in this rendersystem.
Implements Ogre::RenderSystem.
Returns the vertical texel offset value required for mapping texel origins to pixel origins in this rendersystem.
Implements Ogre::RenderSystem.
Gets the minimum (closest) depth value to be used when rendering using identity transforms.
Implements Ogre::RenderSystem.
Gets the maximum (farthest) depth value to be used when rendering using identity transforms.
Implements Ogre::RenderSystem.
|
virtual |
Converts a uniform projection matrix to suitable for this render system.
Implements Ogre::RenderSystem.
|
virtual |
Mimics D3D9RenderSystem::_getDepthStencilFormatFor, if no FBO RTT manager, outputs GL_NONE.
Reimplemented in Ogre::GL3PlusRenderSystem.
Create VAO on current context.
Reimplemented in Ogre::GL3PlusRenderSystem, and Ogre::GLES2RenderSystem.
Bind VAO, context should be equal to current context, as VAOs are not shared
Reimplemented in Ogre::GL3PlusRenderSystem, and Ogre::GLES2RenderSystem.
|
inlinevirtual |
Destroy VAO immediately or defer if it was created on other context.
Reimplemented in Ogre::GL3PlusRenderSystem, and Ogre::GLES2RenderSystem.
|
inlinevirtual |
Destroy FBO immediately or defer if it was created on other context.
Reimplemented in Ogre::GL3PlusRenderSystem, and Ogre::GLES2RenderSystem.
void Ogre::GLRenderSystemCommon::_completeDeferredVaoFboDestruction | ( | ) |
Complete destruction of VAOs and FBOs deferred while creator context was not current.
Reimplemented from Ogre::RenderSystem.
|
virtual |
Register the an additional thread which may make calls to rendersystem-related objects.
Reimplemented from Ogre::RenderSystem.
|
virtual |
Unregister an additional thread which may make calls to rendersystem-related objects.
Reimplemented from Ogre::RenderSystem.
|
virtual |
Tell the rendersystem to perform any prep tasks it needs to directly before other threads which might access the rendering API are registered.
Reimplemented from Ogre::RenderSystem.
|
virtual |
Tell the rendersystem to perform any tasks it needs to directly after other threads which might access the rendering API are registered.
Reimplemented from Ogre::RenderSystem.