7#ifndef HD_ST_TEXTURE_HANDLE_H
8#define HD_ST_TEXTURE_HANDLE_H
11#include "pxr/imaging/hdSt/api.h"
13#include "pxr/imaging/hd/enums.h"
14#include "pxr/imaging/hd/types.h"
18PXR_NAMESPACE_OPEN_SCOPE
20using HdStShaderCodePtr =
21 std::weak_ptr<class HdStShaderCode>;
22using HdStTextureObjectSharedPtr =
23 std::shared_ptr<class HdStTextureObject>;
24using HdStSamplerObjectSharedPtr =
25 std::shared_ptr<class HdStSamplerObject>;
27using HdStTextureHandleSharedPtr =
28 std::shared_ptr<class HdStTextureHandle>;
30class HdSt_TextureHandleRegistry;
49 HdStTextureObjectSharedPtr
const &textureObject,
52 HdStShaderCodePtr
const & shaderCode,
53 HdSt_TextureHandleRegistry *textureHandleRegistry);
62 return _textureObject;
69 return _samplerObject;
75 return _samplerParams;
81 return _memoryRequest;
100 HdStTextureObjectSharedPtr _textureObject;
101 HdStSamplerObjectSharedPtr _samplerObject;
103 size_t _memoryRequest;
104 HdStShaderCodePtr _shaderCode;
105 HdSt_TextureHandleRegistry *_textureHandleRegistry;
108PXR_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.