Listener that can be hooked to an Hlms implementation for extending it with custom code.
More...
#include <OgreHlmsListener.h>
|
virtual uint32 | getPassBufferSize (const CompositorShadowNode *shadowNode, bool casterPass, bool dualParaboloid, SceneManager *sceneManager) const |
| Listeners should return the extra bytes they wish to allocate for storing additional data in the pass buffer. More...
|
|
virtual void | hlmsTypeChanged (bool casterPass, CommandBuffer *commandBuffer, const HlmsDatablock *datablock) |
| Called when the last Renderable processed was of a different Hlms type, thus we need to rebind certain buffers (like the pass buffer). More...
|
|
virtual float * | preparePassBuffer (const CompositorShadowNode *shadowNode, bool casterPass, bool dualParaboloid, SceneManager *sceneManager, float *passBufferPtr) |
| Users can write to passBufferPtr. More...
|
|
virtual void | preparePassHash (const CompositorShadowNode *shadowNode, bool casterPass, bool dualParaboloid, SceneManager *sceneManager, Hlms *hlms) |
| Called right before creating the pass cache, to allow the listener to add/remove properties. More...
|
|
virtual void | shaderCacheEntryCreated (const String &shaderProfile, const HlmsCache *hlmsCacheEntry, const HlmsCache &passCache, const HlmsPropertyVec &properties, const QueuedRenderable &queuedRenderable) |
| Called after the shader was created/compiled, and right before bindGpuProgramParameters (relevant information for OpenGL programs). More...
|
|
Listener that can be hooked to an Hlms implementation for extending it with custom code.
See "8.6.5 Customizing an existing implementation" of the 2.x manual on the different approaches to customizing Hlms implementations.
◆ getPassBufferSize()
Listeners should return the extra bytes they wish to allocate for storing additional data in the pass buffer.
Return value must be in bytes.
◆ hlmsTypeChanged()
virtual void Ogre::HlmsListener::hlmsTypeChanged |
( |
bool |
casterPass, |
|
|
CommandBuffer * |
commandBuffer, |
|
|
const HlmsDatablock * |
datablock |
|
) |
| |
|
inlinevirtual |
Called when the last Renderable processed was of a different Hlms type, thus we need to rebind certain buffers (like the pass buffer).
You can use this moment to bind your own buffers.
◆ preparePassBuffer()
virtual float* Ogre::HlmsListener::preparePassBuffer |
( |
const CompositorShadowNode * |
shadowNode, |
|
|
bool |
casterPass, |
|
|
bool |
dualParaboloid, |
|
|
SceneManager * |
sceneManager, |
|
|
float * |
passBufferPtr |
|
) |
| |
|
inlinevirtual |
Users can write to passBufferPtr.
Implementations must ensure they make the buffer big enough via getPassBufferSize. The passBufferPtr is already aligned to 16 bytes. Implementations must return the pointer past the end, aligned to 16 bytes.
◆ preparePassHash()
Called right before creating the pass cache, to allow the listener to add/remove properties.
- See also
- Hlms::preparePassHash
- Parameters
-
hlms | Caller Hlms; from which you can alter the properties using Hlms::setProperty |
◆ shaderCacheEntryCreated()
Called after the shader was created/compiled, and right before bindGpuProgramParameters (relevant information for OpenGL programs).
- Parameters
-
- See also
- Hlms::mShaderProfile
- Parameters
-
hlmsCacheEntry | The created shader. |
passCache | |
- See also
- Hlms::createShaderCacheEntry
- Parameters
-
properties | The current contents of Hlms::mSetProperties |
queuedRenderable | |
- See also
- Hlms::createShaderCacheEntry
The documentation for this class was generated from the following file: