farmlands/src/graphics/SdlRenderer.h

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_ */