36 lines
877 B
C++
36 lines
877 B
C++
#include "pch.h"
|
|
#include "Screen.h"
|
|
|
|
Screen::Screen(const std::string& filePath, Vector2f pos, Vector2f size, TextureManager* manager): m_Position(pos), m_Size(size) {
|
|
if (!filePath.empty()) {
|
|
m_Background = manager->GetTexture(filePath);
|
|
}
|
|
else {
|
|
m_Background = nullptr;
|
|
}
|
|
}
|
|
Screen::~Screen() {
|
|
for (GuiElement* b : m_Elements) {
|
|
delete b;
|
|
}
|
|
}
|
|
void Screen::AddElement(GuiElement* element) {
|
|
m_Elements.push_back(element);
|
|
}
|
|
void Screen::Update(float elapsedSecs) {
|
|
for (GuiElement* b : m_Elements) {
|
|
b->Update(elapsedSecs);
|
|
}
|
|
}
|
|
void Screen::Draw() const {
|
|
if (m_Background != nullptr) { //Incase there is no background
|
|
Rectf dest = Rectf(m_Position, m_Size);
|
|
Rectf src = Rectf(0, 0, m_Background->GetWidth(), m_Background->GetHeight());
|
|
m_Background->Draw(dest, src, false);
|
|
}
|
|
|
|
for (GuiElement* GuiElement : m_Elements) {
|
|
GuiElement->Draw();
|
|
}
|
|
}
|