Resources (#1)

* start some resource fiddling

* start some resource fiddling

* initiate a real resource manager

* fix color flicker in rendering

* delete unintended constructors

and add a convenience function to reset the render-image (from the
original image, aka. clone again)

* [OpenGL deprecation warning]

The compiler said that these functions are "deprecated". They seem to
be useless anyway...

* various improvements

* add resource enumerator and documentation

* fix constness stuff

* use existing iterator for insertion

* init unit tests

* rm bogus file

---------

Co-authored-by: m-aXimilian <keuffnermax@gmail.com>
This commit is contained in:
m-aXimilian
2025-06-13 22:23:20 +00:00
committed by GitHub
parent a175b79c96
commit a8489292b6
21 changed files with 574 additions and 169 deletions
+10 -1
View File
@@ -3,6 +3,14 @@
namespace pixelarium::utils::log
{
enum class LogLevel
{
Trace = 1 << 0,
Debug = 1 << 1,
Info = 1 << 2,
Warn = 1 << 3,
Error = 1 << 4,
};
class ILog
{
public:
@@ -10,8 +18,9 @@ class ILog
virtual void Debug(const std::string& msg) = 0;
virtual void Warn(const std::string& msg) = 0;
virtual void Error(const std::string& msg) = 0;
virtual void ChangeLevel(LogLevel lvl) = 0;
virtual ~ILog() {}
};
} // namespace pixelarium::utils::log
} // namespace pixelarium::utils::log
+36 -9
View File
@@ -5,31 +5,58 @@
#include <spdlog/sinks/basic_file_sink.h>
#include <memory>
#include <string>
#include "ILog.hpp"
using namespace pixelarium::utils::log;
SpdLogger::SpdLogger(const std::string& file_sink, const std::string& name)
: _logger(spdlog::basic_logger_mt(name, file_sink)), _file(file_sink), _name(name)
: logger_(spdlog::basic_logger_mt(name, file_sink)), file_(file_sink), name_(name)
{
spdlog::set_default_logger(this->_logger);
spdlog::set_default_logger(this->logger_);
spdlog::flush_on(spdlog::level::info);
_logger->info("Logger initiated");
logger_->info("Logger initiated");
}
void SpdLogger::Info(const std::string& msg)
{
this->_logger->info(msg);
this->logger_->info(msg);
}
void SpdLogger::Debug(const std::string& msg)
{
this->_logger->debug(msg);
this->logger_->debug(msg);
}
void SpdLogger::Warn(const std::string& msg)
{
this->_logger->warn(msg);
this->logger_->warn(msg);
}
void SpdLogger::Error(const std::string& msg)
void SpdLogger::Error(const std::string& msg) { this->logger_->error(msg); }
void SpdLogger::ChangeLevel(LogLevel lvl)
{
this->_logger->error(msg);
}
switch (lvl)
{
case LogLevel::Trace:
this->logger_->set_level(spdlog::level::trace);
spdlog::flush_on(spdlog::level::trace);
break;
case LogLevel::Info:
this->logger_->set_level(spdlog::level::info);
spdlog::flush_on(spdlog::level::info);
break;
case LogLevel::Warn:
this->logger_->set_level(spdlog::level::warn);
spdlog::flush_on(spdlog::level::warn);
break;
case LogLevel::Error:
this->logger_->set_level(spdlog::level::err);
spdlog::flush_on(spdlog::level::err);
break;
case LogLevel::Debug:
default:
this->logger_->set_level(spdlog::level::debug);
spdlog::flush_on(spdlog::level::debug);
}
this->logger_->debug("Changed log level;");
}
+5 -4
View File
@@ -17,10 +17,11 @@ class SpdLogger : public ILog
void Debug(const std::string& msg) override;
void Warn(const std::string& msg) override;
void Error(const std::string& msg) override;
void ChangeLevel(LogLevel lvl) override;
private:
std::shared_ptr<spdlog::logger> _logger;
std::string _file;
std::string _name;
std::shared_ptr<spdlog::logger> logger_;
std::string file_;
std::string name_;
};
} // namespace pixelarium::utils::log
} // namespace pixelarium::utils::log