Simple game engine with complete export to scripting language
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

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