#pragma once #include "event/event.hpp" #include "utils/using.hpp" namespace VE { class layer { public: layer() = default; virtual ~layer() = default; layer(const layer&) = delete; void operator=(const layer&) = delete; public: virtual void on_attach() {}; virtual void render() {}; virtual void update() {}; virtual void on_event(event e) {}; protected: event_fn execute; }; }