Skip to content

Commit 002747a

Browse files
committed
Resizable editor window and a few improvements
1 parent 0f5146b commit 002747a

File tree

4 files changed

+86
-17
lines changed

4 files changed

+86
-17
lines changed

3Dev-Editor/gui/editor.txt

Lines changed: 41 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ Renderer.21 {
292292
TextureHover = "themes/Black.png" Part(62, 288, 60, 40) Middle(15, 0) Smooth;
293293
}
294294

295-
ChildWindow.ChildWindow1 {
295+
ChildWindow.createWindow {
296296
PositionLocked = true;
297297
Size = (220, 900);
298298
Title = Create;
@@ -474,7 +474,7 @@ ChildWindow.ChildWindow1 {
474474
}
475475
}
476476

477-
ChildWindow.ChildWindow2 {
477+
ChildWindow.sceneTreeWindow {
478478
Position = (1330, 0);
479479
PositionLocked = true;
480480
Renderer = &4;
@@ -486,7 +486,7 @@ ChildWindow.ChildWindow2 {
486486

487487
TreeView.scene {
488488
ItemHeight = 20;
489-
Size = (270, 315);
489+
Size = (270, 100%);
490490
TextSize = 13;
491491

492492
Renderer {
@@ -2616,15 +2616,45 @@ ChildWindow.objectEditorWindow {
26162616
ChildWindow.viewport {
26172617
Position = (220, 0);
26182618
PositionLocked = true;
2619-
Renderer = &4;
2620-
Size = (1110, 662);
2619+
Size = (1110, 660);
26212620
Title = Viewport;
26222621
TitleAlignment = Center;
26232622
TitleButtons = None;
26242623
TitleTextSize = 13;
26252624

2625+
Renderer {
2626+
BackgroundColor = rgb( 80, 80, 80);
2627+
BorderColor = Black;
2628+
Borders = (1, 1, 1, 1);
2629+
DistanceToSide = 5;
2630+
PaddingBetweenButtons = 2;
2631+
ShowTextOnTitleButtons = false;
2632+
TextureBackground = None;
2633+
TextureTitleBar = "themes/Black.png" Part(0, 580, 75, 25) Middle(25, 0) Smooth;
2634+
TitleBarHeight = 25;
2635+
TitleColor = rgb(190, 190, 190);
2636+
2637+
MaximizeButton {
2638+
Texture = "themes/Black.png" Part(0, 330, 15, 15) Smooth;
2639+
TextureDown = "themes/Black.png" Part(17, 330, 15, 15) Smooth;
2640+
TextureHover = "themes/Black.png" Part(34, 330, 15, 15) Smooth;
2641+
}
2642+
2643+
MinimizeButton {
2644+
Texture = "themes/Black.png" Part(81, 330, 15, 15) Smooth;
2645+
TextureDown = "themes/Black.png" Part(98, 330, 15, 15) Smooth;
2646+
TextureHover = "themes/Black.png" Part(0, 347, 15, 15) Smooth;
2647+
}
2648+
2649+
CloseButton {
2650+
Texture = "themes/Black.png" Part(34, 212, 15, 15) Smooth;
2651+
TextureDown = "themes/Black.png" Part(51, 212, 15, 15) Smooth;
2652+
TextureHover = "themes/Black.png" Part(68, 212, 15, 15) Smooth;
2653+
}
2654+
}
2655+
26262656
Label.mode {
2627-
Position = (4, 608);
2657+
Position = (4, 96.05%);
26282658
Size = (808.2, 26.0827);
26292659
Text = "Mode: None";
26302660
TextSize = 13;
@@ -2650,7 +2680,7 @@ ChildWindow.viewport {
26502680
}
26512681
}
26522682

2653-
ChildWindow.ChildWindow3 {
2683+
ChildWindow.messagesWindow {
26542684
Position = (220, 660);
26552685
PositionLocked = true;
26562686
Renderer = &4;
@@ -2663,7 +2693,7 @@ ChildWindow.ChildWindow3 {
26632693
ChatBox.messages {
26642694
LinesStartFromTop = false;
26652695
NewLinesBelowOthers = true;
2666-
Size = (1108, 214);
2696+
Size = (100%, 214);
26672697
TextColor = black;
26682698
TextSize = 13;
26692699

@@ -2729,7 +2759,7 @@ ChildWindow.codeEditor {
27292759
TextArea.code {
27302760
HorizontalScrollbarPolicy = Never;
27312761
MaximumCharacters = 0;
2732-
Size = (1108, 601.432);
2762+
Size = (100%, 94.66%);
27332763
Text = "";
27342764
TextSize = 13;
27352765

@@ -2757,8 +2787,8 @@ ChildWindow.codeEditor {
27572787

27582788
Tabs.fileTabs {
27592789
AutoSize = 0;
2760-
Position = (0, 600);
2761-
Size = (1108, 33);
2790+
Position = (0, 94.43%);
2791+
Size = (100%, 5.19%);
27622792
TextSize = 13;
27632793

27642794
Renderer {

3Dev-Editor/main.cpp

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ int main()
256256
auto progressBar = loading.get<tgui::ProgressBar>("progressBar");
257257

258258
auto viewportWindow = editor.get<tgui::ChildWindow>("viewport");
259-
auto viewport = tgui::CanvasOpenGL3::create({ viewportWindow->getSize().x, viewportWindow->getSize().y - 28 });
259+
auto viewport = tgui::CanvasOpenGL3::create({ "100%", "100%" });
260260

261261
viewportWindow->add(viewport);
262262

@@ -568,7 +568,7 @@ int main()
568568
Renderer::GetInstance()->SetSSRRayStep(properties["renderer"]["ssrRayStep"].asFloat());
569569
Renderer::GetInstance()->SetSSRMaxSteps(properties["renderer"]["ssrMaxSteps"].asInt());
570570
Renderer::GetInstance()->SetSSRMaxBinarySearchSteps(properties["renderer"]["ssrMaxBinarySearchSteps"].asInt());
571-
Renderer::GetInstance()->Init({ (uint32_t)viewportWindow->getSize().x, (uint32_t)viewportWindow->getSize().y - 28 },
571+
Renderer::GetInstance()->Init({ (uint32_t)viewport->getSize().x, (uint32_t)viewport->getSize().y },
572572
properties["renderer"]["hdriPath"].asString(),
573573
properties["renderer"]["skyboxSideSize"].asInt(),
574574
properties["renderer"]["irradianceSideSize"].asInt(),
@@ -584,8 +584,8 @@ int main()
584584
engine.GetWindow().display();
585585

586586
Camera cam(&engine.GetWindow());
587-
cam.SetViewportSize({ (uint32_t)viewportWindow->getSize().x, (uint32_t)viewportWindow->getSize().y - 28 });
588-
cam.SetGuiSize({ (uint32_t)viewportWindow->getSize().x, (uint32_t)viewportWindow->getSize().y - 28 });
587+
cam.SetViewportSize({ (uint32_t)viewport->getSize().x, (uint32_t)viewport->getSize().y });
588+
cam.SetGuiSize({ (uint32_t)viewport->getSize().x, (uint32_t)viewport->getSize().y });
589589

590590
Light* shadowSource = new Light({ 0, 0, 0 }, { 30.1, 50.0, -30.1 }, true);
591591

@@ -645,7 +645,7 @@ int main()
645645

646646
// Gizmos
647647
sf::Vector2i prevMPos;
648-
auto gizmosFb = std::make_shared<Framebuffer>(Renderer::GetInstance()->GetShader(Renderer::ShaderType::Post), (uint32_t)viewportWindow->getSize().x, (uint32_t)viewportWindow->getSize().y - 28);
648+
auto gizmosFb = std::make_shared<Framebuffer>(Renderer::GetInstance()->GetShader(Renderer::ShaderType::Post), (uint32_t)viewport->getSize().x, (uint32_t)viewport->getSize().y);
649649

650650
Material gizmoXMat(
651651
{
@@ -1418,6 +1418,41 @@ int main()
14181418
editor.handleEvent(event);
14191419
if(focusCodeArea)
14201420
codeArea->setFocused(true);
1421+
if(event.type == sf::Event::Resized)
1422+
{
1423+
auto p = editor.get<tgui::ChildWindow>("objectEditorWindow");
1424+
auto s = editor.get<tgui::ChildWindow>("sceneTreeWindow");
1425+
auto m = editor.get<tgui::ChildWindow>("messagesWindow");
1426+
auto c = editor.get<tgui::ChildWindow>("createWindow");
1427+
1428+
p->setPosition({ event.size.width - p->getSize().x, event.size.height - p->getSize().y });
1429+
1430+
s->setPosition({ event.size.width - s->getSize().x, 0 });
1431+
s->setSize({ 270, p->getPosition().y });
1432+
1433+
m->setPosition({ m->getPosition().x, event.size.height - m->getSize().y });
1434+
m->setSize({ p->getPosition().x - m->getPosition().x, m->getSize().y });
1435+
1436+
c->setSize({ c->getSize().x, event.size.height });
1437+
1438+
viewportWindow->setSize({ p->getPosition().x - c->getSize().x, event.size.height - m->getSize().y });
1439+
editor.get<tgui::ChildWindow>("codeEditor")->setSize(viewportWindow->getSize());
1440+
1441+
engine.SetGuiView({ 0, 0, viewportWindow->getSize().x * 1.65f, viewportWindow->getSize().y * 1.65f });
1442+
engine.SetGuiViewport({ 221, 26, viewportWindow->getSize().x - 1, viewportWindow->getSize().y - 28 });
1443+
1444+
cam.SetViewportSize({ (uint32_t)viewport->getSize().x, (uint32_t)viewport->getSize().y });
1445+
cam.SetGuiSize({ (uint32_t)viewport->getSize().x, (uint32_t)viewport->getSize().y });
1446+
1447+
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::GBuffer)->Resize(viewport->getSize().x, viewport->getSize().y);
1448+
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::DecalsGBuffer)->Resize(viewport->getSize().x, viewport->getSize().y);
1449+
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::Main)->Resize(viewport->getSize().x, viewport->getSize().y);
1450+
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::Transparency)->Resize(viewport->getSize().x, viewport->getSize().y);
1451+
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::SSAO)->Resize(viewport->getSize().x / 2.0, viewport->getSize().y / 2.0);
1452+
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::SSR)->Resize(viewport->getSize().x, viewport->getSize().y);
1453+
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::BloomPingPong0)->Resize(viewport->getSize().x / properties["renderer"]["bloomResolutionScale"].asFloat(), viewport->getSize().y / properties["renderer"]["bloomResolutionScale"].asFloat());
1454+
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::BloomPingPong1)->Resize(viewport->getSize().x / properties["renderer"]["bloomResolutionScale"].asFloat(), viewport->getSize().y / properties["renderer"]["bloomResolutionScale"].asFloat());
1455+
}
14211456
if(event.type == sf::Event::Closed)
14221457
engine.Close();
14231458
});

3Dev/launcher.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ int main()
148148
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::Main)->Resize(event.size.width, event.size.height);
149149
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::Transparency)->Resize(event.size.width, event.size.height);
150150
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::SSAO)->Resize(event.size.width / 2.0, event.size.height / 2.0);
151+
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::SSR)->Resize(event.size.width, event.size.height);
151152
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::BloomPingPong0)->Resize(event.size.width / bloomResolutionScale, event.size.height / bloomResolutionScale);
152153
Renderer::GetInstance()->GetFramebuffer(Renderer::FramebufferType::BloomPingPong1)->Resize(event.size.width / bloomResolutionScale, event.size.height / bloomResolutionScale);
153154

3Dev/shaders/ssr.fs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ vec3 hash(vec3 a)
8383
{
8484
a = fract(a * 0.8);
8585
a += dot(a, a.yxz + 19.19);
86-
return fract((a.xxy + a.yxx) * a.zyx) * rand(a.yz);
86+
return fract((a.xxy + a.yxx) * a.zyx) * rand(a.yz) * 2.0;
8787
}
8888

8989
void main()
@@ -93,6 +93,9 @@ void main()
9393

9494
vec4 combined = texture(gcombined, coord);
9595

96+
if(combined.x == 0.0 && combined.y >= 0.9)
97+
discard;
98+
9699
vec3 jitt = mix(vec3(0.0), hash((pos).xyz), combined.y);
97100
vec3 ssr = SSR((jitt + reflected * max(0.1, -pos.z)), pos);
98101

0 commit comments

Comments
 (0)