fix gizmos with viewports

This commit is contained in:
2020-01-27 22:45:07 +07:00
parent ff415be341
commit bd085efa3a
2 changed files with 15 additions and 2 deletions

View File

@@ -101,8 +101,11 @@ namespace
{
prefab prefab;
prefab.prototype()
.component<named>(named()
.name("camera"))
.component<camera>(camera()
.background({1.f, 0.4f, 0.f, 1.f}));
.background({1.f, 0.4f, 0.f, 1.f}))
.component<camera::gizmos>();
the<world>().instantiate(
prefab,
@@ -112,6 +115,8 @@ namespace
{
prefab prefab;
prefab.prototype()
.component<named>(named()
.name("gnome"))
.component<renderer_rotator>(v3f::unit_y())
.component<renderer>(renderer().materials({model_mat}))
.component<model_renderer>(model_res);
@@ -125,6 +130,8 @@ namespace
{
prefab prefab;
prefab.prototype()
.component<named>(named()
.name("ship"))
.component<node_rotator>()
.component<renderer>()
.component<sprite_renderer>(sprite_renderer(sprite_res)
@@ -139,6 +146,8 @@ namespace
{
prefab prefab_a;
prefab_a.prototype()
.component<named>(named()
.name("cube"))
.component<node_rotator>()
.component<renderer>()
.component<sprite_renderer>(sprite_renderer()

View File

@@ -42,8 +42,12 @@ namespace
camera_vp_ =
math::inversed(cam_n->world_matrix()).first *
cam.projection() *
math::make_scale_matrix4(0.5f, -0.5f) *
math::make_scale_matrix4(0.5f, 0.5f) *
math::make_translation_matrix4(0.5f, 0.5f) *
math::make_scale_matrix4(cam.viewport().size) *
math::make_translation_matrix4(cam.viewport().position) *
math::make_scale_matrix4(1.f, -1.f) *
math::make_translation_matrix4(0.f, 1.f) *
math::make_scale_matrix4(v2f(ImGui::GetIO().DisplaySize));
return true;