aboutsummaryrefslogtreecommitdiff
path: root/demo/DemoApp/imguiser.h
blob: 2ff3495718ee2992555592dd95ea0f11c6cda03f (plain) (blame)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
 * 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.
 */

#pragma once

#include "imgui.h"

struct ImserNode;

/// ******************* imguiser public interface ********************

void imguiserInit();

void imguiserUpdate();

void imguiserDestroy();

void imguiserBeginFrame();

void imguiserEndFrame();

void imguiserBeginGroup(const char* name, int* numItems);

void imguiserEndGroup();

bool imguiserCheck(const char* text, bool checked, bool enabled = true);

bool imguiserSlider(const char* text, float* val, float vmin, float vmax, float vinc, bool enabled = true);

bool imguiserOffscreenUpdate();

void imguiserValue1f(const char* text, float* val);

void imguiserValueBool(const char* text, bool* val);

void imguiserSave(const char* filename);

void imguiserLoad(const char* filename);

void imguiserLoadC(const ImserNode* nodes, unsigned int sizeInBytes);

/// **************** imguiser serialization protocol *********************

enum ImserType
{
	IMSER_TYPE_GROUP_BEGIN = 0,
	IMSER_TYPE_GROUP_END = 1,
	IMSER_TYPE_FLOAT = 2,
	IMSER_TYPE_BOOL = 3,
};

struct ImserNode
{
	const char* name;
	ImserType typeID;
	union
	{
		float valFloat;
		bool valBool;
	};
};

ImserNode imserNodeGroupBegin(const char* name);

ImserNode imserNodeGroupEnd();

ImserNode imserNodeValue1f(const char* name, float value);

ImserNode imserNodeValueBool(const char* name, bool value);