solvespace/src/platform/guinone.cpp
whitequark d8b76ef7f1 Drop backtrace generation.
This has been completely broken since 2018 (commit a93283df), and no
one noticed, so it probably wasn't useful. Instead of fixing it, just
drop the feature and a bunch of odd nonportable code.
2020-07-28 14:56:55 +00:00

146 lines
4.1 KiB
C++

//-----------------------------------------------------------------------------
// Our platform support functions for the headless (no OpenGL) test runner.
//
// Copyright 2016 whitequark
//-----------------------------------------------------------------------------
#include "solvespace.h"
#include <cairo.h>
namespace SolveSpace {
//-----------------------------------------------------------------------------
// Rendering
//-----------------------------------------------------------------------------
std::shared_ptr<ViewportCanvas> CreateRenderer() {
return std::make_shared<CairoPixmapRenderer>();
}
namespace Platform {
//-----------------------------------------------------------------------------
// Fatal errors
//-----------------------------------------------------------------------------
void FatalError(const std::string &message) {
fprintf(stderr, "%s", message.c_str());
abort();
}
//-----------------------------------------------------------------------------
// Settings
//-----------------------------------------------------------------------------
class SettingsImplDummy final : public Settings {
public:
void FreezeInt(const std::string &key, uint32_t value) override {
}
uint32_t ThawInt(const std::string &key, uint32_t defaultValue = 0) override {
return defaultValue;
}
void FreezeFloat(const std::string &key, double value) override {
}
double ThawFloat(const std::string &key, double defaultValue = 0.0) override {
return defaultValue;
}
void FreezeString(const std::string &key, const std::string &value) override {
}
std::string ThawString(const std::string &key, const std::string &defaultValue = "") override {
return defaultValue;
}
};
SettingsRef GetSettings() {
static std::shared_ptr<SettingsImplDummy> settings =
std::make_shared<SettingsImplDummy>();
return settings;
}
//-----------------------------------------------------------------------------
// Timers
//-----------------------------------------------------------------------------
class TimerImplDummy final : public Timer {
public:
void RunAfter(unsigned milliseconds) override {}
};
TimerRef CreateTimer() {
return std::make_shared<TimerImplDummy>();
}
//-----------------------------------------------------------------------------
// Menus
//-----------------------------------------------------------------------------
MenuRef CreateMenu() {
return std::shared_ptr<Menu>();
}
MenuBarRef GetOrCreateMainMenu(bool *unique) {
*unique = false;
return std::shared_ptr<MenuBar>();
}
//-----------------------------------------------------------------------------
// Windows
//-----------------------------------------------------------------------------
WindowRef CreateWindow(Window::Kind kind, WindowRef parentWindow) {
return std::shared_ptr<Window>();
}
void Request3DConnexionEventsForWindow(WindowRef window) {}
//-----------------------------------------------------------------------------
// Message dialogs
//-----------------------------------------------------------------------------
MessageDialogRef CreateMessageDialog(WindowRef parentWindow) {
return std::shared_ptr<MessageDialog>();
}
//-----------------------------------------------------------------------------
// File dialogs
//-----------------------------------------------------------------------------
FileDialogRef CreateOpenFileDialog(WindowRef parentWindow) {
return std::shared_ptr<FileDialog>();
}
FileDialogRef CreateSaveFileDialog(WindowRef parentWindow) {
return std::shared_ptr<FileDialog>();
}
//-----------------------------------------------------------------------------
// Application-wide APIs
//-----------------------------------------------------------------------------
std::vector<Platform::Path> fontFiles;
std::vector<Platform::Path> GetFontFiles() {
return fontFiles;
}
void OpenInBrowser(const std::string &url) {}
std::vector<std::string> InitGui(int argc, char **argv) {
return {};
}
void RunGui() {}
void ExitGui() {
exit(0);
}
void ClearGui() {}
}
}