76 lines
2.0 KiB
C++

#include "UI.hpp"
#include <stdexcept>
#include <SFML/System/Vector2.hpp>
#include <SFML/Graphics/Sprite.hpp>
#include <SFML/Graphics/BlendMode.hpp>
#include <SFML/Graphics/RenderStates.hpp>
#include <SFML/Graphics/RectangleShape.hpp>
#include <SFML/Graphics/CircleShape.hpp>
void UI::DrawUIOnRenderWindow(std::shared_ptr<sf::RenderWindow> context) {
sf::Sprite spriteRender;
spriteRender.setTexture(this->mUIRender.getTexture());
spriteRender.setPosition(0.0f, 0.0f);
spriteRender.setScale(1.0f, 1.0f);
context->draw(spriteRender);
}
CockpitUI::CockpitUI() : UI() {
sf::ContextSettings sViewSettings;
sViewSettings.depthBits = 0;
sViewSettings.stencilBits = 0;
sViewSettings.antialiasingLevel = 8;
sViewSettings.sRgbCapable = true;
if (!mUIRender.create(1280, 720, sViewSettings))
throw std::runtime_error("Texture renderer creation failure");
mUIRender.setSmooth(true);
mUIRender.setRepeated(false);
mUIRender.clear(sf::Color::Magenta);
sf::RectangleShape rec1(sf::Vector2f(780,328));
rec1.setPosition(sf::Vector2f(75,40));
rec1.setFillColor(sf::Color::Transparent);
sf::BlendMode sBM = sf::BlendNone;
sf::RenderStates sRS(sBM);
mUIRender.draw(rec1, sRS);
sf::CircleShape radar(190, 60);
radar.setPosition(sf::Vector2f((1280-(2*190)-20),60));
radar.setFillColor(sf::Color::Yellow);
mUIRender.draw(radar, sRS);
mUIRender.display();
}
void CockpitUI::Update() {
}
WorldUI::WorldUI() : UI() {
sf::ContextSettings sViewSettings;
sViewSettings.depthBits = 0;
sViewSettings.stencilBits = 0;
sViewSettings.antialiasingLevel = 8;
sViewSettings.sRgbCapable = true;
if (!mUIRender.create(1280, 560, sViewSettings)) // Only the upper of the screen is renderer as the UI hide whats left.
throw std::runtime_error("Texture renderer creation failure");
mUIRender.setSmooth(true);
mUIRender.setRepeated(false);
mUIRender.clear(sf::Color::Black);
mUIRender.display();
}
void WorldUI::Update() {
}