OGRE-Next
2.3
Object-Oriented Graphics Rendering Engine
|
GL3+ will share FBO handles between all GL3PlusRenderPassDescriptor that share the same FBO setup. More...
#include <OgreGL3PlusRenderPassDescriptor.h>
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 | |
GL3PlusRenderPassDescriptor (GL3PlusRenderSystem *renderSystem) | |
~GL3PlusRenderPassDescriptor () override | |
void | checkWarnIfRtvWasFlushed (uint32 entriesToFlush) |
void | entriesModified (uint32 entryTypes) override |
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) |
GLuint | getFboName () const |
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... | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete (void *ptr, void *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz) |
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 *ptr) |
placement operator new More... | |
void * | operator new[] (size_t sz) |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info More... | |
void | performLoadActions (uint8 blendChannelMask, bool depthWrite, uint32 stencilWriteMask, uint32 entriesToFlush) |
void | performStoreActions (bool hasArbInvalidateSubdata, uint32 entriesToFlush) |
bool | requiresTextureFlipping () const |
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... | |
virtual void | setClearDepth (Real clearDepth) |
virtual void | setClearStencil (uint32 clearStencil) |
uint32 | willSwitchTo (GL3PlusRenderPassDescriptor *newDesc, bool warnIfRtvWasFlushed) const |
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 |
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.
|
inherited |
Ogre::GL3PlusRenderPassDescriptor::GL3PlusRenderPassDescriptor | ( | GL3PlusRenderSystem * | renderSystem | ) |
|
override |
|
inherited |
|
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.
entryTypes | Bitmask. See EntryTypes |
Reimplemented from Ogre::RenderPassDescriptor.
|
inherited |
Finds the first non-null texture and outputs it May return nullptr if nothing is bound.
|
inlinevirtualinherited |
name | When 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 |
pData | Output |
extraParam | See name |
Reimplemented in Ogre::D3D11RenderPassDescriptor.
|
inline |
|
inlineinherited |
|
inherited |
|
virtualinherited |
|
inherited |
Returns true if either Stencil is set, or if Depth is set with depth-stencil attachment.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
operator new, with debug line info
|
inlineinherited |
placement operator new
|
inlineinherited |
|
inlineinherited |
array operator new, with debug line info
void Ogre::GL3PlusRenderPassDescriptor::performLoadActions | ( | uint8 | blendChannelMask, |
bool | depthWrite, | ||
uint32 | stencilWriteMask, | ||
uint32 | entriesToFlush | ||
) |
void Ogre::GL3PlusRenderPassDescriptor::performStoreActions | ( | bool | hasArbInvalidateSubdata, |
uint32 | entriesToFlush | ||
) |
|
inlineinherited |
|
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.
|
overridevirtual |
Sets the clear colour to specific entry.
Reimplemented from Ogre::RenderPassDescriptor.
|
virtualinherited |
Reimplemented in Ogre::VulkanRenderPassDescriptor, and Ogre::MetalRenderPassDescriptor.
|
virtualinherited |
Reimplemented in Ogre::VulkanRenderPassDescriptor, and Ogre::MetalRenderPassDescriptor.
uint32 Ogre::GL3PlusRenderPassDescriptor::willSwitchTo | ( | GL3PlusRenderPassDescriptor * | newDesc, |
bool | warnIfRtvWasFlushed | ||
) | const |
|
inherited |
|
inherited |
|
inherited |
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.
|
inherited |
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
|
inherited |