//
// Created by sfd on 25-4-22.
//

#ifndef RENDERERCOMMAND_H
#define RENDERERCOMMAND_H

#include "RendererAPI.h"

namespace Hazel {
    class HAZEL_API RendererCommand {
    public:

        inline static void Init()
        {
            s_RendererAPI->Init();
        }

        inline static void SetClearColor(const glm::vec4& color)
        {
            s_RendererAPI->SetClearColor(color);
        }

        inline static void SetViewPort(uint32_t x, uint32_t y, uint32_t width, uint32_t height)
        {
            s_RendererAPI->SetViewPort(x, y, width, height);
        }

        inline static void Clear()
        {
            s_RendererAPI->Clear();
        }

        inline static void DrawIndexed(const std::shared_ptr<VertexArray>& vertexArray, uint32_t indexCount = 0)
        {
            s_RendererAPI->DrawIndexed(vertexArray, indexCount);
        }



    private:
          static RendererAPI* s_RendererAPI;
    };

}

#endif //RENDERERCOMMAND_H
