OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::GL3PlusRenderPassDescriptor Class Referencefinal

GL3+ will share FBO handles between all GL3PlusRenderPassDescriptor that share the same FBO setup. More...

#include <OgreGL3PlusRenderPassDescriptor.h>

+ Inheritance diagram for Ogre::GL3PlusRenderPassDescriptor:

Public Member Functions

 GL3PlusRenderPassDescriptor (GL3PlusRenderSystem *renderSystem)
 
 ~GL3PlusRenderPassDescriptor () override
 
void entriesModified (uint32 entryTypes) override
 Call this when you're done modified mColour. More...
 
GLuint getFboName () const
 
void performLoadActions (uint8 blendChannelMask, bool depthWrite, uint32 stencilWriteMask, uint32 entriesToFlush)
 
void performStoreActions (bool hasArbInvalidateSubdata, uint32 entriesToFlush)
 
void setClearColour (const ColourValue &clearColour) override
 Sets the clear colour to all entries. More...
 
void setClearColour (uint8 idx, const ColourValue &clearColour) override
 Sets the clear colour to specific entry. More...
 
uint32 willSwitchTo (GL3PlusRenderPassDescriptor *newDesc, bool warnIfRtvWasFlushed) const
 
- Public Member Functions inherited from Ogre::RenderPassDescriptor
 RenderPassDescriptor ()
 
virtual ~RenderPassDescriptor ()
 
void checkWarnIfRtvWasFlushed (uint32 entriesToFlush)
 
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 setClearDepth (Real clearDepth)
 
virtual void setClearStencil (uint32 clearStencil)
 

Additional Inherited Members

- Public Types inherited from Ogre::RenderPassDescriptor
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 Attributes inherited from Ogre::RenderPassDescriptor
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
 

Detailed Description

GL3+ will share FBO handles between all GL3PlusRenderPassDescriptor that share the same FBO setup.

This doesn't mean these RenderPassDescriptor are exactly the same, as they may have different clear, loadAction or storeAction values.

Constructor & Destructor Documentation

◆ GL3PlusRenderPassDescriptor()

Ogre::GL3PlusRenderPassDescriptor::GL3PlusRenderPassDescriptor ( GL3PlusRenderSystem renderSystem)

◆ ~GL3PlusRenderPassDescriptor()

Ogre::GL3PlusRenderPassDescriptor::~GL3PlusRenderPassDescriptor ( )
override

Member Function Documentation

◆ entriesModified()

void Ogre::GL3PlusRenderPassDescriptor::entriesModified ( uint32  entryTypes)
overridevirtual

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 from Ogre::RenderPassDescriptor.

◆ getFboName()

GLuint Ogre::GL3PlusRenderPassDescriptor::getFboName ( ) const
inline

◆ performLoadActions()

void Ogre::GL3PlusRenderPassDescriptor::performLoadActions ( uint8  blendChannelMask,
bool  depthWrite,
uint32  stencilWriteMask,
uint32  entriesToFlush 
)

◆ performStoreActions()

void Ogre::GL3PlusRenderPassDescriptor::performStoreActions ( bool  hasArbInvalidateSubdata,
uint32  entriesToFlush 
)

◆ setClearColour() [1/2]

void Ogre::GL3PlusRenderPassDescriptor::setClearColour ( const ColourValue clearColour)
overridevirtual

Sets the clear colour to all entries.

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

Reimplemented from Ogre::RenderPassDescriptor.

◆ setClearColour() [2/2]

void Ogre::GL3PlusRenderPassDescriptor::setClearColour ( uint8  idx,
const ColourValue clearColour 
)
overridevirtual

Sets the clear colour to specific entry.

Reimplemented from Ogre::RenderPassDescriptor.

◆ willSwitchTo()

uint32 Ogre::GL3PlusRenderPassDescriptor::willSwitchTo ( GL3PlusRenderPassDescriptor newDesc,
bool  warnIfRtvWasFlushed 
) const

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