#pragma once

#define BIT(x)\
  (1 << x)

#define VE_FN_OVERIDE()\
  public:\
    void on_attach() override;\
    void render() override;\
    void update() override;\
    void on_event(VE::event e) override

#define VE_CONNECT(DEF_CLASS) VE::event_manager::instance().connect(std::bind(&DEF_CLASS::on_event, this, std::placeholders::_1));
#define VE_EMIT(e) VE::event_manager::instance().emit(e)

#define VE_PUSH_FONT(def_font, def_size)\
  ImGui::PushFont(VE::style::fonts::get_font(VE::style::fonts::font_type::def_font, def_size)) 
#define VE_POP_FONT() ImGui::PopFont()
