#ifndef POLYGUN_CORE_HPP
#define POLYGUN_CORE_HPP

#define SCR_HEIGHT 600
#define SCR_WIDTH 800

/* C++ Libraries */
#include <set>
#include <map>
#include <array>
#include <tuple>
#include <queue>
#include <vector>
#include <string>
#include <thread>
#include <bitset>
#include <memory>
#include <cassert>
#include <sstream>
#include <fstream>
#include <iostream>
#include <typeinfo>
#include <algorithm>
#include <functional>
#include <filesystem>
#include <unordered_map>

/* C Libraries */
#include <stdio.h>
#include <stdlib.h>
#include <string.h> /* for memcmp */

#ifdef __linux__
# include <unistd.h>
#else
# include <io.h>
#endif

/* GLEW */
#include <GL/glew.h>

/* GLFW */
#include <GLFW/glfw3.h>

/* stb */
#include "../vendor/stb_image.h"

/* GLM */
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>

/* imgui */
#include "../vendor/imgui.h"
#include "../vendor/imgui_impl_glfw.h"
#include "../vendor/imgui_impl_opengl3.h"

#endif // CORE_HPP