24#ifndef HD_ST_TEXTURE_HANDLE_H
25#define HD_ST_TEXTURE_HANDLE_H
28#include "pxr/imaging/hdSt/api.h"
30#include "pxr/imaging/hd/enums.h"
31#include "pxr/imaging/hd/types.h"
35PXR_NAMESPACE_OPEN_SCOPE
37using HdStShaderCodePtr =
38 std::weak_ptr<class HdStShaderCode>;
39using HdStTextureObjectSharedPtr =
40 std::shared_ptr<class HdStTextureObject>;
41using HdStSamplerObjectSharedPtr =
42 std::shared_ptr<class HdStSamplerObject>;
44using HdStTextureHandleSharedPtr =
45 std::shared_ptr<class HdStTextureHandle>;
47class HdSt_TextureHandleRegistry;
66 HdStTextureObjectSharedPtr
const &textureObject,
69 HdStShaderCodePtr
const & shaderCode,
70 HdSt_TextureHandleRegistry *textureHandleRegistry);
79 return _textureObject;
86 return _samplerObject;
92 return _samplerParams;
98 return _memoryRequest;
117 HdStTextureObjectSharedPtr _textureObject;
118 HdStSamplerObjectSharedPtr _samplerObject;
120 size_t _memoryRequest;
121 HdStShaderCodePtr _shaderCode;
122 HdSt_TextureHandleRegistry *_textureHandleRegistry;
125PXR_NAMESPACE_CLOSE_SCOPE
Collection of standard parameters such as wrap modes to sample a texture.
Represents a texture and sampler that will be allocated and loaded from a texture file during commit,...
HdSamplerParameters const & GetSamplerParameters() const
Get sampler parameters.
HdStSamplerObjectSharedPtr const & GetSamplerObject() const
Get sampler object.
HdStTextureObjectSharedPtr const & GetTextureObject() const
Get texture object.
size_t GetMemoryRequest() const
Get how much memory this handle requested for the texture.
bool UseBindlessHandles() const
Get whether bindless texture handles are enabled.
HDST_API void ReallocateSamplerIfNecessary()
Allocate sampler for this handle (not thread-safe).
HdStShaderCodePtr const & GetShaderCode() const
Get the shader code associated with this handle.
HDST_API HdStTextureHandle(HdStTextureObjectSharedPtr const &textureObject, const HdSamplerParameters &samplerParams, size_t memoryRequest, HdStShaderCodePtr const &shaderCode, HdSt_TextureHandleRegistry *textureHandleRegistry)
See HdStResourceRegistry::AllocateTextureHandle for details.