mirror of https://github.com/AxioDL/metaforce.git
add EffectEditor stubs
This commit is contained in:
parent
8c04185841
commit
3f21eae617
|
@ -19,6 +19,7 @@ endif()
|
||||||
atdna(atdna_Space.cpp Space.hpp)
|
atdna(atdna_Space.cpp Space.hpp)
|
||||||
atdna(atdna_ResourceBrowser.cpp ResourceBrowser.hpp)
|
atdna(atdna_ResourceBrowser.cpp ResourceBrowser.hpp)
|
||||||
atdna(atdna_ModelViewer.cpp ModelViewer.hpp)
|
atdna(atdna_ModelViewer.cpp ModelViewer.hpp)
|
||||||
|
atdna(atdna_EffectEditor.cpp EffectEditor.hpp)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(PLAT_SRCS platforms/win/urde.rc)
|
set(PLAT_SRCS platforms/win/urde.rc)
|
||||||
|
@ -38,6 +39,7 @@ add_executable(urde WIN32 MACOSX_BUNDLE
|
||||||
SplashScreen.hpp SplashScreen.cpp
|
SplashScreen.hpp SplashScreen.cpp
|
||||||
ResourceBrowser.hpp ResourceBrowser.cpp atdna_ResourceBrowser.cpp
|
ResourceBrowser.hpp ResourceBrowser.cpp atdna_ResourceBrowser.cpp
|
||||||
ModelViewer.hpp ModelViewer.cpp atdna_ModelViewer.cpp
|
ModelViewer.hpp ModelViewer.cpp atdna_ModelViewer.cpp
|
||||||
|
EffectEditor.hpp EffectEditor.cpp atdna_EffectEditor.cpp
|
||||||
ProjectManager.hpp ProjectManager.cpp
|
ProjectManager.hpp ProjectManager.cpp
|
||||||
ViewManager.hpp ViewManager.cpp
|
ViewManager.hpp ViewManager.cpp
|
||||||
Camera.hpp Camera.cpp)
|
Camera.hpp Camera.cpp)
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
#include "EffectEditor.hpp"
|
||||||
|
|
||||||
|
namespace URDE
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
#ifndef URDE_EFFECT_EDITOR_HPP
|
||||||
|
#define URDE_EFFECT_EDITOR_HPP
|
||||||
|
|
||||||
|
#include "Space.hpp"
|
||||||
|
|
||||||
|
namespace URDE
|
||||||
|
{
|
||||||
|
|
||||||
|
class EffectEditor : public EditorSpace
|
||||||
|
{
|
||||||
|
struct State : Space::State
|
||||||
|
{
|
||||||
|
DECL_YAML
|
||||||
|
String<-1> path;
|
||||||
|
} m_state;
|
||||||
|
const Space::State& spaceState() const {return m_state;}
|
||||||
|
|
||||||
|
Specter::View* buildContentView(Specter::ViewResources& res)
|
||||||
|
{
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
EffectEditor(ViewManager& vm, Space* parent)
|
||||||
|
: EditorSpace(vm, Class::EffectEditor, parent) {}
|
||||||
|
EffectEditor(ViewManager& vm, Space* parent, ConfigReader& r)
|
||||||
|
: EffectEditor(vm, parent) {m_state.read(r);}
|
||||||
|
EffectEditor(ViewManager& vm, Space* parent, const EffectEditor& other)
|
||||||
|
: EffectEditor(vm, parent) {m_state = other.m_state;}
|
||||||
|
|
||||||
|
Space* copy(Space* parent) const
|
||||||
|
{
|
||||||
|
return new EffectEditor(m_vm, parent, *this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // URDE_EFFECT_EDITOR_HPP
|
|
@ -36,10 +36,6 @@ class ModelViewer : public Space
|
||||||
{
|
{
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
virtual Specter::View* buildSpaceView(Specter::ViewResources& res)
|
|
||||||
{
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ModelViewer(ViewManager& vm, Space* parent)
|
ModelViewer(ViewManager& vm, Space* parent)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "Space.hpp"
|
#include "Space.hpp"
|
||||||
#include "ViewManager.hpp"
|
#include "ViewManager.hpp"
|
||||||
#include "ResourceBrowser.hpp"
|
#include "ResourceBrowser.hpp"
|
||||||
|
#include "EffectEditor.hpp"
|
||||||
#include "icons/icons.hpp"
|
#include "icons/icons.hpp"
|
||||||
|
|
||||||
namespace URDE
|
namespace URDE
|
||||||
|
@ -19,9 +20,9 @@ Specter::View* Space::buildSpaceView(Specter::ViewResources& res)
|
||||||
Specter::View* sview = buildContentView(res);
|
Specter::View* sview = buildContentView(res);
|
||||||
m_spaceView->setContentView(sview);
|
m_spaceView->setContentView(sview);
|
||||||
Specter::Toolbar& tb = *m_spaceView->toolbar();
|
Specter::Toolbar& tb = *m_spaceView->toolbar();
|
||||||
const std::string* classStr = SpaceMenuNode::lookupClassString(m_class);
|
const std::string* classStr = SpaceMenuNode::LookupClassString(m_class);
|
||||||
Specter::Icon* classIcon = SpaceMenuNode::lookupClassIcon(m_class);
|
Specter::Icon* classIcon = SpaceMenuNode::LookupClassIcon(m_class);
|
||||||
const Zeus::CColor* classColor = SpaceMenuNode::lookupClassColor(m_class);
|
const Zeus::CColor* classColor = SpaceMenuNode::LookupClassColor(m_class);
|
||||||
m_spaceSelectButton.reset(new Specter::Button(res, tb, &m_spaceSelectBind, "", classIcon,
|
m_spaceSelectButton.reset(new Specter::Button(res, tb, &m_spaceSelectBind, "", classIcon,
|
||||||
Specter::Button::Style::Block,
|
Specter::Button::Style::Block,
|
||||||
classColor?*classColor:Zeus::CColor::skWhite));
|
classColor?*classColor:Zeus::CColor::skWhite));
|
||||||
|
@ -40,11 +41,12 @@ Specter::View* Space::buildSpaceView(Specter::ViewResources& res)
|
||||||
|
|
||||||
std::vector<Space::SpaceMenuNode::SubNodeData> Space::SpaceMenuNode::s_subNodeDats =
|
std::vector<Space::SpaceMenuNode::SubNodeData> Space::SpaceMenuNode::s_subNodeDats =
|
||||||
{
|
{
|
||||||
{Class::ResourceBrowser, "resource_browser", "Resource Browser", GetIcon(SpaceIcon::ResourceBrowser), {0.0,1.0,0.0,1.0}}
|
{Class::ResourceBrowser, "resource_browser", "Resource Browser", GetIcon(SpaceIcon::ResourceBrowser), {0.0,1.0,0.0,1.0}},
|
||||||
|
{Class::EffectEditor, "effect_editor", "Effect Editor", GetIcon(SpaceIcon::ParticleEditor), {1.0,0.5,0.0,1.0}}
|
||||||
};
|
};
|
||||||
std::string Space::SpaceMenuNode::s_text = "Space Types";
|
std::string Space::SpaceMenuNode::s_text = "Space Types";
|
||||||
|
|
||||||
void Space::SpaceMenuNode::initializeStrings(ViewManager& vm)
|
void Space::SpaceMenuNode::InitializeStrings(ViewManager& vm)
|
||||||
{
|
{
|
||||||
s_text = vm.translateOr("space_types", s_text.c_str());
|
s_text = vm.translateOr("space_types", s_text.c_str());
|
||||||
for (SubNodeData& sn : s_subNodeDats)
|
for (SubNodeData& sn : s_subNodeDats)
|
||||||
|
@ -69,7 +71,7 @@ Specter::View* RootSpace::basisView() {return &m_vm.rootView();}
|
||||||
Specter::View* SplitSpace::buildContentView(Specter::ViewResources& res)
|
Specter::View* SplitSpace::buildContentView(Specter::ViewResources& res)
|
||||||
{
|
{
|
||||||
int clearance = res.pixelFactor() * SPECTER_TOOLBAR_GAUGE;
|
int clearance = res.pixelFactor() * SPECTER_TOOLBAR_GAUGE;
|
||||||
m_splitView.reset(new Specter::SplitView(res, m_vm.rootView(), this, m_state.axis,
|
m_splitView.reset(new Specter::SplitView(res, *m_parent->basisView(), this, m_state.axis,
|
||||||
m_state.split, clearance, clearance));
|
m_state.split, clearance, clearance));
|
||||||
if (m_slots[0])
|
if (m_slots[0])
|
||||||
m_splitView->setContentView(0, m_slots[0]->buildSpaceView(res));
|
m_splitView->setContentView(0, m_slots[0]->buildSpaceView(res));
|
||||||
|
@ -195,6 +197,8 @@ static Space* BuildNewSpace(ViewManager& vm, Space::Class cls, Space* parent, Re
|
||||||
return new SplitSpace(vm, parent, r);
|
return new SplitSpace(vm, parent, r);
|
||||||
case Class::ResourceBrowser:
|
case Class::ResourceBrowser:
|
||||||
return new ResourceBrowser(vm, parent, r);
|
return new ResourceBrowser(vm, parent, r);
|
||||||
|
case Class::EffectEditor:
|
||||||
|
return new EffectEditor(vm, parent, r);
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
|
@ -25,6 +25,7 @@ public:
|
||||||
Space(const Space& other) = delete;
|
Space(const Space& other) = delete;
|
||||||
Space& operator=(const Space& other) = delete;
|
Space& operator=(const Space& other) = delete;
|
||||||
|
|
||||||
|
/** Common encoded-enumeration for all space classes */
|
||||||
enum class Class
|
enum class Class
|
||||||
{
|
{
|
||||||
None,
|
None,
|
||||||
|
@ -32,7 +33,8 @@ public:
|
||||||
SplitSpace,
|
SplitSpace,
|
||||||
TestSpace,
|
TestSpace,
|
||||||
ResourceBrowser,
|
ResourceBrowser,
|
||||||
ModelViewer
|
ModelViewer,
|
||||||
|
EffectEditor
|
||||||
};
|
};
|
||||||
|
|
||||||
struct State : Athena::io::DNAYaml<Athena::BigEndian> {Delete _d;};
|
struct State : Athena::io::DNAYaml<Athena::BigEndian> {Delete _d;};
|
||||||
|
@ -80,22 +82,22 @@ public:
|
||||||
size_t subNodeCount() const {return m_subNodes.size();}
|
size_t subNodeCount() const {return m_subNodes.size();}
|
||||||
IMenuNode* subNode(size_t idx) {return &m_subNodes[idx];}
|
IMenuNode* subNode(size_t idx) {return &m_subNodes[idx];}
|
||||||
|
|
||||||
static void initializeStrings(ViewManager& vm);
|
static void InitializeStrings(ViewManager& vm);
|
||||||
static const std::string* lookupClassString(Class cls)
|
static const std::string* LookupClassString(Class cls)
|
||||||
{
|
{
|
||||||
for (const SubNodeData& sn : s_subNodeDats)
|
for (const SubNodeData& sn : s_subNodeDats)
|
||||||
if (sn.m_cls == cls)
|
if (sn.m_cls == cls)
|
||||||
return &sn.m_text;
|
return &sn.m_text;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
static Specter::Icon* lookupClassIcon(Class cls)
|
static Specter::Icon* LookupClassIcon(Class cls)
|
||||||
{
|
{
|
||||||
for (SubNodeData& sn : s_subNodeDats)
|
for (SubNodeData& sn : s_subNodeDats)
|
||||||
if (sn.m_cls == cls)
|
if (sn.m_cls == cls)
|
||||||
return &sn.m_icon;
|
return &sn.m_icon;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
static const Zeus::CColor* lookupClassColor(Class cls)
|
static const Zeus::CColor* LookupClassColor(Class cls)
|
||||||
{
|
{
|
||||||
for (SubNodeData& sn : s_subNodeDats)
|
for (SubNodeData& sn : s_subNodeDats)
|
||||||
if (sn.m_cls == cls)
|
if (sn.m_cls == cls)
|
||||||
|
@ -343,6 +345,20 @@ public:
|
||||||
Specter::View* basisView() {return m_splitView.get();}
|
Specter::View* basisView() {return m_splitView.get();}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class ViewerSpace : public Space
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ViewerSpace(ViewManager& vm, Class cls, Space* parent)
|
||||||
|
: Space(vm, cls, parent) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class EditorSpace : public Space
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EditorSpace(ViewManager& vm, Class cls, Space* parent)
|
||||||
|
: Space(vm, cls, parent) {}
|
||||||
|
};
|
||||||
|
|
||||||
class TestSpace : public Space
|
class TestSpace : public Space
|
||||||
{
|
{
|
||||||
std::unique_ptr<Specter::Button> m_button;
|
std::unique_ptr<Specter::Button> m_button;
|
||||||
|
|
|
@ -82,7 +82,7 @@ ViewManager::ViewManager(HECL::Runtime::FileStoreManager& fileMgr, HECL::CVarMan
|
||||||
m_recentProjectsPath(HECL::SysFormat(_S("%s/recent_projects.txt"), fileMgr.getStoreRoot().c_str())),
|
m_recentProjectsPath(HECL::SysFormat(_S("%s/recent_projects.txt"), fileMgr.getStoreRoot().c_str())),
|
||||||
m_recentFilesPath(HECL::SysFormat(_S("%s/recent_files.txt"), fileMgr.getStoreRoot().c_str()))
|
m_recentFilesPath(HECL::SysFormat(_S("%s/recent_files.txt"), fileMgr.getStoreRoot().c_str()))
|
||||||
{
|
{
|
||||||
Space::SpaceMenuNode::initializeStrings(*this);
|
Space::SpaceMenuNode::InitializeStrings(*this);
|
||||||
char path[2048];
|
char path[2048];
|
||||||
HECL::Sstat theStat;
|
HECL::Sstat theStat;
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit a4272a09a349a1b9ff5ae921960f44470e31b47a
|
Subproject commit 2adc2f1c6c0b6770955fcf46ab1bba2ac091ac23
|
Loading…
Reference in New Issue