diff options
Diffstat (limited to 'demo/DemoApp/NvFlowInteropLoaderGenerated.h')
| -rw-r--r-- | demo/DemoApp/NvFlowInteropLoaderGenerated.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/demo/DemoApp/NvFlowInteropLoaderGenerated.h b/demo/DemoApp/NvFlowInteropLoaderGenerated.h new file mode 100644 index 0000000..dad9989 --- /dev/null +++ b/demo/DemoApp/NvFlowInteropLoaderGenerated.h @@ -0,0 +1,96 @@ +/* +* Copyright (c) 2014-2017, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +typedef NvFlowContext* (*NvFlowInteropCreateContext_ptr_t)(AppGraphCtx* appctx); +typedef NvFlowDepthStencilView* (*NvFlowInteropCreateDepthStencilView_ptr_t)(AppGraphCtx* appctx, NvFlowContext* flowctx); +typedef NvFlowRenderTargetView* (*NvFlowInteropCreateRenderTargetView_ptr_t)(AppGraphCtx* appctx, NvFlowContext* flowctx); +typedef void (*NvFlowInteropUpdateContext_ptr_t)(NvFlowContext* context, AppGraphCtx* appctx); +typedef void (*NvFlowInteropUpdateDepthStencilView_ptr_t)(NvFlowDepthStencilView* view, AppGraphCtx* appctx, NvFlowContext* flowctx); +typedef void (*NvFlowInteropUpdateRenderTargetView_ptr_t)(NvFlowRenderTargetView* view, AppGraphCtx* appctx, NvFlowContext* flowctx); + +struct NvFlowInteropLoader +{ + void* module = nullptr; + const char* suffix = ""; + char buf[1024u]; + + NvFlowInteropCreateContext_ptr_t NvFlowInteropCreateContext_ptr; + NvFlowInteropCreateDepthStencilView_ptr_t NvFlowInteropCreateDepthStencilView_ptr; + NvFlowInteropCreateRenderTargetView_ptr_t NvFlowInteropCreateRenderTargetView_ptr; + NvFlowInteropUpdateContext_ptr_t NvFlowInteropUpdateContext_ptr; + NvFlowInteropUpdateDepthStencilView_ptr_t NvFlowInteropUpdateDepthStencilView_ptr; + NvFlowInteropUpdateRenderTargetView_ptr_t NvFlowInteropUpdateRenderTargetView_ptr; + +}gNvFlowInteropLoader; + +NvFlowContext* NvFlowInteropCreateContext(AppGraphCtx* appctx) +{ + return gNvFlowInteropLoader.NvFlowInteropCreateContext_ptr(appctx); +} + +NvFlowDepthStencilView* NvFlowInteropCreateDepthStencilView(AppGraphCtx* appctx, NvFlowContext* flowctx) +{ + return gNvFlowInteropLoader.NvFlowInteropCreateDepthStencilView_ptr(appctx, flowctx); +} + +NvFlowRenderTargetView* NvFlowInteropCreateRenderTargetView(AppGraphCtx* appctx, NvFlowContext* flowctx) +{ + return gNvFlowInteropLoader.NvFlowInteropCreateRenderTargetView_ptr(appctx, flowctx); +} + +void NvFlowInteropUpdateContext(NvFlowContext* context, AppGraphCtx* appctx) +{ + return gNvFlowInteropLoader.NvFlowInteropUpdateContext_ptr(context, appctx); +} + +void NvFlowInteropUpdateDepthStencilView(NvFlowDepthStencilView* view, AppGraphCtx* appctx, NvFlowContext* flowctx) +{ + return gNvFlowInteropLoader.NvFlowInteropUpdateDepthStencilView_ptr(view, appctx, flowctx); +} + +void NvFlowInteropUpdateRenderTargetView(NvFlowRenderTargetView* view, AppGraphCtx* appctx, NvFlowContext* flowctx) +{ + return gNvFlowInteropLoader.NvFlowInteropUpdateRenderTargetView_ptr(view, appctx, flowctx); +} + +void* nvFlowInteropLoaderLoadFunction(NvFlowInteropLoader* inst, const char* name) +{ + snprintf(inst->buf, 1024u, "%s%s", name, inst->suffix); + + return SDL_LoadFunction(inst->module, inst->buf); +} + +void loadNvFlowInterop(AppGraphCtxType type) +{ + const char* moduleName = demoAppDLLName(type); + + gNvFlowInteropLoader.suffix = demoAppBackendSuffix(type); + + gNvFlowInteropLoader.module = SDL_LoadObject(moduleName); + + gNvFlowInteropLoader.NvFlowInteropCreateContext_ptr = (NvFlowInteropCreateContext_ptr_t)(nvFlowInteropLoaderLoadFunction(&gNvFlowInteropLoader, "NvFlowInteropCreateContext")); + gNvFlowInteropLoader.NvFlowInteropCreateDepthStencilView_ptr = (NvFlowInteropCreateDepthStencilView_ptr_t)(nvFlowInteropLoaderLoadFunction(&gNvFlowInteropLoader, "NvFlowInteropCreateDepthStencilView")); + gNvFlowInteropLoader.NvFlowInteropCreateRenderTargetView_ptr = (NvFlowInteropCreateRenderTargetView_ptr_t)(nvFlowInteropLoaderLoadFunction(&gNvFlowInteropLoader, "NvFlowInteropCreateRenderTargetView")); + gNvFlowInteropLoader.NvFlowInteropUpdateContext_ptr = (NvFlowInteropUpdateContext_ptr_t)(nvFlowInteropLoaderLoadFunction(&gNvFlowInteropLoader, "NvFlowInteropUpdateContext")); + gNvFlowInteropLoader.NvFlowInteropUpdateDepthStencilView_ptr = (NvFlowInteropUpdateDepthStencilView_ptr_t)(nvFlowInteropLoaderLoadFunction(&gNvFlowInteropLoader, "NvFlowInteropUpdateDepthStencilView")); + gNvFlowInteropLoader.NvFlowInteropUpdateRenderTargetView_ptr = (NvFlowInteropUpdateRenderTargetView_ptr_t)(nvFlowInteropLoaderLoadFunction(&gNvFlowInteropLoader, "NvFlowInteropUpdateRenderTargetView")); +} + +void unloadNvFlowInterop() +{ + gNvFlowInteropLoader.NvFlowInteropCreateContext_ptr = nullptr; + gNvFlowInteropLoader.NvFlowInteropCreateDepthStencilView_ptr = nullptr; + gNvFlowInteropLoader.NvFlowInteropCreateRenderTargetView_ptr = nullptr; + gNvFlowInteropLoader.NvFlowInteropUpdateContext_ptr = nullptr; + gNvFlowInteropLoader.NvFlowInteropUpdateDepthStencilView_ptr = nullptr; + gNvFlowInteropLoader.NvFlowInteropUpdateRenderTargetView_ptr = nullptr; + + SDL_UnloadObject(gNvFlowInteropLoader.module); +} |