diff options
Diffstat (limited to 'demo/d3d12/imguiInteropD3D12.cpp')
| -rw-r--r-- | demo/d3d12/imguiInteropD3D12.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/demo/d3d12/imguiInteropD3D12.cpp b/demo/d3d12/imguiInteropD3D12.cpp new file mode 100644 index 0000000..23d7422 --- /dev/null +++ b/demo/d3d12/imguiInteropD3D12.cpp @@ -0,0 +1,61 @@ +/* + * 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. + */ + + //direct3d headers +#define NOMINMAX +#include <d3d12.h> + +// include the Direct3D Library file +#pragma comment (lib, "d3d12.lib") + +#include "imguiGraphD3D12.h" + +#include "appD3D12Ctx.h" + +struct AppGraphCtx; + +namespace NvCo = nvidia::Common; + +inline void imguiInteropUpdateDesc(ImguiGraphDescD3D12& desc, AppGraphCtx* appctxIn) +{ + auto context = cast_to_AppGraphCtxD3D12(appctxIn); + + desc.device = context->m_device; + desc.commandList = context->m_commandList; + + desc.lastFenceCompleted = 0; + desc.nextFenceValue = 1; + + desc.winW = context->m_winW; + desc.winH = context->m_winH; + desc.numMSAASamples = context->m_numMsaaSamples; + desc.dynamicHeapCbvSrvUav.userdata = context; + desc.dynamicHeapCbvSrvUav.reserveDescriptors = nullptr; +} + +IMGUI_GRAPH_API bool imguiInteropGraphInitD3D12(imguiGraphInit_t func, const char* fontpath, AppGraphCtx* appctx); + +IMGUI_GRAPH_API void imguiInteropGraphUpdateD3D12(imguiGraphUpdate_t func, AppGraphCtx* appctx); + +bool imguiInteropGraphInitD3D12(imguiGraphInit_t func, const char* fontpath, AppGraphCtx* appctx) +{ + ImguiGraphDescD3D12 desc; + imguiInteropUpdateDesc(desc, appctx); + + return func(fontpath, cast_from_imguiGraphDescD3D12(&desc)); +} + +void imguiInteropGraphUpdateD3D12(imguiGraphUpdate_t func, AppGraphCtx* appctx) +{ + ImguiGraphDescD3D12 desc; + imguiInteropUpdateDesc(desc, appctx); + + return func(cast_from_imguiGraphDescD3D12(&desc)); +}
\ No newline at end of file |