![]() |
OGRE 1.12.10
Object-Oriented Graphics Rendering Engine
|
Implementation of GL ES 2.x as a rendering system. More...
#include <OgreGLES2RenderSystem.h>
Public Member Functions | |
GLES2RenderSystem () | |
virtual | ~GLES2RenderSystem () |
void | _bindVao (GLContext *context, uint32 vao) |
Bind VAO, context should be equal to current context, as VAOs are not shared | |
void | _copyContentsToMemory (Viewport *vp, const Box &src, const PixelBox &dst, RenderWindow::FrameBuffer buffer) |
Copies the current contents of the render target to a pixelbox. | |
DepthBuffer * | _createDepthBufferFor (RenderTarget *renderTarget) |
Creates a DepthBuffer that can be attached to the specified RenderTarget. | |
RenderWindow * | _createRenderWindow (const String &name, unsigned int width, unsigned int height, bool fullScreen, const NameValuePairList *miscParams=0) |
Creates a new rendering window. | |
uint32 | _createVao () |
Create VAO on current context. | |
void | _destroyDepthBuffer (RenderTarget *pRenderWnd) |
void | _destroyFbo (GLContext *context, uint32 fbo) |
Destroy FBO immediately or defer if it was created on other context. | |
void | _destroyVao (GLContext *context, uint32 vao) |
Destroy VAO immediately or defer if it was created on other context. | |
void | _endFrame (void) |
Ends rendering of a frame to the current viewport. | |
GLES2StateCacheManager * | _getStateCacheManager () |
void | _initialise () override |
Start up the renderer using the settings selected (Or the defaults if none have been selected). | |
void | _oneTimeContextInitialization () |
One time initialization for the RenderState of a context. | |
void | _render (const RenderOperation &op) |
Render something to the active viewport. | |
void | _setAlphaRejectSettings (CompareFunction func, unsigned char value, bool alphaToCoverage) |
Sets the global alpha rejection approach for future renders. | |
void | _setCullingMode (CullingMode mode) |
Sets the culling mode for the render system based on the 'vertex winding'. | |
void | _setDepthBias (float constantBias, float slopeScaleBias) |
Sets the depth bias, NB you should use the Material version of this. | |
void | _setDepthBufferCheckEnabled (bool enabled=true) |
void | _setDepthBufferFunction (CompareFunction func=CMPF_LESS_EQUAL) |
void | _setDepthBufferParams (bool depthTest=true, bool depthWrite=true, CompareFunction depthFunction=CMPF_LESS_EQUAL) |
Sets the mode of operation for depth buffer tests from this point onwards. | |
void | _setDepthBufferWriteEnabled (bool enabled=true) |
void | _setLineWidth (float width) |
Set the line width when drawing as RenderOperation::OT_LINE_LIST/ RenderOperation::OT_LINE_STRIP. | |
void | _setPolygonMode (PolygonMode level) |
Sets how to rasterise triangles, as points, wireframe or solid polys. | |
void | _setRenderTarget (RenderTarget *target) |
Set current render target to target, enabling its GL context if needed. | |
void | _setSampler (size_t unit, Sampler &sampler) |
set the sampler settings for the given texture unit | |
void | _setTexture (size_t unit, bool enabled, const TexturePtr &tex) |
Sets the texture to bind to a given texture unit. | |
void | _setTextureAddressingMode (size_t stage, const Sampler::UVWAddressingMode &uvw) |
virtual void | _setTextureUnitFiltering (size_t unit, FilterOptions minFilter, FilterOptions magFilter, FilterOptions mipFilter) |
void | _setTextureUnitFiltering (size_t unit, FilterType ftype, FilterOptions filter) |
void | _setViewport (Viewport *vp) |
Sets the provided viewport as the active one for future rendering operations. | |
void | _switchContext (GLContext *context) |
Switch GL context, dealing with involved internal cached states too. | |
void | _unregisterContext (GLContext *context) |
Unregister a render target->context mapping. | |
virtual void | beginProfileEvent (const String &eventName) |
This marks the beginning of an event for GPU profiling. | |
void | bindGpuProgram (GpuProgram *prg) |
Binds a given GpuProgram (but not the parameters). | |
void | bindGpuProgramParameters (GpuProgramType gptype, const GpuProgramParametersPtr ¶ms, uint16 mask) |
Bind Gpu program parameters. | |
void | clearFrameBuffer (unsigned int buffers, const ColourValue &colour=ColourValue::Black, Real depth=1.0f, unsigned short stencil=0) |
Clears one or more frame buffers on the active render target. | |
GLint | convertCompareFunction (CompareFunction func) const |
GLint | convertStencilOp (StencilOperation op, bool invert=false) const |
HardwareOcclusionQuery * | createHardwareOcclusionQuery (void) |
Create an object for performing hardware occlusion queries. | |
virtual MultiRenderTarget * | createMultiRenderTarget (const String &name) |
Create a MultiRenderTarget, which is a render target that renders to multiple RenderTextures at once. | |
virtual RenderSystemCapabilities * | createRenderSystemCapabilities () const |
Query the real capabilities of the GPU and driver in the RenderSystem. | |
void | destroyRenderWindow (const String &name) |
Destroys a render window. | |
virtual void | endProfileEvent (void) |
Ends the currently active GPU profiling event. | |
const String & | getName (void) const |
Returns the name of the rendering system. | |
void | initialiseContext (RenderWindow *primary) |
void | initialiseFromRenderSystemCapabilities (RenderSystemCapabilities *caps, RenderTarget *primary) |
Initialize the render system from the capabilities. | |
virtual void | markProfileEvent (const String &eventName) |
Marks an instantaneous event for graphics profilers. | |
void | setColourBlendState (const ColourBlendState &state) |
Sets the global blending factors for combining subsequent renders with the existing frame contents. | |
void | setScissorTest (bool enabled, const Rect &rect=Rect()) |
Sets the 'scissor region' i.e. | |
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) |
This method allows you to set all the stencil buffer parameters in one call. | |
void | setStencilCheckEnabled (bool enabled) |
Turns stencil buffer checking on or off. | |
void | shutdown (void) |
Shutdown the renderer and cleanup resources. | |
void | unbindGpuProgram (GpuProgramType gptype) |
Unbinds GpuPrograms of a given GpuProgramType. | |
![]() | |
virtual | ~GLRenderSystemCommon () |
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. | |
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. | |
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. | |
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 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. | |
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 | _resumeFrame (RenderSystemContext *context) |
Resume rendering for a frame. | |
void | _setColourBufferWriteEnabled (bool red, bool green, bool blue, bool alpha) |
virtual void | _setDepthClamp (bool enable) |
Clamp depth values to near and far plane rather than discarding. | |
void | _setFog (FogMode f) |
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. | |
void | _setProjectionMatrix (Matrix4 m) |
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 | _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 | _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) |
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 | bindGpuProgramPassIterationParameters (GpuProgramType gptype) |
void | convertColourValue (const ColourValue &colour, uint32 *pDest) |
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 RenderTarget * | detachRenderTarget (const String &name) |
Detaches the render target with the passed name from the render system and returns a pointer to it. | |
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. | |
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. | |
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 | 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. | |
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). | |
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. | |
void | useCustomRenderSystemCapabilities (RenderSystemCapabilities *capabilities) |
Force the render system to use the special capabilities. | |
Additional Inherited Members | |
![]() | |
typedef std::vector< VideoMode > | VideoModes |
![]() | |
typedef MapIterator< Ogre::RenderTargetMap > | RenderTargetIterator |
Iterator over RenderTargets. | |
![]() | |
static Listener * | getSharedListener (void) |
Retrieve a pointer to the current shared render system listener. | |
static void | setSharedListener (Listener *listener) |
Sets shared listener. | |
Implementation of GL ES 2.x as a rendering system.