You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
#pragma once
|
|
#include <memory>
|
|
#include <string>
|
|
#include <SFML/Graphics/Color.hpp>
|
|
#include <SFML/Graphics/Sprite.hpp>
|
|
#include <SFML/Graphics/Texture.hpp>
|
|
|
|
namespace guecs {
|
|
using std::string;
|
|
|
|
struct Theme {
|
|
sf::Color BLACK{0, 0, 0};
|
|
sf::Color DARK_DARK{10, 10, 10};
|
|
sf::Color DARK_MID{30, 30, 30};
|
|
sf::Color DARK_LIGHT{60, 60, 60};
|
|
sf::Color MID{100, 100, 100};
|
|
sf::Color LIGHT_DARK{150, 150, 150};
|
|
sf::Color LIGHT_MID{200, 200, 200};
|
|
sf::Color LIGHT_LIGHT{230, 230, 230};
|
|
sf::Color WHITE{255, 255, 255};
|
|
sf::Color TRANSPARENT = sf::Color::Transparent;
|
|
|
|
int PADDING = 3;
|
|
int BORDER_PX = 1;
|
|
unsigned int TEXT_SIZE = 30;
|
|
int LABEL_SIZE = 20;
|
|
sf::Color FILL_COLOR{255,0,0,255};
|
|
sf::Color TEXT_COLOR{255,0,0,255};
|
|
sf::Color BG_COLOR{255,0,0,255};
|
|
sf::Color BORDER_COLOR{255,0,0,255};
|
|
sf::Color BG_COLOR_DARK{0,0,0,255};
|
|
std::string FONT_FILE_NAME{"you_forgot_to_init.otf"};
|
|
};
|
|
|
|
struct SpriteTexture {
|
|
std::shared_ptr<sf::Sprite> sprite = nullptr;
|
|
std::shared_ptr<sf::Texture> texture = nullptr;
|
|
};
|
|
|
|
class Backend {
|
|
public:
|
|
virtual SpriteTexture texture_get(const string& name) = 0;
|
|
|
|
virtual void sound_play(const string& name) = 0;
|
|
|
|
virtual void sound_stop(const string& name) = 0;
|
|
|
|
virtual std::shared_ptr<sf::Shader> shader_get(const std::string& name) = 0;
|
|
|
|
virtual bool shader_updated() = 0;
|
|
virtual Theme theme() = 0;
|
|
};
|
|
|
|
extern Backend* BACKEND;
|
|
extern Theme THEME;
|
|
|
|
void init(Backend* backend);
|
|
}
|
|
|