Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
API.h
Go to the documentation of this file.
1
6
7/*
8Preprocessor defines:
9
10 ECS_DISABLE_LOGGING - Disable logging feature.
11
12
13
14*/
15
16#pragma once
17#ifndef ECS__ECS_API_H__
18#define ECS__ECS_API_H__
19
20#define ENITY_LUT_GROW 1024
21
22#define ENITY_T_CHUNK_SIZE 512
23
24#define COMPONENT_LUT_GROW 1024
25
26#define COMPONENT_T_CHUNK_SIZE 512
27
28// 4MB
29#define ECS_EVENT_MEMORY_BUFFER_SIZE 4194304
30
31// 8MB
32#define ECS_SYSTEM_MEMORY_BUFFER_SIZE 8388608
33
34
35#include "Platform.h"
36#include "Log/Logger.h"
37
38namespace ECS
39{
40 namespace Log {
41
42 namespace Internal
43 {
44#if !defined(ECS_DISABLE_LOGGING)
45
46 class LoggerManager;
48
63
64 ECS_API Log::Logger* GetLogger(const char* logger);
65#endif
66 }
67 }
68
69 namespace Memory
70 {
71 namespace Internal
72 {
73 class MemoryManager;
74 }
75 }
76
77 namespace Event
78 {
79 class EventHandler;
80 }
81
82
83 class EntityManager;
84 class SystemManager;
85 class ComponentManager;
86
87
88
89 namespace Memory
90 {
100
102 {
103 private:
104
105 std::unique_ptr<Internal::MemoryManager> ECS_MEMORY_MANAGER;
106
107 public:
108
110 virtual ~GlobalMemoryUser();
111
112 const void* Allocate(size_t memSize, const char* user = nullptr);
113 void Free(void* pMem);
114 };
115
116 } // namespace ECS::Memory
117
118} // namespace ECS
119
120#endif // ECS__ECS_API_H__
#define ECS_API
Definition: Platform.h:16
std::unique_ptr< Internal::MemoryManager > ECS_MEMORY_MANAGER
Definition: API.h:105
Log::Logger * GetLogger(const char *logger)
Definition: API.cpp:26
LoggerManager * ECSLoggerManager
Definition: API.cpp:24