summaryrefslogtreecommitdiff
path: root/source/slang/type-layout.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/type-layout.h')
-rw-r--r--source/slang/type-layout.h42
1 files changed, 23 insertions, 19 deletions
diff --git a/source/slang/type-layout.h b/source/slang/type-layout.h
index d078d9554..257bfa310 100644
--- a/source/slang/type-layout.h
+++ b/source/slang/type-layout.h
@@ -296,7 +296,7 @@ public:
};
// type layout for a variable that has a constant-buffer type
-class ParameterBlockTypeLayout : public TypeLayout
+class ParameterGroupTypeLayout : public TypeLayout
{
public:
RefPtr<TypeLayout> elementTypeLayout;
@@ -391,7 +391,7 @@ public:
// We store a layout for the declarations at the global
// scope. Note that this will *either* be a single
// `StructTypeLayout` with the fields stored directly,
- // or it will be a single `ParameterBlockTypeLayout`,
+ // or it will be a single `ParameterGroupTypeLayout`,
// where the global-scope fields are the members of
// that constant buffer.
//
@@ -450,6 +450,8 @@ enum class ShaderParameterKind
Image,
MutableImage,
+
+ RegisterSpace,
};
struct SimpleLayoutRulesImpl
@@ -550,8 +552,10 @@ struct LayoutRulesFamilyImpl
virtual LayoutRulesImpl* getTextureBufferRules() = 0;
virtual LayoutRulesImpl* getVaryingInputRules() = 0;
virtual LayoutRulesImpl* getVaryingOutputRules() = 0;
- virtual LayoutRulesImpl* getSpecializationConstantRules() = 0;
- virtual LayoutRulesImpl* getShaderStorageBufferRules() = 0;
+ virtual LayoutRulesImpl* getSpecializationConstantRules()= 0;
+ virtual LayoutRulesImpl* getShaderStorageBufferRules() = 0;
+ virtual LayoutRulesImpl* getParameterBlockRules() = 0;
+
virtual MatrixLayoutMode getDefaultMatrixLayoutMode() = 0;
};
@@ -571,30 +575,30 @@ RefPtr<TypeLayout> CreateTypeLayout(Type* type, LayoutRulesImpl* rules, SimpleLa
struct TypeLayoutContext;
// Create a type layout for a parameter block type.
-RefPtr<ParameterBlockTypeLayout>
-createParameterBlockTypeLayout(
+RefPtr<ParameterGroupTypeLayout>
+createParameterGroupTypeLayout(
TypeLayoutContext* context,
- RefPtr<ParameterBlockType> parameterBlockType);
+ RefPtr<ParameterGroupType> parameterGroupType);
-RefPtr<ParameterBlockTypeLayout>
-createParameterBlockTypeLayout(
+RefPtr<ParameterGroupTypeLayout>
+createParameterGroupTypeLayout(
TypeLayoutContext* context,
- RefPtr<ParameterBlockType> parameterBlockType,
+ RefPtr<ParameterGroupType> parameterGroupType,
RefPtr<Type> elementType,
LayoutRulesImpl* elementTypeRules);
-RefPtr<ParameterBlockTypeLayout>
-createParameterBlockTypeLayout(
+RefPtr<ParameterGroupTypeLayout>
+createParameterGroupTypeLayout(
TypeLayoutContext* context,
- RefPtr<ParameterBlockType> parameterBlockType,
- SimpleLayoutInfo parameterBlockInfo,
+ RefPtr<ParameterGroupType> parameterGroupType,
+ SimpleLayoutInfo parameterGroupInfo,
RefPtr<TypeLayout> elementTypeLayout);
-RefPtr<ParameterBlockTypeLayout>
-createParameterBlockTypeLayout(
- RefPtr<ParameterBlockType> parameterBlockType,
- LayoutRulesImpl* parameterBlockRules,
- SimpleLayoutInfo parameterBlockInfo,
+RefPtr<ParameterGroupTypeLayout>
+createParameterGroupTypeLayout(
+ RefPtr<ParameterGroupType> parameterGroupType,
+ LayoutRulesImpl* parameterGroupRules,
+ SimpleLayoutInfo parameterGroupInfo,
RefPtr<TypeLayout> elementTypeLayout);
// Create a type layout for a structured buffer type.