69 lines
1.1 KiB
C++
69 lines
1.1 KiB
C++
/*
|
|
* SdlRenderer.h
|
|
*
|
|
* Created on: Nov 13, 2016
|
|
* Author: tibi
|
|
*/
|
|
|
|
#ifndef GRAPHICS_SDLRENDERER_H_
|
|
#define GRAPHICS_SDLRENDERER_H_
|
|
|
|
#include <string>
|
|
|
|
#include <SDL2/SDL.h>
|
|
#include <SDL2/SDL_ttf.h>
|
|
|
|
namespace farmlands {
|
|
|
|
// Forward declarations
|
|
struct GameState;
|
|
|
|
namespace graphics {
|
|
|
|
class SdlRenderer
|
|
{
|
|
public:
|
|
SdlRenderer();
|
|
virtual ~SdlRenderer();
|
|
|
|
/**
|
|
* Initializes the game renderer.
|
|
*
|
|
* @returns true if successful, false otherwise.
|
|
*/
|
|
bool initialize(GameState* gameState);
|
|
|
|
/**
|
|
* Performs steps for beginning to render.
|
|
*/
|
|
void renderBegin();
|
|
|
|
/**
|
|
* Performs steps for ending a render.
|
|
*/
|
|
void renderEnd();
|
|
|
|
/**
|
|
* Renders given text to a texture
|
|
*/
|
|
SDL_Texture* renderText(const std::string& text, TTF_Font* font, SDL_Color color);
|
|
|
|
// Getters
|
|
/**
|
|
* Gets the internal SDL renderer object;
|
|
*/
|
|
SDL_Renderer* internalRenderer() { return m_sdlRenderer; }
|
|
|
|
private:
|
|
|
|
SDL_Window* m_sdlWindow;
|
|
SDL_Renderer* m_sdlRenderer;
|
|
|
|
GameState* m_gameState;
|
|
};
|
|
|
|
} /* namespace graphics */
|
|
} /* namespace farmlands */
|
|
|
|
#endif /* GRAPHICS_SDLRENDERER_H_ */
|