OGRE-Next  3.0.0
Object-Oriented Graphics Rendering Engine
Ogre::RenderPassDescriptor Class Reference

#include <OgreRenderPassDescriptor.h>

+ Inheritance diagram for Ogre::RenderPassDescriptor:

Public Types

enum  EntryTypes {
  Colour0 = 1u << 0u , Colour1 = 1u << 1u , Colour2 = 1u << 2u , Colour3 = 1u << 3u ,
  Colour4 = 1u << 4u , Colour5 = 1u << 5u , Colour6 = 1u << 6u , Colour7 = 1u << 7u ,
  Depth = 1u << 30u , Stencil = 1u << 31u , Colour = Colour0 | Colour1 | Colour2 | Colour3 | Colour4 | Colour5 | Colour6 | Colour7 , All = Colour | Depth | Stencil
}
 

Public Member Functions

 RenderPassDescriptor ()
 
virtual ~RenderPassDescriptor ()
 
void checkWarnIfRtvWasFlushed (uint32 entriesToFlush)
 
virtual void entriesModified (uint32 entryTypes)
 Call this when you're done modified mColour. More...
 
void findAnyTexture (TextureGpu **outAnyTargetTexture, uint8 &outAnyMipLevel)
 Finds the first non-null texture and outputs it May return nullptr if nothing is bound. More...
 
virtual void getCustomAttribute (IdString name, void *pData, uint32 extraParam)
 
uint8 getNumColourEntries () const
 
bool hasAttachment (const TextureGpu *texture) const
 
virtual bool hasSameAttachments (const RenderPassDescriptor *otherPassDesc) const
 
bool hasStencilFormat () const
 Returns true if either Stencil is set, or if Depth is set with depth-stencil attachment. More...
 
bool requiresTextureFlipping () const
 
virtual void setClearColour (const ColourValue &clearColour)
 Sets the clear colour to all entries. More...
 
virtual void setClearColour (uint8 idx, const ColourValue &clearColour)
 Sets the clear colour to specific entry. More...
 
virtual void setClearDepth (Real clearDepth)
 
virtual void setClearStencil (uint32 clearStencil)
 

Public Attributes

RenderPassColourTarget mColour [OGRE_MAX_MULTIPLE_RENDER_TARGETS]
 
RenderPassDepthTarget mDepth
 
bool mInformationOnly
 When true, beginRenderPassDescriptor & endRenderPassDescriptor won't actually load/store this pass descriptor; but will still set the mCurrentRenderPassDescriptor so we have required information by some passes. More...
 
bool mReadyWindowForPresent
 When true, if we have a RenderWindow among our colour entries, then this pass is the last one to render to it and should ready the surface for presentation/swapping. More...
 
RenderPassStencilTarget mStencil
 

Member Enumeration Documentation

◆ EntryTypes

Enumerator
Colour0 
Colour1 
Colour2 
Colour3 
Colour4 
Colour5 
Colour6 
Colour7 
Depth 
Stencil 
Colour 
All 

Constructor & Destructor Documentation

◆ RenderPassDescriptor()

Ogre::RenderPassDescriptor::RenderPassDescriptor ( )

◆ ~RenderPassDescriptor()

virtual Ogre::RenderPassDescriptor::~RenderPassDescriptor ( )
virtual

Member Function Documentation

◆ checkWarnIfRtvWasFlushed()

void Ogre::RenderPassDescriptor::checkWarnIfRtvWasFlushed ( uint32  entriesToFlush)

◆ entriesModified()

virtual void Ogre::RenderPassDescriptor::entriesModified ( uint32  entryTypes)
virtual

Call this when you're done modified mColour.

Note there must be no gaps, e.g. mColour[1] is empty but mColour[0] & mColour[2] are not.

Remarks
Values that are modified by calling setClearColour et al don't need to call entriesModified. Prefer changing those values using those calls since it's faster.
Parameters
entryTypesBitmask. See EntryTypes

