24 #ifndef PXR_IMAGING_HDX_FULLSCREENSHADER_H
25 #define PXR_IMAGING_HDX_FULLSCREENSHADER_H
148 HdxFullscreenShader() =
delete;
150 using TextureMap = std::map<TfToken, HgiTextureHandle>;
151 using BufferMap = std::map<uint32_t, HgiBufferHandle>;
154 void _CreateBufferResources();
157 void _DestroyShaderProgram();
160 bool _CreateResourceBindings(TextureMap
const& textures);
163 void _CreateVertexBufferDescriptor();
166 bool _CreatePipeline(
172 bool _CreateSampler();
176 TextureMap
const& textures,
187 void _PrintCompileErrors();
193 TextureMap _textures;
209 bool _blendingEnabled;
223 std::vector<uint8_t> _constantsData;
228 #endif // PXR_IMAGING_HDX_FULLSCREENSHADER_H
HDX_API void BindTextures(TfTokenVector const &names, HgiTextureHandleVector const &textures)
GLsizei const GLchar *const * string
int HgiHandle< class HgiTexture > HgiTextureHandle
std::vector< HgiTextureHandle > HgiTextureHandleVector
HDX_API void Draw(HgiTextureHandle const &colorDst, HgiTextureHandle const &depthDst)
HDX_API ~HdxFullscreenShader()
Destroy the fullscreen shader object, releasing GPU resources.
HDX_API void SetDepthState(HgiDepthStencilState const &state)
std::vector< TfToken > TfTokenVector
Convenience types.
HDX_API void SetProgram(TfToken const &glslfx, TfToken const &shaderName, HgiShaderFunctionDesc &fragDesc, HgiShaderFunctionDesc vertDesc=GetFullScreenVertexDesc())
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
HDX_API void SetShaderConstants(uint32_t byteSize, const void *data)
#define PXR_NAMESPACE_CLOSE_SCOPE
HDX_API void BindBuffer(HgiBufferHandle const &buffer, uint32_t bindingIndex)
HDX_API void SetBlendState(bool enableBlending, HgiBlendFactor srcColorBlendFactor, HgiBlendFactor dstColorBlendFactor, HgiBlendOp colorBlendOp, HgiBlendFactor srcAlphaBlendFactor, HgiBlendFactor dstAlphaBlendFactor, HgiBlendOp alphaBlendOp)
HDX_API void SetAttachmentLoadStoreOp(HgiAttachmentLoadOp attachmentLoadOp, HgiAttachmentStoreOp attachmentStoreOp)