HDK
|
#include <renderBuffer.h>
Public Types | |
enum | DirtyBits : HdDirtyBits { Clean = 0, DirtyDescription = 1 << 0, AllDirty = (DirtyDescription) } |
Public Member Functions | |
HD_API | HdRenderBuffer (SdfPath const &id) |
HD_API | ~HdRenderBuffer () override |
Prim API | |
HD_API HdDirtyBits | GetInitialDirtyBitsMask () const override |
Get initial invalidation state. More... | |
HD_API void | Sync (HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits) override |
Get allocation information from the scene delegate. More... | |
HD_API void | Finalize (HdRenderParam *renderParam) override |
Deallocate before deletion. More... | |
Public Member Functions inherited from HdBprim | |
HD_API | HdBprim (SdfPath const &id) |
virtual HD_API | ~HdBprim () |
SdfPath const & | GetId () const |
Renderbuffer API | |
virtual bool | Allocate (GfVec3i const &dimensions, HdFormat format, bool multiSampled)=0 |
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 |
virtual bool | IsConverged () const =0 |
virtual VtValue | GetResource (bool multiSampled) const |
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 49 of file renderBuffer.h.
Enumerator | |
---|---|
Clean | |
DirtyDescription | |
AllDirty |
Definition at line 53 of file renderBuffer.h.
|
override |
|
protectedpure virtual |
Deallocate the buffer, freeing any owned resources.
Implemented in HdStRenderBuffer.
|
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.
Implemented in HdStRenderBuffer.
|
overridevirtual |
Deallocate before deletion.
Reimplemented from HdBprim.
|
pure virtual |
Get the buffer's depth.
Implemented in HdStRenderBuffer.
|
pure virtual |
Get the buffer's per-pixel format.
Implemented in HdStRenderBuffer.
|
pure virtual |
Get the buffer's height.
Implemented in HdStRenderBuffer.
|
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.
Reimplemented in HdStRenderBuffer.
Definition at line 130 of file renderBuffer.h.
|
pure virtual |
Get the buffer's width.
Implemented in HdStRenderBuffer.
|
pure virtual |
Return whether the buffer is converged (whether the renderer is still adding samples or not).
Implemented in HdStRenderBuffer.
|
pure virtual |
Return whether the buffer is currently mapped by anybody.
Implemented in HdStRenderBuffer.
|
pure virtual |
Get whether the buffer is multisampled.
Implemented in HdStRenderBuffer.
|
pure virtual |
Map the buffer for reading.
Implemented in HdStRenderBuffer.
|
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.
Implemented in HdStRenderBuffer.
|
overridevirtual |
Get allocation information from the scene delegate.
Implements HdBprim.
Reimplemented in HdStRenderBuffer.
|
pure virtual |
Unmap the buffer. It is no longer safe to read from the buffer.
Implemented in HdStRenderBuffer.