#pragma once #include "event/event.hpp" #include "gui/flags.hpp" namespace VE { class layer : public flags { using time = time::timestep; 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; }; }