63 lines
1.4 KiB
C++
63 lines
1.4 KiB
C++
|
# include <imgui.h>
|
|||
|
# include <imgui_node_editor.h>
|
|||
|
# include <application.h>
|
|||
|
|
|||
|
namespace ed = ax::NodeEditor;
|
|||
|
|
|||
|
struct Example:
|
|||
|
public Application
|
|||
|
{
|
|||
|
using Application::Application;
|
|||
|
|
|||
|
void OnStart() override
|
|||
|
{
|
|||
|
ed::Config config;
|
|||
|
config.SettingsFile = "Simple.json";
|
|||
|
m_Context = ed::CreateEditor(&config);
|
|||
|
}
|
|||
|
|
|||
|
void OnStop() override
|
|||
|
{
|
|||
|
ed::DestroyEditor(m_Context);
|
|||
|
}
|
|||
|
|
|||
|
void OnFrame(float deltaTime) override
|
|||
|
{
|
|||
|
auto& io = ImGui::GetIO();
|
|||
|
|
|||
|
ImGui::Text("FPS: %.2f (%.2gms)", io.Framerate, io.Framerate ? 1000.0f / io.Framerate : 0.0f);
|
|||
|
|
|||
|
ImGui::Separator();
|
|||
|
|
|||
|
ed::SetCurrentEditor(m_Context);
|
|||
|
ed::Begin("My Editor", ImVec2(0.0, 0.0f));
|
|||
|
int uniqueId = 1;
|
|||
|
// Start drawing nodes.
|
|||
|
ed::BeginNode(uniqueId++);
|
|||
|
ImGui::Text("Node A");
|
|||
|
ed::BeginPin(uniqueId++, ed::PinKind::Input);
|
|||
|
ImGui::Text("-> In");
|
|||
|
ed::EndPin();
|
|||
|
ImGui::SameLine();
|
|||
|
ed::BeginPin(uniqueId++, ed::PinKind::Output);
|
|||
|
ImGui::Text("Out ->");
|
|||
|
ed::EndPin();
|
|||
|
ed::EndNode();
|
|||
|
ed::End();
|
|||
|
ed::SetCurrentEditor(nullptr);
|
|||
|
|
|||
|
//ImGui::ShowMetricsWindow();
|
|||
|
}
|
|||
|
|
|||
|
ed::EditorContext* m_Context = nullptr;
|
|||
|
};
|
|||
|
|
|||
|
int Main(int argc, char** argv)
|
|||
|
{
|
|||
|
Example exampe("Simple", argc, argv);
|
|||
|
|
|||
|
if (exampe.Create())
|
|||
|
return exampe.Run();
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|