diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2020-01-26 07:05:33 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2020-01-26 07:05:33 +0000 |
| commit | def4aeb3d8141db3d7189739bd98f5b8de4ec5fd (patch) | |
| tree | 73b9a2d39ec071c03570eb9ead59d0f9880a1636 /Graphics/GraphicsEngine | |
| parent | Fixed Sampler c interface; added test. Also fixed issue in shader C interface (diff) | |
| download | DiligentCore-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.h | 37 |
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 |
