![]() |
OGRE 14.0
Object-Oriented Graphics Rendering Engine
|
OpenGL supports 3 different methods: FBO, pbuffer & Copy. More...
#include <OgreGLDepthBufferCommon.h>
Additional Inherited Members | |
![]() | |
enum | PoolId { POOL_NO_DEPTH = 0 , POOL_MANUAL_USAGE = 0 , POOL_DEFAULT = 1 } |
OpenGL supports 3 different methods: FBO, pbuffer & Copy.
Each one has it's own limitations. Non-FBO methods are solved using "dummy" DepthBuffers. That is, a DepthBuffer pointer is attached to the RenderTarget (for the sake of consistency) but it doesn't actually contain a Depth surface/renderbuffer (mDepthBuffer & mStencilBuffer are null pointers all the time) Those dummy DepthBuffers are identified thanks to their GL context. Note that FBOs don't allow sharing with the main window's depth buffer. Therefore even when FBO is enabled, a dummy DepthBuffer is still used to manage the windows.
Ogre::GLDepthBufferCommon::GLDepthBufferCommon | ( | uint16 | poolId, |
GLRenderSystemCommon * | renderSystem, | ||
GLContext * | creatorContext, | ||
GLHardwarePixelBufferCommon * | depth, | ||
GLHardwarePixelBufferCommon * | stencil, | ||
const RenderTarget * | target, | ||
bool | isManual | ||
) |
|
virtual |
|
overridevirtual |
Returns whether the specified RenderTarget is compatible with this DepthBuffer That is, this DepthBuffer can be attached to that RenderTarget.
Most APIs impose the following restrictions: Width & height must be equal or higher than the render target's They must be of the same bit depth. They need to have the same FSAA setting
renderTarget | The render target to test against |
Reimplemented from Ogre::DepthBuffer.
|
inline |
|
inline |
|
inline |