Simple game engine with complete export to scripting language
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

53 lignes
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