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

#ifndef LAYER_H
#define LAYER_H

#include <string>

#include "Core.h"
#include <SDL3/SDL.h>

#include "Hazel/Core/TimeStep.h"

namespace Hazel {

    class HAZEL_API Layer
    {
    public:
        Layer(const std::string& debugName = "Layer");
        virtual ~Layer();

        virtual void OnAttach() {}
        virtual void OnDetech() {}
        virtual void OnUpdate(TimeStep& ts) {}
        virtual void OnImGuiRender() {}
        virtual void OnEvent(SDL_Event& e) {}

        inline const std::string& GetName() const { return m_DebugName; }

    protected:
        std::string m_DebugName;
    };

}


#endif //LAYER_H