Reimplemented in Ogre::VulkanRenderPassDescriptor, Ogre::MetalRenderPassDescriptor, Ogre::GL3PlusRenderPassDescriptor, and Ogre::D3D11RenderPassDescriptor.

◆ findAnyTexture()

void Ogre::RenderPassDescriptor::findAnyTexture ( TextureGpu **  outAnyTargetTexture,
uint8 outAnyMipLevel 
)

Finds the first non-null texture and outputs it May return nullptr if nothing is bound.

◆ getCustomAttribute()

virtual void Ogre::RenderPassDescriptor::getCustomAttribute ( IdString  name,
void *  pData,
uint32  extraParam 
)
inlinevirtual
Parameters
nameWhen it's set to "ID3D11RenderTargetView", extraParam must be in range [0;OGRE_MAX_MULTIPLE_RENDER_TARGETS) When it's set to "ID3D11DepthStencilView", extraParam can be any value
pDataOutput
extraParamSee name

Reimplemented in Ogre::D3D11RenderPassDescriptor.

◆ getNumColourEntries()

uint8 Ogre::RenderPassDescriptor::getNumColourEntries ( ) const
inline

◆ hasAttachment()

bool Ogre::RenderPassDescriptor::hasAttachment ( const TextureGpu texture) const

◆ hasSameAttachments()

virtual bool Ogre::RenderPassDescriptor::hasSameAttachments ( const RenderPassDescriptor otherPassDesc) const
virtual

◆ hasStencilFormat()

bool Ogre::RenderPassDescriptor::hasStencilFormat ( ) const

Returns true if either Stencil is set, or if Depth is set with depth-stencil attachment.

◆ requiresTextureFlipping()

bool Ogre::RenderPassDescriptor::requiresTextureFlipping ( ) const
inline

◆ setClearColour() [1/2]

virtual void Ogre::RenderPassDescriptor::setClearColour ( const ColourValue clearColour)
virtual

Sets the clear colour to all entries.

In some APIs may be faster than calling setClearColour( idx, clearColour ) for each entry individually.

Reimplemented in Ogre::VulkanRenderPassDescriptor, and Ogre::GL3PlusRenderPassDescriptor.

◆ setClearColour() [2/2]

virtual void Ogre::RenderPassDescriptor::setClearColour ( uint8  idx,
const ColourValue clearColour 
)
virtual

Sets the clear colour to specific entry.

Reimplemented in Ogre::VulkanRenderPassDescriptor, Ogre::MetalRenderPassDescriptor, and Ogre::GL3PlusRenderPassDescriptor.

◆ setClearDepth()

virtual void Ogre::RenderPassDescriptor::setClearDepth ( Real  clearDepth)
virtual

◆ setClearStencil()

virtual void Ogre::RenderPassDescriptor::setClearStencil ( uint32  clearStencil)
virtual

Member Data Documentation

◆ mColour

RenderPassColourTarget Ogre::RenderPassDescriptor::mColour[OGRE_MAX_MULTIPLE_RENDER_TARGETS]

◆ mDepth

RenderPassDepthTarget Ogre::RenderPassDescriptor::mDepth

◆ mInformationOnly

bool Ogre::RenderPassDescriptor::mInformationOnly

When true, beginRenderPassDescriptor & endRenderPassDescriptor won't actually load/store this pass descriptor; but will still set the mCurrentRenderPassDescriptor so we have required information by some passes.

Examples of these are stencil passes.

◆ mReadyWindowForPresent

bool Ogre::RenderPassDescriptor::mReadyWindowForPresent

When true, if we have a RenderWindow among our colour entries, then this pass is the last one to render to it and should ready the surface for presentation/swapping.

After changing this flag you MUST call entriesModified( Colour );

This value will be automatically reset to false if no entry is a RenderWindow

◆ mStencil

RenderPassStencilTarget Ogre::RenderPassDescriptor::mStencil

The documentation for this class was generated from the following file: