File size: 1,828 Bytes
0c51b93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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));
}