![]() |
A render buffer is a handle to a data resource that can be rendered into, such as a 2d image for a draw target or auxiliary rendering output. More...
Public Types | |
enum | DirtyBits : HdDirtyBits { Clean = 0, DirtyDescription = 1 << 0, AllDirty = (DirtyDescription) } |
Public Member Functions | |
HD_API | HdRenderBuffer (SdfPath const &id) |
Prim API | |
virtual HD_API HdDirtyBits | GetInitialDirtyBitsMask () const override |
Get initial invalidation state. More... | |
virtual HD_API void | Sync (HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits) override |
Get allocation information from the scene delegate. More... | |
virtual HD_API void | Finalize (HdRenderParam *renderParam) override |
Deallocate before deletion. More... | |
![]() | |
HD_API | HdBprim (SdfPath const &id) |
SdfPath const & | GetId () const |
Returns the identifier by which this buffer is known. More... | |
Renderbuffer API | |
virtual bool | Allocate (GfVec3i const &dimensions, HdFormat format, bool multiSampled)=0 |
Allocate a buffer. More... | |
virtual unsigned int | GetWidth () const =0 |
Get the buffer's width. More... | |
virtual unsigned int | GetHeight () const =0 |
Get the buffer's height. More... | |
virtual unsigned int | GetDepth () const =0 |
Get the buffer's depth. More... | |
virtual HdFormat | GetFormat () const =0 |
Get the buffer's per-pixel format. More... | |
virtual bool | IsMultiSampled () const =0 |
Get whether the buffer is multisampled. More... | |
virtual void * | Map ()=0 |
Map the buffer for reading. More... | |
virtual void | Unmap ()=0 |
Unmap the buffer. It is no longer safe to read from the buffer. More... | |
virtual bool | IsMapped () const =0 |
Return whether the buffer is currently mapped by anybody. More... | |
virtual void | Resolve ()=0 |
Resolve the buffer so that reads reflect the latest writes. More... | |
virtual bool | IsConverged () const =0 |
Return whether the buffer is converged (whether the renderer is still adding samples or not). More... | |
virtual VtValue | GetResource (bool multiSampled) const |
This optional API returns a (type-erased) resource that backs this render buffer. More... | |
virtual void | _Deallocate ()=0 |
Deallocate the buffer, freeing any owned resources. More... | |
A render buffer is a handle to a data resource that can be rendered into, such as a 2d image for a draw target or auxiliary rendering output.
The render buffer can be used as an indexed prim, in which case it communicates with the scene delegate to get buffer properties, or it can be created out of band and supplied directly with allocation parameters.
Render buffers can be targeted by render passes. They also contain mapping functionality for reading and writing buffer data.
Definition at line 51 of file renderBuffer.h.
|
protectedpure virtual |
Deallocate the buffer, freeing any owned resources.
|
pure virtual |
Allocate a buffer.
Can be called from Sync(), or directly. If the buffer has already been allocated, calling Allocate() again will destroy the old buffer and allocate a new one.
A negative dimension or invalid format will cause an allocation error. If the requested buffer can't be allocated, the function will return false.
|
overridevirtual |
Deallocate before deletion.
Reimplemented from HdBprim.
|
pure virtual |
Get the buffer's depth.
|
pure virtual |
Get the buffer's per-pixel format.
|
pure virtual |
Get the buffer's height.
|
overridevirtual |
Get initial invalidation state.
Implements HdBprim.
|
inlinevirtual |
This optional API returns a (type-erased) resource that backs this render buffer.
For example, a render buffer implementation may allocate a gpu texture that holds the data of the buffer. This function allows other parts of Hydra, such as a HdTask to get access to this resource.
Definition at line 131 of file renderBuffer.h.
|
pure virtual |
Get the buffer's width.
|
pure virtual |
Return whether the buffer is converged (whether the renderer is still adding samples or not).
|
pure virtual |
Return whether the buffer is currently mapped by anybody.
|
pure virtual |
Get whether the buffer is multisampled.
|
pure virtual |
Map the buffer for reading.
|
pure virtual |
Resolve the buffer so that reads reflect the latest writes.
Some buffer implementations may defer final processing of writes until a buffer is read, for efficiency; examples include OpenGL MSAA or multi-sampled raytraced buffers.
|
overridevirtual |
Get allocation information from the scene delegate.
Implements HdBprim.
|
pure virtual |
Unmap the buffer. It is no longer safe to read from the buffer.