OGRE
2.2.4
Object-Oriented Graphics Rendering Engine
|
#include <OgreMetalDepthBuffer.h>
Public Types | |
enum | PoolId { POOL_NO_DEPTH = 0, POOL_MANUAL_USAGE = 0, POOL_DEFAULT = 1, POOL_NON_SHAREABLE = 65534, POOL_INVALID = 65535, POOL_NO_DEPTH = 0, POOL_MANUAL_USAGE = 0, POOL_DEFAULT = 1, POOL_NON_SHAREABLE = 65534, POOL_INVALID = 65535 } |
enum | PoolId { POOL_NO_DEPTH = 0, POOL_MANUAL_USAGE = 0, POOL_DEFAULT = 1, POOL_NON_SHAREABLE = 65534, POOL_INVALID = 65535, POOL_NO_DEPTH = 0, POOL_MANUAL_USAGE = 0, POOL_DEFAULT = 1, POOL_NON_SHAREABLE = 65534, POOL_INVALID = 65535 } |
Public Member Functions | |
MetalDepthBuffer (uint16 poolId, MetalRenderSystem *renderSystem, uint32 width, uint32 height, uint32 fsaa, uint32 multiSampleQuality, PixelFormat pixelFormat, bool isDepthTexture, bool _isManual, id< MTLTexture > depthTexture, id< MTLTexture > stencilTexture, MetalDevice *device) | |
virtual | ~MetalDepthBuffer () |
virtual void | _notifyRenderTargetAttached (RenderTarget *renderTarget) |
Called when a RenderTarget is attaches this DepthBuffer. More... | |
virtual void | _notifyRenderTargetDetached (RenderTarget *renderTarget) |
Called when a RenderTarget is detaches from this DepthBuffer. More... | |
void | _setPoolId (uint16 poolId) |
Sets the pool id in which this DepthBuffer lives. More... | |
bool | copyTo (DepthBuffer *destination) |
Copies the contents of the DepthBuffer to the destination. More... | |
virtual uint16 | getBitDepth () const |
PixelFormat | getFormat (void) const |
virtual uint32 | getFsaa () const |
virtual const String & | getFsaaHint () const |
virtual uint32 | getHeight () const |
MetalDevice * | getOwnerDevice (void) const |
virtual uint16 | getPoolId () const |
Gets the pool id in which this DepthBuffer lives. More... | |
virtual uint32 | getWidth () const |
virtual bool | isCompatible (RenderTarget *renderTarget, bool exactFormatMatch) const |
Returns whether the specified RenderTarget is compatible with this DepthBuffer That is, this DepthBuffer can be attached to that RenderTarget. More... | |
bool | isDepthTexture (void) const |
bool | isManual () const |
Manual DepthBuffers are cleared in RenderSystem's destructor. More... | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
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 *) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info More... | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *ptr) |
placement operator new More... | |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info More... | |
void * | operator new[] (size_t sz) |
Public Attributes | |
MTLRenderPassDepthAttachmentDescriptor * | mDepthAttachmentDesc |
MTLRenderPassStencilAttachmentDescriptor * | mStencilAttachmentDesc |
Static Public Attributes | |
static PixelFormatGpu | DefaultDepthBufferFormat |
|
inherited |
|
inherited |
Ogre::MetalDepthBuffer::MetalDepthBuffer | ( | uint16 | poolId, |
MetalRenderSystem * | renderSystem, | ||
uint32 | width, | ||
uint32 | height, | ||
uint32 | fsaa, | ||
uint32 | multiSampleQuality, | ||
PixelFormat | pixelFormat, | ||
bool | isDepthTexture, | ||
bool | _isManual, | ||
id< MTLTexture > | depthTexture, | ||
id< MTLTexture > | stencilTexture, | ||
MetalDevice * | device | ||
) |
|
virtual |
|
virtualinherited |
Called when a RenderTarget is attaches this DepthBuffer.
renderTarget | The RenderTarget that has just been attached |
|
virtualinherited |
Called when a RenderTarget is detaches from this DepthBuffer.
renderTarget | The RenderTarget that has just been detached |
|
inherited |
Sets the pool id in which this DepthBuffer lives.
Note this will detach any render target from this depth buffer
|
inherited |
Copies the contents of the DepthBuffer to the destination.
Useful when you want to bind a DepthBuffer for sampling as a texture, but later resume rendering with this depth buffer (binding a DepthBuffer as a texture forces it to be decompressed and disables other optimization algorithms on a lot of Hardware. GCN Tahiti aka AMD Radeon R9 280 is no longer affected by this issue)
destination | DepthBuffer to copy to. |
|
virtualinherited |
|
inherited |
|
virtualinherited |
|
virtualinherited |
|
virtualinherited |
|
inline |
|
virtualinherited |
Gets the pool id in which this DepthBuffer lives.
|
virtualinherited |
|
virtual |
Returns whether the specified RenderTarget is compatible with this DepthBuffer That is, this DepthBuffer can be attached to that RenderTarget.
renderTarget | The render target to test against |
exactFormatMatch | True if looking for the exact format according to the RT's preferred format. False if the RT's preferred format should be ignored. |
Reimplemented from Ogre::DepthBuffer.
|
inherited |
|
inherited |
Manual DepthBuffers are cleared in RenderSystem's destructor.
Non-manual ones are released with it's render target (aka, a backbuffer or similar)
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
|
inlineinherited |
|
inlineinherited |
placement operator new
|
inlineinherited |
array operator new, with debug line info
|
inlineinherited |
|
staticinherited |
MTLRenderPassDepthAttachmentDescriptor* Ogre::MetalDepthBuffer::mDepthAttachmentDesc |
MTLRenderPassStencilAttachmentDescriptor* Ogre::MetalDepthBuffer::mStencilAttachmentDesc |