#pragma once

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

#define VE_EVENT_OVERIDE()\
  public:\
    void on_event(VE::event& e) override

#define VE_OVERIDE()\
  public:\
    void on_attach() override;\
    void on_detach() override;\
    void render() override;\
    void update() override

#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()

#define VE_NO_NAME(n) VE::func::name(n).data()
#define VE_NAME(n) VE::func::name(n, "").data()

#define VE_COLOR(c, t) VE::func::colorU32(c, t)

#define VE_GLGETSTRING(n) reinterpret_cast<const char*>(glGetString(n))
