HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
WgslResourceBindingContext.h
Go to the documentation of this file.
1 //
2 // Copyright Contributors to the MaterialX Project
3 // SPDX-License-Identifier: Apache-2.0
4 //
5 
6 #ifndef MATERIALX_WGSLRESOURCEBINDING_H
7 #define MATERIALX_WGSLRESOURCEBINDING_H
8 
9 /// @file
10 /// Vulkan GLSL resource binding context for WGSL
11 
13 
15 
17 
18 /// Shared pointer to a WgslResourceBindingContext
19 using WgslResourceBindingContextPtr = shared_ptr<class WgslResourceBindingContext>;
20 
21 /// @class WgslResourceBindingContext
22 /// Class representing a resource binding for Vulkan Glsl shader resources.
24 {
25  public:
26  WgslResourceBindingContext(size_t uniformBindingLocation);
27 
28  static WgslResourceBindingContextPtr create(size_t uniformBindingLocation = 0)
29  {
30  return std::make_shared<WgslResourceBindingContext>(uniformBindingLocation);
31  }
32 
33  // Emit uniforms with binding information
34  void emitResourceBindings(GenContext& context, const VariableBlock& uniforms, ShaderStage& stage) override;
35 };
36 
38 
39 #endif
#define MATERIALX_NAMESPACE_BEGIN
Definition: Generated.h:25
static WgslResourceBindingContextPtr create(size_t uniformBindingLocation=0)
void emitResourceBindings(GenContext &context, const VariableBlock &uniforms, ShaderStage &stage) override
shared_ptr< class WgslResourceBindingContext > WgslResourceBindingContextPtr
Shared pointer to a WgslResourceBindingContext.
#define MATERIALX_NAMESPACE_END
Definition: Generated.h:26
#define MX_GENGLSL_API
Definition: Export.h:18