Simple game engine with complete export to scripting language
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.
 
 
 

53 Zeilen
1.0 KiB

  1. #ifndef BLUECORE_RENDER_QUEUE_H
  2. #define BLUECORE_RENDER_QUEUE_H
  3. #include "RenderDevice.h"
  4. namespace BlueCore
  5. {
  6. class RenderItem : public Referenced
  7. {
  8. public:
  9. virtual void render(RenderDevice *) const = 0;
  10. };
  11. class RenderQueue : public Referenced
  12. {
  13. struct QueueItem
  14. {
  15. QueueItem(RenderItem *renderitem, const Vector3& vector,
  16. const Quaternion& quat) :
  17. item(renderitem), position(vector), orientation(quat)
  18. {
  19. }
  20. ref_ptr<RenderItem> item;
  21. Vector3 position;
  22. Quaternion orientation;
  23. };
  24. std::list<QueueItem> _OpaqueItems;
  25. std::list<QueueItem> _TransparentItems;
  26. public:
  27. void addOpaqueItem(RenderItem *item, const Vector3& position,
  28. const Quaternion& orientation);
  29. void addTransparentItem(RenderItem *item, const Vector3& position,
  30. const Quaternion& orientation);
  31. const std::list<QueueItem>& getOpaqueItems();
  32. const std::list<QueueItem>& getTransparentItems();
  33. void clear();
  34. void render(RenderDevice *device) const;
  35. };
  36. } // namespace BluewCore
  37. #endif // BLUECORE_RENDER_QUEUE_H