|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define NOMINMAX |
|
|
#include <d3d12.h> |
|
|
|
|
|
|
|
|
#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)); |
|
|
} |