#ifndef GRAPHICS_HH
#define GRAPHICS_HH
#include "GraphicsPointer.hh"
#include "GameState.hh"
#include "Input.hh"
#include "Timer.hh"
#include "Engine.hh"
#include <ClanLib/core.h>
#include <ClanLib/gl.h>
#include <ClanLib/display.h>
const std::string GRAPHICS_WINDOW_TITLE = "Kisna Glista";
const uint32_t GRAPHICS_RESOLUTION_WIDTH = 800;
const uint32_t GRAPHICS_RESOLUTION_HEIGHT = 600;
const uint16_t GRAPHICS_UPDATE_INTERVAL_MS = 20;
class Graphics : public CL_DisplayWindow {
private:
Engine &engine;
GameState &state;
CL_SlotContainer slots;
Timer update_timer;
Input input;
// current GUI input state
GuiInput flags;
// basic fonts
CL_Font simple_font;
public:
Graphics (Engine &engine, GameState &state);
CL_Font& getSimpleFont (void) { return simple_font; }
private:
void check_input (void);
void do_redraw (void);
void on_update (TimeMS tick_length);
};
#endif /* GRAPHICS_HH */