This repository has been archived on 2025-03-20. You can view files and clone it, but cannot push or open issues or pull requests.
The-Powder-Toy/src/PowderToyFontEditor.cpp

89 lines
1.5 KiB
C++

#include "PowderToySDL.h"
#include "graphics/Graphics.h"
#include "common/platform/Platform.h"
#include "common/tpt-rand.h"
#include "gui/font/FontEditor.h"
#include "gui/interface/Engine.h"
#include "Config.h"
#include "SimulationConfig.h"
#include <iostream>
#include <memory>
void LoadWindowPosition()
{
}
void SaveWindowPosition()
{
}
void LargeScreenDialog()
{
}
void TickClient()
{
}
struct ExplicitSingletons
{
// These need to be listed in the order they are populated in main.
std::unique_ptr<ui::Engine> engine;
};
static std::unique_ptr<ExplicitSingletons> explicitSingletons;
int main(int argc, char * argv[])
{
Platform::SetupCrt();
Platform::Atexit([]() {
SDLClose();
explicitSingletons.reset();
});
explicitSingletons = std::make_unique<ExplicitSingletons>();
WindowFrameOps windowFrameOps;
if (argc >= 3)
{
std::istringstream ss(argv[2]);
int buf;
if (ss >> buf)
{
windowFrameOps.scale = buf;
}
}
// TODO: maybe bind the maximum allowed scale to screen size somehow
if (windowFrameOps.scale < 1 || windowFrameOps.scale > 10)
{
windowFrameOps.scale = 1;
}
explicitSingletons->engine = std::make_unique<ui::Engine>();
auto &engine = ui::Engine::Ref();
engine.g = new Graphics();
engine.windowFrameOps = windowFrameOps;
SDLOpen();
engine.Begin();
engine.SetFastQuit(true);
if (argc >= 2)
{
engine.ShowWindow(new FontEditor(argv[1]));
}
else
{
std::cerr << "path to font.bz2 not supplied" << std::endl;
Platform::Exit(1);
}
while (engine.Running())
{
EngineProcess();
}
Platform::Exit(0);
return 0;
}