#ifndef BLANK_APP_APPLICATION_HPP_
#define BLANK_APP_APPLICATION_HPP_
+#include "Assets.hpp"
+#include "FrameCounter.hpp"
#include "init.hpp"
#include "RandomWalk.hpp"
+#include "../graphics/BlendedSprite.hpp"
#include "../graphics/BlockLighting.hpp"
#include "../graphics/Camera.hpp"
#include "../graphics/DirectionalLighting.hpp"
#include "../ui/Interface.hpp"
#include "../world/World.hpp"
+#include <SDL.h>
+
namespace blank {
/// run until user quits
void Run();
+ /// evaluate a single frame of dt milliseconds
void Loop(int dt);
/// run for n frames
/// run for n frames, assuming t milliseconds for each
void RunS(size_t n, size_t t);
+ /// process all events in SDL's queue
void HandleEvents();
+ void Handle(const SDL_WindowEvent &);
+ /// integrate to the next step with dt milliseconds passed
void Update(int dt);
+ /// push the current state to display
void Render();
static Entity &MakeTestEntity(World &);
private:
InitSDL init_sdl;
InitIMG init_img;
+ InitTTF init_ttf;
InitGL init_gl;
Window window;
GLContext ctx;
InitGLEW init_glew;
+ Assets assets;
+ FrameCounter counter;
+
BlockLighting chunk_prog;
DirectionalLighting entity_prog;
+ BlendedSprite sprite_prog;
Camera cam;
World world;