From 9d8be4770646ee924dd725eb9c6bad5be5bec237 Mon Sep 17 00:00:00 2001 From: assiduous Date: Sun, 1 Nov 2020 15:30:06 -0800 Subject: Fixed engine factories in C API --- Graphics/GraphicsEngineD3D11/interface/EngineFactoryD3D11.h | 2 +- Graphics/GraphicsEngineD3D12/interface/EngineFactoryD3D12.h | 2 +- Graphics/GraphicsEngineD3D12/src/EngineFactoryD3D12.cpp | 8 ++++++++ Graphics/GraphicsEngineOpenGL/interface/EngineFactoryOpenGL.h | 2 +- Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp | 9 +++++++++ Graphics/GraphicsEngineVulkan/interface/EngineFactoryVk.h | 2 +- Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp | 9 +++++++++ 7 files changed, 30 insertions(+), 4 deletions(-) (limited to 'Graphics') diff --git a/Graphics/GraphicsEngineD3D11/interface/EngineFactoryD3D11.h b/Graphics/GraphicsEngineD3D11/interface/EngineFactoryD3D11.h index f58dbd27..f5ccb59f 100644 --- a/Graphics/GraphicsEngineD3D11/interface/EngineFactoryD3D11.h +++ b/Graphics/GraphicsEngineD3D11/interface/EngineFactoryD3D11.h @@ -176,7 +176,7 @@ DILIGENT_END_INTERFACE typedef struct IEngineFactoryD3D11* (*GetEngineFactoryD3D11Type)(); -inline GetEngineFactoryD3D11Type LoadGraphicsEngineD3D11() +inline GetEngineFactoryD3D11Type DILIGENT_GLOBAL_FUNCTION(LoadGraphicsEngineD3D11)() { return (GetEngineFactoryD3D11Type)LoadEngineDll("GraphicsEngineD3D11", "GetEngineFactoryD3D11"); } diff --git a/Graphics/GraphicsEngineD3D12/interface/EngineFactoryD3D12.h b/Graphics/GraphicsEngineD3D12/interface/EngineFactoryD3D12.h index b90f3aa0..cc2ca2ee 100644 --- a/Graphics/GraphicsEngineD3D12/interface/EngineFactoryD3D12.h +++ b/Graphics/GraphicsEngineD3D12/interface/EngineFactoryD3D12.h @@ -198,7 +198,7 @@ DILIGENT_END_INTERFACE typedef struct IEngineFactoryD3D12* (*GetEngineFactoryD3D12Type)(); -inline GetEngineFactoryD3D12Type LoadGraphicsEngineD3D12() +inline GetEngineFactoryD3D12Type DILIGENT_GLOBAL_FUNCTION(LoadGraphicsEngineD3D12)() { return (GetEngineFactoryD3D12Type)LoadEngineDll("GraphicsEngineD3D12", "GetEngineFactoryD3D12"); } diff --git a/Graphics/GraphicsEngineD3D12/src/EngineFactoryD3D12.cpp b/Graphics/GraphicsEngineD3D12/src/EngineFactoryD3D12.cpp index d00d72d5..940249cd 100644 --- a/Graphics/GraphicsEngineD3D12/src/EngineFactoryD3D12.cpp +++ b/Graphics/GraphicsEngineD3D12/src/EngineFactoryD3D12.cpp @@ -547,3 +547,11 @@ IEngineFactoryD3D12* GetEngineFactoryD3D12() } } // namespace Diligent + +extern "C" +{ + Diligent::IEngineFactoryD3D12* Diligent_GetEngineFactoryD3D12() + { + return Diligent::GetEngineFactoryD3D12(); + } +} diff --git a/Graphics/GraphicsEngineOpenGL/interface/EngineFactoryOpenGL.h b/Graphics/GraphicsEngineOpenGL/interface/EngineFactoryOpenGL.h index cff83e54..6f005bfa 100644 --- a/Graphics/GraphicsEngineOpenGL/interface/EngineFactoryOpenGL.h +++ b/Graphics/GraphicsEngineOpenGL/interface/EngineFactoryOpenGL.h @@ -105,7 +105,7 @@ DILIGENT_END_INTERFACE typedef struct IEngineFactoryOpenGL* (*GetEngineFactoryOpenGLType)(); -inline GetEngineFactoryOpenGLType LoadGraphicsEngineOpenGL() +inline GetEngineFactoryOpenGLType DILIGENT_GLOBAL_FUNCTION(LoadGraphicsEngineOpenGL)() { return (GetEngineFactoryOpenGLType)LoadEngineDll("GraphicsEngineOpenGL", "GetEngineFactoryOpenGL"); } diff --git a/Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp b/Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp index dacd1fe3..118a4bcf 100644 --- a/Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp +++ b/Graphics/GraphicsEngineOpenGL/src/EngineFactoryOpenGL.cpp @@ -302,3 +302,12 @@ Diligent::IEngineFactoryOpenGL* GetEngineFactoryOpenGL() } } // namespace Diligent + +extern "C" +{ + API_QUALIFIER + Diligent::IEngineFactoryOpenGL* Diligent_GetEngineFactoryOpenGL() + { + return Diligent::GetEngineFactoryOpenGL(); + } +} diff --git a/Graphics/GraphicsEngineVulkan/interface/EngineFactoryVk.h b/Graphics/GraphicsEngineVulkan/interface/EngineFactoryVk.h index be79c99f..0c5e347a 100644 --- a/Graphics/GraphicsEngineVulkan/interface/EngineFactoryVk.h +++ b/Graphics/GraphicsEngineVulkan/interface/EngineFactoryVk.h @@ -117,7 +117,7 @@ DILIGENT_END_INTERFACE typedef struct IEngineFactoryVk* (*GetEngineFactoryVkType)(); -inline GetEngineFactoryVkType LoadGraphicsEngineVk() +inline GetEngineFactoryVkType DILIGENT_GLOBAL_FUNCTION(LoadGraphicsEngineVk)() { return (GetEngineFactoryVkType)LoadEngineDll("GraphicsEngineVk", "GetEngineFactoryVk"); } diff --git a/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp b/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp index cbe1779f..fbbd9492 100644 --- a/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp +++ b/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp @@ -580,3 +580,12 @@ IEngineFactoryVk* GetEngineFactoryVk() } } // namespace Diligent + +extern "C" +{ + API_QUALIFIER + Diligent::IEngineFactoryVk* Diligent_GetEngineFactoryVk() + { + return Diligent::GetEngineFactoryVk(); + } +} -- cgit v1.2.3 From 203fe80f8807d8e90b3ff17b8e88e23f1a882dee Mon Sep 17 00:00:00 2001 From: assiduous Date: Mon, 2 Nov 2020 11:31:52 -0800 Subject: Added CreateRenderPass and CreateFramebuffer C functions --- Graphics/GraphicsEngine/interface/RenderDevice.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'Graphics') diff --git a/Graphics/GraphicsEngine/interface/RenderDevice.h b/Graphics/GraphicsEngine/interface/RenderDevice.h index 252daf1a..47c759db 100644 --- a/Graphics/GraphicsEngine/interface/RenderDevice.h +++ b/Graphics/GraphicsEngine/interface/RenderDevice.h @@ -292,6 +292,8 @@ DILIGENT_END_INTERFACE # define IRenderDevice_CreateComputePipelineState(This, ...) CALL_IFACE_METHOD(RenderDevice, CreateComputePipelineState, This, __VA_ARGS__) # define IRenderDevice_CreateFence(This, ...) CALL_IFACE_METHOD(RenderDevice, CreateFence, This, __VA_ARGS__) # define IRenderDevice_CreateQuery(This, ...) CALL_IFACE_METHOD(RenderDevice, CreateQuery, This, __VA_ARGS__) +# define IRenderDevice_CreateRenderPass(This, ...) CALL_IFACE_METHOD(RenderDevice, CreateRenderPass, This, __VA_ARGS__) +# define IRenderDevice_CreateFramebuffer(This, ...) CALL_IFACE_METHOD(RenderDevice, CreateFramebuffer, This, __VA_ARGS__) # define IRenderDevice_GetDeviceCaps(This) CALL_IFACE_METHOD(RenderDevice, GetDeviceCaps, This) # define IRenderDevice_GetTextureFormatInfo(This, ...) CALL_IFACE_METHOD(RenderDevice, GetTextureFormatInfo, This, __VA_ARGS__) # define IRenderDevice_GetTextureFormatInfoExt(This, ...) CALL_IFACE_METHOD(RenderDevice, GetTextureFormatInfoExt, This, __VA_ARGS__) -- cgit v1.2.3 From 37a3d0771d015bfc64bd9bd6ef87e294cf5a3a59 Mon Sep 17 00:00:00 2001 From: assiduous Date: Sun, 8 Nov 2020 12:19:20 -0800 Subject: Broken shader test: added broken MSL; added SHADER_SOURCE_LANGUAGE_MSL --- Graphics/GraphicsEngine/interface/Shader.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'Graphics') diff --git a/Graphics/GraphicsEngine/interface/Shader.h b/Graphics/GraphicsEngine/interface/Shader.h index dce77a82..bb4acc84 100644 --- a/Graphics/GraphicsEngine/interface/Shader.h +++ b/Graphics/GraphicsEngine/interface/Shader.h @@ -71,6 +71,9 @@ DILIGENT_TYPED_ENUM(SHADER_SOURCE_LANGUAGE, Uint32) /// The source language is GLSL SHADER_SOURCE_LANGUAGE_GLSL, + /// The source language is Metal shading language (MSL) + SHADER_SOURCE_LANGUAGE_MSL, + /// The source language is GLSL that should be compiled verbatim /// By default the engine prepends GLSL shader source code with platform-specific -- cgit v1.2.3