File tree Expand file tree Collapse file tree 6 files changed +36
-6
lines changed
GraphicsEngineD3D11/interface
GraphicsEngineD3D12/interface
GraphicsEngineOpenGL/interface
GraphicsEngineVulkan/interface
GraphicsEngineWebGPU/interface Expand file tree Collapse file tree 6 files changed +36
-6
lines changed Original file line number Diff line number Diff line change @@ -50,7 +50,12 @@ typedef struct IArchiverFactory* (*GetArchiverFactoryType)();
5050
5151inline GetArchiverFactoryType DILIGENT_GLOBAL_FUNCTION (LoadArchiverFactory )()
5252{
53- return (GetArchiverFactoryType )LoadEngineDll ("Archiver" , "GetArchiverFactory" );
53+ static GetArchiverFactoryType GetFactoryFunc = NULL ;
54+ if (GetFactoryFunc == NULL )
55+ {
56+ GetFactoryFunc = (GetArchiverFactoryType )LoadEngineDll ("Archiver" , "GetArchiverFactory" );
57+ }
58+ return GetFactoryFunc ;
5459}
5560
5661#else
Original file line number Diff line number Diff line change @@ -157,7 +157,12 @@ typedef struct IEngineFactoryD3D11* (*GetEngineFactoryD3D11Type)();
157157
158158inline GetEngineFactoryD3D11Type DILIGENT_GLOBAL_FUNCTION (LoadGraphicsEngineD3D11 )()
159159{
160- return (GetEngineFactoryD3D11Type )LoadEngineDll ("GraphicsEngineD3D11" , "GetEngineFactoryD3D11" );
160+ static GetEngineFactoryD3D11Type GetFactoryFunc = NULL ;
161+ if (GetFactoryFunc == NULL )
162+ {
163+ GetFactoryFunc = (GetEngineFactoryD3D11Type )LoadEngineDll ("GraphicsEngineD3D11" , "GetEngineFactoryD3D11" );
164+ }
165+ return GetFactoryFunc ;
161166}
162167
163168#else
Original file line number Diff line number Diff line change @@ -193,7 +193,12 @@ typedef struct IEngineFactoryD3D12* (*GetEngineFactoryD3D12Type)();
193193
194194inline GetEngineFactoryD3D12Type DILIGENT_GLOBAL_FUNCTION (LoadGraphicsEngineD3D12 )()
195195{
196- return (GetEngineFactoryD3D12Type )LoadEngineDll ("GraphicsEngineD3D12" , "GetEngineFactoryD3D12" );
196+ static GetEngineFactoryD3D12Type GetFactoryFunc = NULL ;
197+ if (GetFactoryFunc == NULL )
198+ {
199+ GetFactoryFunc = (GetEngineFactoryD3D12Type )LoadEngineDll ("GraphicsEngineD3D12" , "GetEngineFactoryD3D12" );
200+ }
201+ return GetFactoryFunc ;
197202}
198203
199204#else
Original file line number Diff line number Diff line change @@ -130,7 +130,12 @@ typedef struct IEngineFactoryOpenGL* (*GetEngineFactoryOpenGLType)();
130130
131131inline GetEngineFactoryOpenGLType DILIGENT_GLOBAL_FUNCTION (LoadGraphicsEngineOpenGL )()
132132{
133- return (GetEngineFactoryOpenGLType )LoadEngineDll ("GraphicsEngineOpenGL" , "GetEngineFactoryOpenGL" );
133+ static GetEngineFactoryOpenGLType GetFactoryFunc = NULL ;
134+ if (GetFactoryFunc == NULL )
135+ {
136+ GetFactoryFunc = (GetEngineFactoryOpenGLType )LoadEngineDll ("GraphicsEngineOpenGL" , "GetEngineFactoryOpenGL" );
137+ }
138+ return GetFactoryFunc ;
134139}
135140
136141#else
Original file line number Diff line number Diff line change @@ -136,7 +136,12 @@ typedef struct IEngineFactoryVk* (*GetEngineFactoryVkType)();
136136
137137inline GetEngineFactoryVkType DILIGENT_GLOBAL_FUNCTION (LoadGraphicsEngineVk )()
138138{
139- return (GetEngineFactoryVkType )LoadEngineDll ("GraphicsEngineVk" , "GetEngineFactoryVk" );
139+ static GetEngineFactoryVkType GetFactoryFunc = NULL ;
140+ if (GetFactoryFunc == NULL )
141+ {
142+ GetFactoryFunc = (GetEngineFactoryVkType )LoadEngineDll ("GraphicsEngineVk" , "GetEngineFactoryVk" );
143+ }
144+ return GetFactoryFunc ;
140145}
141146
142147#else
Original file line number Diff line number Diff line change @@ -145,7 +145,12 @@ typedef struct IEngineFactoryWebGPU* (*GetEngineFactoryWebGPUType)();
145145
146146inline GetEngineFactoryWebGPUType DILIGENT_GLOBAL_FUNCTION (LoadGraphicsEngineWebGPU )()
147147{
148- return (GetEngineFactoryWebGPUType )LoadEngineDll ("GraphicsEngineWebGPU" , "GetEngineFactoryWebGPU" );
148+ static GetEngineFactoryWebGPUType GetFactoryFunc = NULL ;
149+ if (GetFactoryFunc == NULL )
150+ {
151+ GetFactoryFunc = (GetEngineFactoryWebGPUType )LoadEngineDll ("GraphicsEngineWebGPU" , "GetEngineFactoryWebGPU" );
152+ }
153+ return GetFactoryFunc ;
149154}
150155
151156#else
You can’t perform that action at this time.
0 commit comments