Files
HydraV3/HydraEngine/source/HydraDefines.h
T

250 lines
6.5 KiB
C++
Raw Normal View History

2026-07-17 15:30:29 +01:00
#ifndef HYDRADEFINES
#define HYDRADEFINES
#include <bitset>
#include <cstdint>
#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 <windows.h>
#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;
2026-08-06 21:11:33 +01:00
const uint32_t MAX_DIRECTIONAL_SHADOWS = 10;
const uint32_t MAX_SPOT_SHADOWS = 10;
2026-08-03 22:34:52 +01:00
const uint32_t SHADOW_MAP_SIZE = 4096;
2026-07-17 15:30:29 +01:00
enum class HYDRA_RENDERABLE_TYPE
{
HYDRA_COLOUR = 1,
HYDRA_SHADOW,
HYDRA_TRANSPARENT,
HYDRA_LIGHTING,
2026-08-03 22:34:52 +01:00
HYDRA_OUTPUT,
HYDRA_TEXTURE_DEBUG
2026-07-17 15:30:29 +01:00
};
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 */