// // Lol Engine // // Copyright: (c) 2010-2013 Sam Hocevar // This program is free software; you can redistribute it and/or // modify it under the terms of the Do What The Fuck You Want To // Public License, Version 2, as published by Sam Hocevar. See // http://www.wtfpl.net/ for more details. // // // The Scene class // --------------- // #if !defined __LOL_SCENE_H__ #define __LOL_SCENE_H__ #include #include "tileset.h" #include "light.h" #include "camera.h" namespace lol { class SceneData; class Scene { friend class Video; private: Scene(ivec2 size); ~Scene(); public: Camera *GetCamera(); void PushCamera(Camera *cam); void PopCamera(Camera *cam); void Reset(); void RenderPrimitives(); void RenderTiles(); void RenderLines(); /* FIXME: this should be deprecated -- it doesn't really match * the architecture we want to build */ void AddTile(TileSet *tileset, int id, vec3 pos, int o, vec2 scale); void AddLine(vec3 a, vec3 b, vec4 color); void AddLight(Light *light); Array const &GetLights() const; private: SceneData *data; }; extern Scene *g_scene; } /* namespace lol */ #endif // __LOL_SCENE_H__