Imported revamped GUI classes, moved map classes
This commit is contained in:
@@ -0,0 +1,81 @@
|
|||||||
|
/* Copyright: (c) Kayne Ruse 2013
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, subject to the following restrictions:
|
||||||
|
*
|
||||||
|
* 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
*
|
||||||
|
* 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
* misrepresented as being the original software.
|
||||||
|
*
|
||||||
|
* 3. This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
#include "button.hpp"
|
||||||
|
|
||||||
|
#include <stdexcept>
|
||||||
|
|
||||||
|
Button::State Button::MouseMotion(SDL_MouseMotionEvent const& motion) {
|
||||||
|
return CalcState(motion.x, motion.y, motion.state & SDL_BUTTON_LMASK);
|
||||||
|
}
|
||||||
|
|
||||||
|
Button::State Button::MouseButtonDown(SDL_MouseButtonEvent const& button) {
|
||||||
|
if (button.button == SDL_BUTTON_LEFT) {
|
||||||
|
return CalcState(button.x, button.y, true);
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
Button::State Button::MouseButtonUp(SDL_MouseButtonEvent const& button) {
|
||||||
|
if (button.button == SDL_BUTTON_LEFT) {
|
||||||
|
return CalcState(button.x, button.y, false);
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Button::DrawTo(SDL_Surface* const dest) {
|
||||||
|
if (!image || !font) {
|
||||||
|
throw(std::runtime_error("Surface not set for Button"));
|
||||||
|
}
|
||||||
|
image->SetClipY(state * image->GetClipH());
|
||||||
|
image->DrawTo(dest, x, y);
|
||||||
|
font->DrawStringTo(text, dest, textX + x, textY + y);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string Button::SetText(std::string t) {
|
||||||
|
if (!image || !font) {
|
||||||
|
throw(std::runtime_error("Surface not set for Button"));
|
||||||
|
}
|
||||||
|
//one line, cache the position
|
||||||
|
text = t;
|
||||||
|
textX = (image->GetClipW() / 2) - (font->GetCharW() * text.size() / 2);
|
||||||
|
textY = (image->GetClipH() / 2) - (font->GetCharH() / 2);
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
|
Button::State Button::CalcState(Sint16 i, Sint16 j, bool leftPressed) {
|
||||||
|
if (!image || !font) {
|
||||||
|
throw(std::runtime_error("Surface not set for Button"));
|
||||||
|
}
|
||||||
|
//if out of bounds
|
||||||
|
if (i < x || i >= (x + image->GetClipW()) ||
|
||||||
|
j < y || j >= (y + image->GetClipH())
|
||||||
|
) {
|
||||||
|
return state = State::NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (leftPressed) {
|
||||||
|
return state = State::PRESSED;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return state = State::HOVER;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
/* Copyright: (c) Kayne Ruse 2013
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, subject to the following restrictions:
|
||||||
|
*
|
||||||
|
* 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
*
|
||||||
|
* 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
* misrepresented as being the original software.
|
||||||
|
*
|
||||||
|
* 3. This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
#ifndef BUTTON_HPP_
|
||||||
|
#define BUTTON_HPP_
|
||||||
|
|
||||||
|
#include "image.hpp"
|
||||||
|
#include "raster_font.hpp"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
/* 3-phases, no toggle, centred text
|
||||||
|
* This class uses the size of the provided image as its bounds. Also,
|
||||||
|
* The provided image should be formatted correctly.
|
||||||
|
*
|
||||||
|
* The button's image should be divided into 3 sections virtucally,
|
||||||
|
* which act as the different button images. The clip width & height of the
|
||||||
|
* Image should be set manually, and the height should be 1/3 of the total
|
||||||
|
* graphical data.
|
||||||
|
*/
|
||||||
|
class Button {
|
||||||
|
public:
|
||||||
|
enum State {
|
||||||
|
NORMAL = 0, HOVER = 1, PRESSED = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
Button() = default;
|
||||||
|
~Button() = default;
|
||||||
|
|
||||||
|
//handle input
|
||||||
|
State MouseMotion(SDL_MouseMotionEvent const&);
|
||||||
|
State MouseButtonDown(SDL_MouseButtonEvent const&);
|
||||||
|
State MouseButtonUp(SDL_MouseButtonEvent const&);
|
||||||
|
|
||||||
|
//yet another draw function
|
||||||
|
void DrawTo(SDL_Surface* const);
|
||||||
|
|
||||||
|
//accessors and mutators
|
||||||
|
Image* SetImage(Image* const ptr) { return image = ptr; }
|
||||||
|
Image* GetImage() { return image; }
|
||||||
|
RasterFont* SetFont(RasterFont* const ptr) { return font = ptr; }
|
||||||
|
RasterFont* GetFont() { return font; }
|
||||||
|
|
||||||
|
Sint16 SetX(Sint16 i) { return x = i; }
|
||||||
|
Sint16 SetY(Sint16 i) { return y = i; }
|
||||||
|
Sint16 GetX() const { return x; }
|
||||||
|
Sint16 GetY() const { return y; }
|
||||||
|
|
||||||
|
Sint16 SetTextX(Sint16 i) { return textX = i; }
|
||||||
|
Sint16 SetTextY(Sint16 i) { return textY = i; }
|
||||||
|
Sint16 GetTextX() const { return textX; }
|
||||||
|
Sint16 GetTextY() const { return textY; }
|
||||||
|
|
||||||
|
State SetState(State s) { return state = s; }
|
||||||
|
State GetState() const { return state; }
|
||||||
|
|
||||||
|
std::string SetText(std::string);
|
||||||
|
std::string GetText() const { return text; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
State CalcState(Sint16 x, Sint16 y, bool leftPressed);
|
||||||
|
|
||||||
|
//point to the provided external objects
|
||||||
|
Image* image = nullptr;
|
||||||
|
RasterFont* font = nullptr;
|
||||||
|
|
||||||
|
//positions
|
||||||
|
Sint16 x = 0, y = 0;
|
||||||
|
Sint16 textX = 0, textY = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
State state = State::NORMAL;
|
||||||
|
std::string text;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
/* Copyright: (c) Kayne Ruse 2013
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, subject to the following restrictions:
|
||||||
|
*
|
||||||
|
* 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
*
|
||||||
|
* 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
* misrepresented as being the original software.
|
||||||
|
*
|
||||||
|
* 3. This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
#include "menu_bar.hpp"
|
||||||
|
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
|
void MenuBar::DrawTo(SDL_Surface* const dest) {
|
||||||
|
for (auto& i : entries) {
|
||||||
|
i.DrawTo(dest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuBar::MouseMotion(SDL_MouseMotionEvent const& motion) {
|
||||||
|
for (auto& i : entries) {
|
||||||
|
i.MouseMotion(motion);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuBar::MouseButtonDown(SDL_MouseButtonEvent const& button) {
|
||||||
|
for (auto& i : entries) {
|
||||||
|
i.MouseButtonDown(button);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuBar::MouseButtonUp(SDL_MouseButtonEvent const& button, int* entry, int* butt) {
|
||||||
|
*entry = *butt = -1;
|
||||||
|
int ret = -1;
|
||||||
|
for (auto& i : entries) {
|
||||||
|
ret = i.MouseButtonUp(button);
|
||||||
|
|
||||||
|
if (ret != -1) {
|
||||||
|
*entry = (&i - entries.data());
|
||||||
|
*butt = ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuBar::SetEntries(std::vector<std::vector<std::string>> info) {
|
||||||
|
if (!image || !font) {
|
||||||
|
throw(std::runtime_error("Surfaces not loaded into the menu bar"));
|
||||||
|
}
|
||||||
|
|
||||||
|
entries.clear();
|
||||||
|
for (int i = 0; i < info.size(); i++) {
|
||||||
|
//create the entry & the main button
|
||||||
|
entries.push_back(MenuBarEntry());
|
||||||
|
entries[i].mainButton.SetImage(image);
|
||||||
|
entries[i].mainButton.SetFont(font);
|
||||||
|
entries[i].mainButton.SetText(info[i][0]);
|
||||||
|
entries[i].mainButton.SetX(i * image->GetClipW());
|
||||||
|
entries[i].mainButton.SetY(0);
|
||||||
|
for (int j = 0; j < info[i].size()-1; j++) {
|
||||||
|
//create each drop button in this entry
|
||||||
|
entries[i].dropButtons.push_back(Button());
|
||||||
|
entries[i].dropButtons[j].SetImage(image);
|
||||||
|
entries[i].dropButtons[j].SetFont(font);
|
||||||
|
entries[i].dropButtons[j].SetText(info[i][j+1]);
|
||||||
|
entries[i].dropButtons[j].SetX(i * image->GetClipW());
|
||||||
|
entries[i].dropButtons[j].SetY((j+1) * image->GetClipH());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuBar::MenuBarEntry::DrawTo(SDL_Surface* const dest) {
|
||||||
|
//only draw the dropButtons in the user has this menu open
|
||||||
|
mainButton.DrawTo(dest);
|
||||||
|
|
||||||
|
if (!open) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto& i : dropButtons) {
|
||||||
|
i.DrawTo(dest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuBar::MenuBarEntry::MouseMotion(SDL_MouseMotionEvent const& motion) {
|
||||||
|
//open the menu
|
||||||
|
bool o = mainButton.MouseMotion(motion) == Button::State::PRESSED;
|
||||||
|
|
||||||
|
if (!(open |= o)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto& i : dropButtons) {
|
||||||
|
//dragging down the menu
|
||||||
|
o |= i.MouseMotion(motion) == Button::State::PRESSED;
|
||||||
|
}
|
||||||
|
|
||||||
|
open = o;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MenuBar::MenuBarEntry::MouseButtonDown(SDL_MouseButtonEvent const& button) {
|
||||||
|
//open the menu
|
||||||
|
if (!(open = mainButton.MouseButtonDown(button) == Button::State::PRESSED)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//update the others anyway
|
||||||
|
for (auto& i : dropButtons) {
|
||||||
|
i.MouseButtonDown(button);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int MenuBar::MenuBarEntry::MouseButtonUp(SDL_MouseButtonEvent const& button) {
|
||||||
|
int ret = -1;
|
||||||
|
mainButton.MouseButtonUp(button);
|
||||||
|
|
||||||
|
for (auto& i : dropButtons) {
|
||||||
|
//the user just released this button
|
||||||
|
if (i.GetState() != i.MouseButtonUp(button) && i.GetState() == Button::State::HOVER && open) {
|
||||||
|
//get this button's index
|
||||||
|
ret = (&i - dropButtons.data());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
open = false;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
/* Copyright: (c) Kayne Ruse 2013
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, subject to the following restrictions:
|
||||||
|
*
|
||||||
|
* 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
*
|
||||||
|
* 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
* misrepresented as being the original software.
|
||||||
|
*
|
||||||
|
* 3. This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
#ifndef MENUBAR_HPP_
|
||||||
|
#define MENUBAR_HPP_
|
||||||
|
|
||||||
|
#include "image.hpp"
|
||||||
|
#include "raster_font.hpp"
|
||||||
|
#include "button.hpp"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
/* I've redesigned this so that the contents of the menu bar can't change during run time.
|
||||||
|
* This is more restrictive but I'm focusing on getting this working first.
|
||||||
|
* The Image and Font pointers must be set before the text data is entered.
|
||||||
|
*
|
||||||
|
* This class needs a rewrite.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class MenuBar {
|
||||||
|
public:
|
||||||
|
MenuBar() = default;
|
||||||
|
~MenuBar() = default;
|
||||||
|
|
||||||
|
//yet another draw function
|
||||||
|
void DrawTo(SDL_Surface* const dest);
|
||||||
|
|
||||||
|
//user inputs
|
||||||
|
void MouseMotion(SDL_MouseMotionEvent const&);
|
||||||
|
void MouseButtonDown(SDL_MouseButtonEvent const&);
|
||||||
|
void MouseButtonUp(SDL_MouseButtonEvent const&, int* entry, int* button);
|
||||||
|
|
||||||
|
//manage the entries & buttons
|
||||||
|
void SetEntries(std::vector<std::vector<std::string>> info);
|
||||||
|
void ClearEntries() { entries.clear(); }
|
||||||
|
|
||||||
|
//Accessors and mutators
|
||||||
|
Image* SetImage(Image* const ptr) { return image = ptr; }
|
||||||
|
Image* GetImage() { return image; }
|
||||||
|
RasterFont* SetFont(RasterFont* const ptr) { return font = ptr; }
|
||||||
|
RasterFont* GetFont() { return font; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
class MenuBarEntry;
|
||||||
|
|
||||||
|
std::vector<MenuBarEntry> entries;
|
||||||
|
|
||||||
|
Image* image = nullptr;
|
||||||
|
RasterFont* font = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
class MenuBar::MenuBarEntry {
|
||||||
|
public:
|
||||||
|
MenuBarEntry() = default;
|
||||||
|
~MenuBarEntry() = default;
|
||||||
|
|
||||||
|
void DrawTo(SDL_Surface* const dest);
|
||||||
|
|
||||||
|
void MouseMotion(SDL_MouseMotionEvent const&);
|
||||||
|
void MouseButtonDown(SDL_MouseButtonEvent const&);
|
||||||
|
int MouseButtonUp(SDL_MouseButtonEvent const&);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Button mainButton;
|
||||||
|
|
||||||
|
std::vector<Button> dropButtons;
|
||||||
|
bool open = false;
|
||||||
|
|
||||||
|
friend class MenuBar;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
/* Copyright: (c) Kayne Ruse 2013
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, subject to the following restrictions:
|
||||||
|
*
|
||||||
|
* 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
*
|
||||||
|
* 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
* misrepresented as being the original software.
|
||||||
|
*
|
||||||
|
* 3. This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
#include "raster_font.hpp"
|
||||||
|
|
||||||
|
#include <stdexcept>
|
||||||
|
|
||||||
|
/* It might be more efficient to render to a different surface (like an Image)
|
||||||
|
* rather than calling this function with all of it's '%' and '/'.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void RasterFont::DrawStringTo(std::string s, SDL_Surface* const dest, Sint16 x, Sint16 y) {
|
||||||
|
if (!image.GetSurface()) {
|
||||||
|
throw(std::runtime_error("RasterFont not loaded"));
|
||||||
|
}
|
||||||
|
const Uint16 w = image.GetClipW();
|
||||||
|
const Uint16 h = image.GetClipH();
|
||||||
|
for (int i = 0; i < s.size(); i++) {
|
||||||
|
image.SetClipX(s[i] % 16 * w);
|
||||||
|
image.SetClipY(s[i] / 16 * h);
|
||||||
|
image.DrawTo(dest, x + i * w, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Note: This class can only take a raster font with 16*16 characters, and the
|
||||||
|
* indevidual characters must have the same dimensions. Overall this class is too
|
||||||
|
* restrictive; I suggest using a 3rd party library.
|
||||||
|
*/
|
||||||
|
|
||||||
|
SDL_Surface* RasterFont::LoadSurface(std::string fname) {
|
||||||
|
image.LoadSurface(fname);
|
||||||
|
image.SetClipW(image.GetSurface()->w/16);
|
||||||
|
image.SetClipH(image.GetSurface()->h/16);
|
||||||
|
return image.GetSurface();
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_Surface* RasterFont::SetSurface(SDL_Surface* p) {
|
||||||
|
image.SetSurface(p);
|
||||||
|
image.SetClipW(image.GetSurface()->w/16);
|
||||||
|
image.SetClipH(image.GetSurface()->h/16);
|
||||||
|
return image.GetSurface();
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/* Copyright: (c) Kayne Ruse 2013
|
||||||
|
*
|
||||||
|
* This software is provided 'as-is', without any express or implied
|
||||||
|
* warranty. In no event will the authors be held liable for any damages
|
||||||
|
* arising from the use of this software.
|
||||||
|
*
|
||||||
|
* Permission is granted to anyone to use this software for any purpose,
|
||||||
|
* including commercial applications, and to alter it and redistribute it
|
||||||
|
* freely, subject to the following restrictions:
|
||||||
|
*
|
||||||
|
* 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
* claim that you wrote the original software. If you use this software
|
||||||
|
* in a product, an acknowledgment in the product documentation would be
|
||||||
|
* appreciated but is not required.
|
||||||
|
*
|
||||||
|
* 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
* misrepresented as being the original software.
|
||||||
|
*
|
||||||
|
* 3. This notice may not be removed or altered from any source
|
||||||
|
* distribution.
|
||||||
|
*/
|
||||||
|
#ifndef RASTERFONT_HPP_
|
||||||
|
#define RASTERFONT_HPP_
|
||||||
|
|
||||||
|
#include "image.hpp"
|
||||||
|
|
||||||
|
class RasterFont {
|
||||||
|
public:
|
||||||
|
RasterFont() = default;
|
||||||
|
RasterFont(RasterFont const& rhs) { *this = rhs; }
|
||||||
|
RasterFont(RasterFont&& rhs) { *this = std::move(rhs); }
|
||||||
|
RasterFont(std::string fname) { LoadSurface(fname); }
|
||||||
|
RasterFont(SDL_Surface* p) { SetSurface(p); }
|
||||||
|
~RasterFont() = default;
|
||||||
|
|
||||||
|
RasterFont& operator=(RasterFont const& rhs) { image = rhs.image; }
|
||||||
|
RasterFont& operator=(RasterFont&& rhs) { image = std::move(rhs.image); }
|
||||||
|
|
||||||
|
void DrawStringTo(std::string, SDL_Surface* const, Sint16 x, Sint16 y);
|
||||||
|
|
||||||
|
//Accessors and Mutators
|
||||||
|
SDL_Surface* LoadSurface(std::string);
|
||||||
|
SDL_Surface* SetSurface(SDL_Surface*);
|
||||||
|
SDL_Surface* GetSurface() const { return image.GetSurface(); }
|
||||||
|
void FreeSurface() { image.FreeSurface(); }
|
||||||
|
|
||||||
|
Uint16 GetCharW() const { return image.GetClipW(); }
|
||||||
|
Uint16 GetCharH() const { return image.GetClipH(); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
Image image;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user