88 lines
2.3 KiB
C++
88 lines
2.3 KiB
C++
#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__
|