text: #pragma once
  
  // Warning disabled ---
  #pragma warning( disable : 4577 ) // Warning that exceptions are disabled
  #pragma warning( disable : 4530 ) // Warning that exceptions are disabled
  
  #include <windows.h>
  #include <stdio.h>
  
  #define LOG(format, ...) log(__FILE__, __LINE__, format, __VA_ARGS__);
  
  void log(const char file[], int line, const char* format, ...);
  
  #define CAP(n) ((n <= 0.0f) ? n=0.0f : (n >= 1.0f) ? n=1.0f : n=n)
  
  #define DEGTORAD 0.0174532925199432957f
  #define RADTODEG 57.295779513082320876f
  #define HAVE_M_PI
  
  typedef unsigned int uint;
  typedef unsigned __int64 uint64;
  typedef unsigned __int32 UID;
  
  enum updateStatus
  {
  	UPDATE_CONTINUE = 1,
  	UPDATE_STOP,
  	UPDATE_ERROR
  };
  
  // Configuration -----------
  #define SCREEN_WIDTH 1024
  #define SCREEN_HEIGHT 768
  #define SCREEN_SIZE 1
  #define WIN_FULLSCREEN false
  #define WIN_RESIZABLE true
  #define WIN_BORDERLESS false
  #define WIN_MAXIMIZE false
  #define WIN_FULLSCREEN_DESKTOP false
  #define VSYNC true
  #define TITLE "Semat Engine"
  
  // File System -----------
  #define LIBRARY_PATH "Library/"
  #define FOLDERS_PATH "Library/Folders/"
  #define MESHES_PATH "Library/Meshes/"
  #define MATERIALS_PATH "Library/Materials/"
  #define TEXTURES_PATH "Library/Textures/"
  #define SCENES_PATH "Library/Scenes/"
  #define MODELS_PATH "Library/Models/"
  #define ANIMATIONS_PATH "Library/Animations/"
  
  // Custom file format file extensions
  #define TEXTURE_EXTENTION ".texture"
  #define MESH_EXTENTION ".mesh"
  #define SCENE_EXTENTION ".scene"
  #define MODEL_EXTENTION ".model"
  #define MATERIAL_EXTENTION ".material"
  #define ANIMATION_EXTENSION ".animation"
  
  // Deletes a buffer -----------
  #define RELEASE( x )\
      {\
         if( x != nullptr )\
         {\
           delete x;\
  	     x = nullptr;\
         }\
      }
  
  #define RELEASE_ARRAY( x )\
  	{\
         if( x != nullptr )\
         {\
             delete[] x;\
  	       x = nullptr;\
  		 }\
  	}
  
  class Application;
  
  extern Application* App;