Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //
  2. // Lol Engine
  3. //
  4. // Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net>
  5. // This program is free software; you can redistribute it and/or
  6. // modify it under the terms of the Do What The Fuck You Want To
  7. // Public License, Version 2, as published by Sam Hocevar. See
  8. // http://www.wtfpl.net/ for more details.
  9. //
  10. //
  11. // The Scene class
  12. // ---------------
  13. //
  14. #if !defined __LOL_SCENE_H__
  15. #define __LOL_SCENE_H__
  16. #include <stdint.h>
  17. #include "tileset.h"
  18. #include "light.h"
  19. #include "camera.h"
  20. namespace lol
  21. {
  22. class SceneData;
  23. class Scene
  24. {
  25. friend class Video;
  26. private:
  27. Scene(ivec2 size);
  28. ~Scene();
  29. public:
  30. Camera *GetCamera();
  31. void PushCamera(Camera *cam);
  32. void PopCamera(Camera *cam);
  33. void Reset();
  34. void RenderPrimitives();
  35. void RenderTiles();
  36. void RenderLines();
  37. /* FIXME: this should be deprecated -- it doesn't really match
  38. * the architecture we want to build */
  39. void AddTile(TileSet *tileset, int id, vec3 pos, int o, vec2 scale);
  40. void AddLine(vec3 a, vec3 b, vec4 color);
  41. void AddLight(Light *light);
  42. Array<Light *> const &GetLights() const;
  43. private:
  44. SceneData *data;
  45. };
  46. extern Scene *g_scene;
  47. } /* namespace lol */
  48. #endif // __LOL_SCENE_H__