#ifndef HYDRADEFINES #define HYDRADEFINES #include #include #define GLFW_MANAGER 1 //#define GLEW_STATIC #ifdef __unix__ /* __unix__ is usually defined by compilers targeting Unix systems */ #define OS_Windows 0 #define CLASS_DEFINE #elif defined(_WIN32) || defined(WIN32) /* _Win32 is usually defined by compilers targeting 32 or 64 bit Windows systems */ #include #define WIN32_LEAN_AND_MEAN #ifdef _EXPORTING #define CLASS_DEFINE __declspec(dllexport) #else #define CLASS_DEFINE __declspec(dllimport) #endif #endif #ifndef PROJECT_DIRS char const * const texture_base = "C:/Code/HydraV3/Media/Textures/"; char const * const shader_base = "C:/Code/HydraV3/HydraEngine/source/ShaderFiles/"; #define PROJECT_DIRS = 1 #endif using HydraID = uint32_t; using byte = uint8_t; using HydraSignature = std::bitset<64>; const HydraID INVALID_HYDRA_ID = 4294967295; const uint32_t MAX_TASKS = 10000; const uint32_t MAX_MATERIALS = 1000; const uint32_t MAX_TEXTURES = 1000; const uint32_t MAX_ACTORS = 10000; const uint32_t MAX_LIGHTS = 500; const uint32_t MAX_SHADOWS = 10; const uint32_t SHADOW_MAP_SIZE = 1024; enum class HYDRA_RENDERABLE_TYPE { HYDRA_COLOUR = 1, HYDRA_SHADOW, HYDRA_TRANSPARENT, HYDRA_LIGHTING, HYDRA_OUTPUT }; enum class HYDRA_BUFFER_TYPE { HYDRA_UKNOWN_BUFFER = 0, HYDRA_UBO_BUFFER = 1, HYDRA_SSBO_BUFFER = 2, HYDRA_VERTEX_BUFFER = 3, HYDRA_INDEX_BUFFER = 4 }; enum class HYDRA_ACTOR_STATE { WAITING_FOR_INIT = 0, ACTIVE = 1, WAITING_FOR_DELETE = 2 }; enum class HydraThreadAffinity { Unknown = 0, General = 1, Render = 2, Physics = 3 }; enum class HYDRA_LIGHT_TYPE { HYDRA_LIGHT_DIRECTIONAL = 1, HYDRA_LIGHT_POINT = 2, HYDRA_LIGHT_SPOT = 3 }; enum class HYDRA_STATE { Empty = 0, Waiting = 1, Ready = 2, Deleted = 3 }; enum class KEY_PRESS_ACTIONS { HYDRA_KEY_PRESSED = 1, HYDRA_KEY_RELEASED = 2 }; enum class HYDRA_KEY_CODES { HYDRA_KEY_UNKNOWN =-1, HYDRA_KEY_SPACE =32, HYDRA_KEY_APOSTROPHE =39, HYDRA_KEY_COMMA =44, HYDRA_KEY_MINUS =45, HYDRA_KEY_PERIOD =46, HYDRA_KEY_SLASH =47, HYDRA_KEY_0 =48, HYDRA_KEY_1 =49, HYDRA_KEY_2 =50, HYDRA_KEY_3 =51, HYDRA_KEY_4 =52, HYDRA_KEY_5 =53, HYDRA_KEY_6 =54, HYDRA_KEY_7 =55, HYDRA_KEY_8 =56, HYDRA_KEY_9 =57, HYDRA_KEY_SEMICOLON =59, HYDRA_KEY_EQUAL =61, HYDRA_KEY_A =65, HYDRA_KEY_B =66, HYDRA_KEY_C =67, HYDRA_KEY_D =68, HYDRA_KEY_E =69, HYDRA_KEY_F =70, HYDRA_KEY_G =71, HYDRA_KEY_H =72, HYDRA_KEY_I =73, HYDRA_KEY_J =74, HYDRA_KEY_K =75, HYDRA_KEY_L =76, HYDRA_KEY_M =77, HYDRA_KEY_N =78, HYDRA_KEY_O =79, HYDRA_KEY_P =80, HYDRA_KEY_Q =81, HYDRA_KEY_R =82, HYDRA_KEY_S =83, HYDRA_KEY_T =84, HYDRA_KEY_U =85, HYDRA_KEY_V =86, HYDRA_KEY_W =87, HYDRA_KEY_X =88, HYDRA_KEY_Y =89, HYDRA_KEY_Z =90, HYDRA_KEY_LEFT_BRACKET =91, HYDRA_KEY_BACKSLASH =92, HYDRA_KEY_RIGHT_BRACKET =93, HYDRA_KEY_GRAVE_ACCENT =96, HYDRA_KEY_WORLD_1 =161, HYDRA_KEY_WORLD_2 =162, HYDRA_KEY_ESCAPE =256, HYDRA_KEY_ENTER =257, HYDRA_KEY_TAB =258, HYDRA_KEY_BACKSPACE =259, HYDRA_KEY_INSERT =260, HYDRA_KEY_DELETE =261, HYDRA_KEY_RIGHT =262, HYDRA_KEY_LEFT =263, HYDRA_KEY_DOWN =264, HYDRA_KEY_UP =265, HYDRA_KEY_PAGE_UP =266, HYDRA_KEY_PAGE_DOWN =267, HYDRA_KEY_HOME =268, HYDRA_KEY_END =269, HYDRA_KEY_CAPS_LOCK =280, HYDRA_KEY_SCROLL_LOCK =281, HYDRA_KEY_NUM_LOCK =282, HYDRA_KEY_PRINT_SCREEN =283, HYDRA_KEY_PAUSE =284, HYDRA_KEY_F1 =290, HYDRA_KEY_F2 =291, HYDRA_KEY_F3 =292, HYDRA_KEY_F4 =293, HYDRA_KEY_F5 =294, HYDRA_KEY_F6 =295, HYDRA_KEY_F7 =296, HYDRA_KEY_F8 =297, HYDRA_KEY_F9 =298, HYDRA_KEY_F10 =299, HYDRA_KEY_F11 =300, HYDRA_KEY_F12 =301, HYDRA_KEY_F13 =302, HYDRA_KEY_F14 =303, HYDRA_KEY_F15 =304, HYDRA_KEY_F16 =305, HYDRA_KEY_F17 =306, HYDRA_KEY_F18 =307, HYDRA_KEY_F19 =308, HYDRA_KEY_F20 =309, HYDRA_KEY_F21 =310, HYDRA_KEY_F22 =311, HYDRA_KEY_F23 =312, HYDRA_KEY_F24 =313, HYDRA_KEY_F25 =314, HYDRA_KEY_KP_0 =320, HYDRA_KEY_KP_1 =321, HYDRA_KEY_KP_2 =322, HYDRA_KEY_KP_3 =323, HYDRA_KEY_KP_4 =324, HYDRA_KEY_KP_5 =325, HYDRA_KEY_KP_6 =326, HYDRA_KEY_KP_7 =327, HYDRA_KEY_KP_8 =328, HYDRA_KEY_KP_9 =329, HYDRA_KEY_KP_DECIMAL =330, HYDRA_KEY_KP_DIVIDE =331, HYDRA_KEY_KP_MULTIPLY =332, HYDRA_KEY_KP_SUBTRACT =333, HYDRA_KEY_KP_ADD =334, HYDRA_KEY_KP_ENTER =335, HYDRA_KEY_KP_EQUAL =336, HYDRA_KEY_LEFT_SHIFT =340, HYDRA_KEY_LEFT_CONTROL =341, HYDRA_KEY_LEFT_ALT =342, HYDRA_KEY_LEFT_SUPER =343, HYDRA_KEY_RIGHT_SHIFT =344, HYDRA_KEY_RIGHT_CONTROL =345, HYDRA_KEY_RIGHT_ALT =346, HYDRA_KEY_RIGHT_SUPER =347, HYDRA_KEY_MENU =348 }; struct HydraKeyPressStuct { HydraKeyPressStuct() {}; HydraKeyPressStuct(int key_code_in, KEY_PRESS_ACTIONS key_action_in) { key_code = key_code_in; key_action = key_action_in; } int key_code = -1; KEY_PRESS_ACTIONS key_action = KEY_PRESS_ACTIONS::HYDRA_KEY_PRESSED; }; struct HydraMouseMoveStruct { HydraMouseMoveStruct() {}; HydraMouseMoveStruct(int x_in, int y_in) { x = x_in; y = y_in; } int x = 0; int y = 0; }; #endif /* HYDRADEFINES */