SpriteGen/MainLvl.cpp
2024-07-27 18:56:09 -07:00

117 lines
2.2 KiB
C++

#include "MainLvl.h"
#include <lwe/GameLoop.h>
#include <lwe/RenderWindow.h>
#include <lwe/systems/GuiSystem.h>
#include <lwe/gpu/GpuFontAtlas.h>
#include <lwe/gui/ButtonGui.h>
#include <lwe/gui/TextFieldGui.h>
#include <lwe/gui/LabelGui.h>
MainLvl::~MainLvl()
{
}
MainLvl::MainLvl()
: Level("Main")
{
}
MainLvl::MainLvl(MainLvl &&lvl) noexcept
: Level((Level &&) lvl)
{
}
MainLvl::MainLvl(const MainLvl &lvl)
: Level(lvl)
{
}
MainLvl &MainLvl::operator=(MainLvl &&lvl) noexcept
{
if (this == &lvl)
return *this;
Level::operator=((Level &&) lvl);
return *this;
}
MainLvl &MainLvl::operator=(const MainLvl &lvl)
{
if (this == &lvl)
return *this;
Level::operator=(lvl);
return *this;
}
void MainLvl::SetupResources(lwe::GpuInterface *inf)
{
Level::SetupResources(inf);
//Your resource setup code here.
}
void MainLvl::Setup(lwe::GpuInterface *inf)
{
lwe::GameLoop* gl = GetParent();
if (!gl)
return;
lwe::RenderWindow *win = gl->GetWindow();
if (!win)
return;
lwe::GpuSwapChain *swap = win->GetSwapChain();
if (!swap)
return;
lwe::GpuRenderPass *pass = swap->GetRenderPass();
if (!pass)
return;
pass->SetClearColor({1.0f, 1.0f, 1.0f});
Level::Setup(inf);
//Your setup code here.
lwe::GuiSystem *guiSys = new lwe::GuiSystem();
AddSystem(guiSys);
//Add Resources
lwe::GpuFontAtlas *arial_24 = new lwe::GpuFontAtlas("resources/fonts/Arial_24.ehf", inf);
guiSys->AddResource(arial_24);
//Add Gui
lwe::LabelGui *dirLabel = new lwe::LabelGui("DirLabel", "Arial_24", "Directory:");
guiSys->AddGui(dirLabel);
lwe::TextFieldGui *dirField = new lwe::TextFieldGui("DirField", "Test");
dirField->SetPosition({arial_24->CalculateWidth(dirLabel->GetText()), 0.0f, 0.0f});
dirField->SetScale({200.0f, (float)arial_24->GetGlyphScale() + 10.0f});
guiSys->AddGui(dirField);
}
void MainLvl::PostInitialize(lwe::GpuCmdBuffer *cmdBuffer)
{
Level::PostInitialize(cmdBuffer);
//Your post-initialize code here.
}
void MainLvl::OnUpdate(lwe::RenderWindow *win, ehs::Input *input, const float delta)
{
Level::OnUpdate(win, input, delta);
//Your on-update code here.
}
void MainLvl::PreRender(lwe::GpuCmdBuffer *cmdBuffer)
{
Level::PreRender(cmdBuffer);
//Your pre-render code here.
}