Files

88 lines
2.3 KiB
C++
Raw Permalink Normal View History

2025-05-13 02:46:21 +03:00
#ifndef Editor_h__
#define Editor_h__
#include <LifeEngine.h>
#include <RenderWindow.h>
#include <vfs/IFileSystem.h>
#include <vfs/fs_win/IFSContentProvider.h>
#include <FrameCounter.h>
#include <gui/GUIPicture.h>
#include <InputSystemOIS.h>
#include <gui/GUIScroll.h>
#include <gui/GUIButton.h>
#include "GUINodeContainer.h"
#include "GUIShaderNode.h"
#include <gui/GUISlider.h>
#include <gui/GUIMenu.h>
#include <gui/GUIProgress.h>
#include <vector>
#include <SoundSystem.h>
#include <ISound.h>
#include "GUINodeList.h"
#include <gui/GUIPropertyGrid.h>
struct NodeInfo
{
String Name;
String ClassName;
NodeInfo(const String& name, const String& className)
{
Name = name;
ClassName = className;
}
};
class Editor : public IKeyListener
{
public:
Editor();
~Editor();
void Run();
bool KeyDown( Key key, unsigned int text, const std::string& str );
bool KeyUp( Key key, unsigned int text, const std::string& str );
bool MouseMove( int absX, int relX, int absY, int relY);
bool MousePressed(Core::MouseKey key);
bool MouseReleased(Core::MouseKey key);
private:
void OnCompileShader(GUIWindow* wnd, int p);
void OnSaveGraph(GUIWindow* wnd, int p);
void OnLoadGraph(GUIWindow* wnd, int p);
void OnGraphNodeDelete(GUINodeContainer* container, GUIShaderNode* node);
std::vector<NodeInfo*> node_info;
GUINodeList* node_list;
IShaderGraph* sg;
texture_ptr material_textures[16];
GUIShaderNode* AddNode(const String& name);
void OnAddNode( GUIWindow* w, const String& s, void* d);
void OnResizeOutput(GUIWindow* wnd);
void menu_exit(GUIMenuItem* m);
GUIProgress* progress;
GUISlider* slider;
GUIText* time_info;
void SwitchPlayback(GUIWindow* wnd, int t);
Sound::SoundSystem* sndSystem;
Sound::ISound* snd;
void AddShaderLink(GUIShaderNodeIO* left, GUIShaderNodeIO* right);
void OnButtonClick(GUIWindow* wnd, int key);
void OnScroll(GUIScroll* wnd, int key);
LifeEngine* pGraphics;
RenderWindowWin* pWindow;
void DoLogics();
void DoRendering();
void DoCleanup();
void SetTrackPosition(GUIWindow* sender, int args);
bool bRunning;
Core::IFileSystem* fileSystem;
FrameCounter frame_counter;
GUIButton* b2;
GUIPicture* sceneOutput;
GUINodeContainer* nodeContainer;
InputSystemOIS* pInput;
Video::IObjectMesh* tower;
GUIPropertyGrid* propGrid;
};
#endif // Editor_h__