90 lines
1.9 KiB
C++
90 lines
1.9 KiB
C++
#include "debughelper.h"
|
|
|
|
DebugHelper::DebugHelper(bool init) :
|
|
_toggled(init),
|
|
_red_pulse({0.f, 0.f}, sf::Color(255, 0, 0)),
|
|
_green_pulse({460.f, 0.f}, sf::Color(0, 255, 0)),
|
|
_blue_pulse({460.f, 360.f}, sf::Color(0, 100, 255))
|
|
{
|
|
_font.loadFromFile("VeraMono.ttf");
|
|
|
|
_time_print.setFont(_font);
|
|
_time_print.setPosition(60, 60);
|
|
_time_print.setFillColor(sf::Color(255, 255, 255));
|
|
_time_print.setCharacterSize(25);
|
|
}
|
|
|
|
void DebugHelper::toggle()
|
|
{
|
|
_toggled = !_toggled;
|
|
}
|
|
|
|
void DebugHelper::update(const microsec µseconds)
|
|
{
|
|
_time_print.setString(std::to_string(microseconds));
|
|
|
|
_red_pulse.fade();
|
|
_green_pulse.fade();
|
|
_blue_pulse.fade();
|
|
}
|
|
|
|
void DebugHelper::draw(sf::RenderTarget& target, sf::RenderStates states) const
|
|
{
|
|
if (_toggled)
|
|
{
|
|
target.draw(_green_pulse, states);
|
|
target.draw(_red_pulse, states);
|
|
target.draw(_blue_pulse, states);
|
|
target.draw(_time_print, states);
|
|
}
|
|
}
|
|
|
|
void DebugHelper::spawnGreenPulse()
|
|
{
|
|
_green_pulse.appear();
|
|
}
|
|
|
|
void DebugHelper::spawnRedPulse()
|
|
{
|
|
_red_pulse.appear();
|
|
}
|
|
|
|
void DebugHelper::spawnBluePulse()
|
|
{
|
|
_blue_pulse.appear();
|
|
}
|
|
|
|
DebugHelper::Pulse::Pulse(sf::Vector2f position, sf::Color fill_color)
|
|
{
|
|
_pulse_shape.setSize({480, 360});
|
|
_pulse_shape.move(position.x, position.y);
|
|
|
|
fill_color.a = 0;
|
|
_pulse_shape.setFillColor(fill_color);
|
|
}
|
|
|
|
void DebugHelper::Pulse::appear()
|
|
{
|
|
auto fill_color = _pulse_shape.getFillColor();
|
|
fill_color.a = 255;
|
|
_pulse_shape.setFillColor(fill_color);
|
|
}
|
|
|
|
void DebugHelper::Pulse::fade()
|
|
{
|
|
auto fill_color = _pulse_shape.getFillColor();
|
|
|
|
if (fill_color.a == 0)
|
|
return;
|
|
|
|
const auto new_alpha = fill_color.a - 25;
|
|
fill_color.a = new_alpha < 0 ? 0 : new_alpha;
|
|
|
|
_pulse_shape.setFillColor(fill_color);
|
|
}
|
|
|
|
void DebugHelper::Pulse::draw(sf::RenderTarget& target, sf::RenderStates states) const
|
|
{
|
|
target.draw(_pulse_shape, states);
|
|
}
|