summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngine
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-01-26 07:05:33 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-01-26 07:05:33 +0000
commitdef4aeb3d8141db3d7189739bd98f5b8de4ec5fd (patch)
tree73b9a2d39ec071c03570eb9ead59d0f9880a1636 /Graphics/GraphicsEngine
parentFixed Sampler c interface; added test. Also fixed issue in shader C interface (diff)
downloadDiligentCore-def4aeb3d8141db3d7189739bd98f5b8de4ec5fd.tar.gz
DiligentCore-def4aeb3d8141db3d7189739bd98f5b8de4ec5fd.zip
Fixed resource mapping c interface; added API test.
Diffstat (limited to 'Graphics/GraphicsEngine')
-rw-r--r--Graphics/GraphicsEngine/interface/ResourceMapping.h37
1 files changed, 25 insertions, 12 deletions
diff --git a/Graphics/GraphicsEngine/interface/ResourceMapping.h b/Graphics/GraphicsEngine/interface/ResourceMapping.h
index 723bc275..4fb2db14 100644
--- a/Graphics/GraphicsEngine/interface/ResourceMapping.h
+++ b/Graphics/GraphicsEngine/interface/ResourceMapping.h
@@ -151,26 +151,39 @@ public:
struct IResourceMapping;
+// clang-format off
+
+struct IResourceMappingMethods
+{
+ void (*AddResource) (struct IResourceMapping*, const Char* Name, class IDeviceObject* pObject, bool bIsUnique);
+ void (*AddResourceArray) (struct IResourceMapping*, const Char* Name, Uint32 StartIndex, class IDeviceObject* const* ppObjects, Uint32 NumElements, bool bIsUnique);
+ void (*RemoveResourceByName)(struct IResourceMapping*, const Char* Name, Uint32 ArrayIndex);
+ void (*GetResource) (struct IResourceMapping*, const Char* Name, class IDeviceObject** ppResource, Uint32 ArrayIndex);
+ size_t (*GetSize) (struct IResourceMapping*);
+};
+
+// clang-format on
+
struct IResourceMappingVtbl
{
- void (*AddResource)(const Char* Name, class IDeviceObject* pObject, bool bIsUnique);
- void (*AddResourceArray)(const Char* Name, Uint32 StartIndex, class IDeviceObject* const* ppObjects, Uint32 NumElements, bool bIsUnique);
- void (*RemoveResourceByName)(const Char* Name, Uint32 ArrayIndex);
- void (*GetResource)(const Char* Name, class IDeviceObject** ppResource, Uint32 ArrayIndex);
- size_t (*GetSize)();
+ struct IObjectMethods Object;
+ struct IResourceMappingMethods ResourceMapping;
};
struct IResourceMapping
{
- struct IObjectVtbl* pObjectVtbl;
- struct IResourceMapping* pResourceMappingVtbl;
+ struct IResourceMappingVtbl* pVtbl;
};
-# define IResourceMapping_AddResource(This, ...) (This)->pResourceMappingVtbl->AddResource(This, __VA_ARGS__)
-# define IResourceMapping_AddResourceArray(This, ...) (This)->pResourceMappingVtbl->AddResourceArray(This, __VA_ARGS__)
-# define IResourceMapping_RemoveResourceByName(This, ...) (This)->pResourceMappingVtbl->RemoveResourceByName(This, __VA_ARGS__)
-# define IResourceMapping_GetResource(This, ...) (This)->pResourceMappingVtbl->GetResource(This, __VA_ARGS__)
-# define IResourceMapping_GetSize(This) (This)->pResourceMappingVtbl->GetSize(This)
+// clang-format off
+
+# define IResourceMapping_AddResource(This, ...) (This)->pVtbl->ResourceMapping.AddResource ((struct IResourceMapping*)(This), __VA_ARGS__)
+# define IResourceMapping_AddResourceArray(This, ...) (This)->pVtbl->ResourceMapping.AddResourceArray ((struct IResourceMapping*)(This), __VA_ARGS__)
+# define IResourceMapping_RemoveResourceByName(This, ...) (This)->pVtbl->ResourceMapping.RemoveResourceByName((struct IResourceMapping*)(This), __VA_ARGS__)
+# define IResourceMapping_GetResource(This, ...) (This)->pVtbl->ResourceMapping.GetResource ((struct IResourceMapping*)(This), __VA_ARGS__)
+# define IResourceMapping_GetSize(This) (This)->pVtbl->ResourceMapping.GetSize ((struct IResourceMapping*)(This))
+
+// clang-format on
#endif