7#ifndef PXR_IMAGING_HD_ST_RENDER_BUFFER_H
8#define PXR_IMAGING_HD_ST_RENDER_BUFFER_H
12#include "pxr/imaging/hdSt/api.h"
13#include "pxr/imaging/hdSt/textureUtils.h"
14#include "pxr/imaging/hd/renderBuffer.h"
15#include "pxr/imaging/hgi/hgi.h"
16#include "pxr/imaging/hgi/enums.h"
17#include "pxr/imaging/hgi/texture.h"
19PXR_NAMESPACE_OPEN_SCOPE
23using HdStDynamicUvTextureObjectSharedPtr =
24 std::shared_ptr<class HdStDynamicUvTextureObject>;
33 ~HdStRenderBuffer()
override;
38 HdDirtyBits *dirtyBits)
override;
41 bool Allocate(
GfVec3i const& dimensions,
43 bool multiSampled)
override;
46 unsigned int GetWidth()
const override;
49 unsigned int GetHeight()
const override;
52 unsigned int GetDepth()
const override;
55 HdFormat GetFormat()
const override {
return _format;}
58 bool IsMultiSampled()
const override;
61 uint32_t GetMSAASampleCount()
const;
72 void Unmap()
override;
77 bool IsMapped()
const override {
78 return _mappers.load() != 0;
85 bool IsConverged()
const override {
91 void Resolve()
override;
95 VtValue GetResource(
bool multiSampled)
const override;
105 void _Deallocate()
override;
116 uint32_t _msaaSampleCount;
119 HdStDynamicUvTextureObjectSharedPtr _textureObject;
122 HdStDynamicUvTextureObjectSharedPtr _textureMSAAObject;
125 std::atomic<int> _mappers;
127 HdStTextureUtils::AlignedBuffer<uint8_t> _mappedBuffer;
130PXR_NAMESPACE_CLOSE_SCOPE
Basic type for a vector of 3 int components.
A render buffer is a handle to a data resource that can be rendered into, such as a 2d image for a dr...
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
Adapter class providing data exchange with the client scene graph.
A central registry of all GPU resources.
Class to identify a texture file or a texture within the texture file (e.g., a frame in a movie).
A path value used to locate objects in layers or scenegraphs.
Provides a container which may hold any type, and provides introspection and iteration over array typ...