// Copyright (c) 2023 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include "UIComponent.hpp"

namespace Dawn {
  class UIComponentRenderable : public UIComponent, public IRenderable {
    public:
      UIComponentRenderable(std::weak_ptr<SceneItem> item);

      std::vector<struct ShaderPassItem> getRenderPasses(
        struct IRenderableContext &context
      ) override;

      /**
       * Higher level means to determine the render passes for this UI item. We
       * handle some of the more common functionality in the above override.
       * 
       * @return Array of render passes for this UI item.
       */
      virtual std::vector<struct ShaderPassItem> getUIRenderPasses() = 0;
  };
}