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; | |||
|  | } |