dummy camera gizmos component

This commit is contained in:
2020-01-21 04:18:39 +07:00
parent aa0d0fda15
commit 5ba9b666bd
7 changed files with 62 additions and 15 deletions

View File

@@ -15,6 +15,8 @@
namespace e2d
{
class camera final {
public:
class gizmos final {};
public:
camera() = default;
@@ -53,6 +55,20 @@ namespace e2d
asset_dependencies& dependencies,
const collect_context& ctx) const;
};
template <>
class factory_loader<camera::gizmos> final : factory_loader<> {
public:
static const char* schema_source;
bool operator()(
camera::gizmos& component,
const fill_context& ctx) const;
bool operator()(
asset_dependencies& dependencies,
const collect_context& ctx) const;
};
}
namespace e2d

View File

@@ -18,8 +18,7 @@ namespace e2d
{
class label final {
public:
class dirty final {
};
class dirty final {};
public:
ENUM_HPP_CLASS_DECL(haligns, u8,
(left)

View File

@@ -1,7 +1,11 @@
{
"components" : {
"named" : {
"name" : "camera"
},
"camera" : {
"background" : [1.0, 0.4, 0.0, 1.0]
}
},
"camera.gizmos" : {}
}
}

View File

@@ -3,12 +3,7 @@
"scene" : {}
},
"children" : [{
"prototype" : "../prefabs/camera_prefab.json",
"components" : {
"named" : {
"name" : "camera"
}
}
"prototype" : "../prefabs/camera_prefab.json"
},{
"prototype" : "../prefabs/gnome_prefab.json",
"components" : {

View File

@@ -3,12 +3,7 @@
"scene" : {}
},
"children" : [{
"prototype" : "../prefabs/camera_prefab.json",
"components" : {
"named" : {
"name" : "camera"
}
}
"prototype" : "../prefabs/camera_prefab.json"
},{
"prototype" : "../prefabs/coin_prefab.json",
"components" : {

View File

@@ -76,11 +76,47 @@ namespace e2d
}
}
namespace e2d
{
const char* factory_loader<camera::gizmos>::schema_source = R"json({
"type" : "object",
"required" : [],
"additionalProperties" : false,
"properties" : {}
})json";
bool factory_loader<camera::gizmos>::operator()(
camera::gizmos& component,
const fill_context& ctx) const
{
E2D_UNUSED(component, ctx);
return true;
}
bool factory_loader<camera::gizmos>::operator()(
asset_dependencies& dependencies,
const collect_context& ctx) const
{
E2D_UNUSED(dependencies, ctx);
return true;
}
}
namespace e2d
{
const char* component_inspector<camera>::title = "camera";
void component_inspector<camera>::operator()(gcomponent<camera>& c) const {
if ( bool gizmos = c.owner().component<camera::gizmos>().exists();
ImGui::Checkbox("gizmos", &gizmos) )
{
if ( gizmos ) {
c.owner().component<camera::gizmos>().ensure();
} else {
c.owner().component<camera::gizmos>().remove();
}
}
if ( i32 depth = c->depth();
ImGui::DragInt("depth", &depth) )
{

View File

@@ -178,6 +178,7 @@ namespace e2d
.register_component<actor>("actor")
.register_component<behaviour>("behaviour")
.register_component<camera>("camera")
.register_component<camera::gizmos>("camera.gizmos")
.register_component<flipbook_player>("flipbook_player")
.register_component<label>("label")
.register_component<label::dirty>("label.dirty")
@@ -194,6 +195,7 @@ namespace e2d
.register_component<actor>("actor")
.register_component<behaviour>("behaviour")
.register_component<camera>("camera")
//.register_component<camera::gizmos>("camera.gizmos")
.register_component<flipbook_player>("flipbook_player")
.register_component<label>("label")
//.register_component<label::dirty>("label.dirty")