diff options
Diffstat (limited to 'src/Theme.cpp')
-rw-r--r-- | src/Theme.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/Theme.cpp b/src/Theme.cpp index 0f44126..0c99320 100644 --- a/src/Theme.cpp +++ b/src/Theme.cpp @@ -3,32 +3,39 @@ #include <assert.h> namespace gsr { - static Theme theme; - static bool initialized = false; + static Theme *theme = nullptr; void init_theme(const gsr::GsrInfo &gsr_info) { + assert(!theme); + theme = new Theme(); + switch(gsr_info.gpu_info.vendor) { case gsr::GpuVendor::UNKNOWN: { break; } case gsr::GpuVendor::AMD: { - theme.tint_color = mgl::Color(221, 0, 49); + theme->tint_color = mgl::Color(221, 0, 49); break; } case gsr::GpuVendor::INTEL: { - theme.tint_color = mgl::Color(8, 109, 183); + theme->tint_color = mgl::Color(8, 109, 183); break; } case gsr::GpuVendor::NVIDIA: { - theme.tint_color = mgl::Color(118, 185, 0); + theme->tint_color = mgl::Color(118, 185, 0); break; } } - initialized = true; + } + + void deinit_theme() { + assert(theme); + delete theme; + theme = nullptr; } const Theme& get_theme() { - assert(initialized); - return theme; + assert(theme); + return *theme; } }
\ No newline at end of file |