2025-10-04 22:08:19 +03:30
|
|
|
#pragma once
|
|
|
|
|
|
2025-10-05 10:07:36 +03:30
|
|
|
#include <bitwise/operations.hpp>
|
2025-10-04 22:08:19 +03:30
|
|
|
#include <any>
|
|
|
|
|
|
|
|
|
|
namespace lt::renderer {
|
|
|
|
|
|
|
|
|
|
enum class MessageSeverity : uint8_t
|
|
|
|
|
{
|
|
|
|
|
none = 0u,
|
|
|
|
|
|
2025-10-05 10:07:36 +03:30
|
|
|
verbose = bitwise::bit(0u),
|
|
|
|
|
info = bitwise::bit(1u),
|
|
|
|
|
warning = bitwise::bit(2u),
|
|
|
|
|
error = bitwise::bit(3u),
|
2025-10-04 22:08:19 +03:30
|
|
|
|
|
|
|
|
all = verbose | info | warning | error,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum class MessageType : uint8_t
|
|
|
|
|
{
|
|
|
|
|
none = 0u,
|
2025-10-05 10:07:36 +03:30
|
|
|
general = bitwise::bit(0u),
|
|
|
|
|
validation = bitwise::bit(1u),
|
|
|
|
|
performance = bitwise::bit(2u),
|
2025-10-04 22:08:19 +03:30
|
|
|
|
|
|
|
|
all = general | validation | performance,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct MessengerCallbackData
|
|
|
|
|
{
|
|
|
|
|
std::string message;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
using Callback_T = std::function<void(
|
|
|
|
|
MessageSeverity message_severity,
|
|
|
|
|
MessageType message_type,
|
|
|
|
|
MessengerCallbackData data,
|
|
|
|
|
std::any user_data
|
|
|
|
|
)>;
|
|
|
|
|
|
|
|
|
|
struct MessengerComponent
|
|
|
|
|
{
|
|
|
|
|
MessageSeverity severities;
|
|
|
|
|
|
|
|
|
|
MessageType types;
|
|
|
|
|
|
|
|
|
|
Callback_T callback;
|
|
|
|
|
|
|
|
|
|
std::any user_data;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace lt::renderer
|