24 #ifndef PXR_IMAGING_HD_ST_RENDER_BUFFER_H 25 #define PXR_IMAGING_HD_ST_RENDER_BUFFER_H 29 #include "pxr/imaging/hdSt/api.h" 30 #include "pxr/imaging/hdSt/textureUtils.h" 31 #include "pxr/imaging/hd/renderBuffer.h" 32 #include "pxr/imaging/hgi/hgi.h" 33 #include "pxr/imaging/hgi/enums.h" 34 #include "pxr/imaging/hgi/texture.h" 36 PXR_NAMESPACE_OPEN_SCOPE
40 using HdStDynamicUvTextureObjectSharedPtr =
41 std::shared_ptr<class HdStDynamicUvTextureObject>;
50 ~HdStRenderBuffer()
override;
55 HdDirtyBits *dirtyBits)
override;
60 bool multiSampled)
override;
63 unsigned int GetWidth()
const override;
69 unsigned int GetDepth()
const override;
72 HdFormat
GetFormat()
const override {
return _format;}
78 uint32_t GetMSAASampleCount()
const;
89 void Unmap()
override;
95 return _mappers.load() != 0;
133 uint32_t _msaaSampleCount;
136 HdStDynamicUvTextureObjectSharedPtr _textureObject;
139 HdStDynamicUvTextureObjectSharedPtr _textureMSAAObject;
142 std::atomic<int> _mappers;
144 HdStTextureUtils::AlignedBuffer<uint8_t> _mappedBuffer;
147 PXR_NAMESPACE_CLOSE_SCOPE
virtual void Unmap()=0
Unmap the buffer. It is no longer safe to read from the buffer.
virtual VtValue GetResource(bool multiSampled) const
This optional API returns a (type-erased) resource that backs this render buffer.
virtual bool IsMapped() const =0
Return whether the buffer is currently mapped by anybody.
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
virtual unsigned int GetWidth() const =0
Get the buffer's width.
Class to identify a texture file or a texture within the texture file (e.g., a frame in a movie).
virtual void _Deallocate()=0
Deallocate the buffer, freeing any owned resources.
Adapter class providing data exchange with the client scene graph.
A central registry of all GPU resources.
virtual HdFormat GetFormat() const =0
Get the buffer's per-pixel format.
Basic type for a vector of 3 int components.
A path value used to locate objects in layers or scenegraphs.
HD_API void Sync(HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits) override
Get allocation information from the scene delegate.
virtual bool IsConverged() const =0
Return whether the buffer is converged (whether the renderer is still adding samples or not).
virtual unsigned int GetHeight() const =0
Get the buffer's height.
virtual unsigned int GetDepth() const =0
Get the buffer's depth.
A render buffer is a handle to a data resource that can be rendered into, such as a 2d image for a dr...
virtual void * Map()=0
Map the buffer for reading.
virtual bool Allocate(GfVec3i const &dimensions, HdFormat format, bool multiSampled)=0
Allocate a buffer.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
virtual bool IsMultiSampled() const =0
Get whether the buffer is multisampled.
virtual void Resolve()=0
Resolve the buffer so that reads reflect the latest writes.