12std::string UChar2Hex(
unsigned char c);
21 Hash(
unsigned char *d,
int l)
24 data =
new unsigned char[length];
25 std::memcpy(data, d, length);
33 std::string ToString()
37 for (
int i = 0; i < length; i++)
39 hash += UChar2Hex(data[i]);
50#define MAX(x, y) (x > y ? x : y)
54std::wstring s2ws(
const std::string &s);
57void OpenURL(std::string url);
59std::string ShowSaveFileDialog(std::string ext =
".terr3d");
61std::string openfilename();
63std::string ShowOpenFileDialog(std::string ext =
"*.glsl");
65std::string ReadShaderSourceFile(std::string path,
bool *result);
67std::string GetExecutablePath();
69std::string GetExecutableDir();
71std::string GenerateId(uint32_t length);
73std::string FetchURL(std::string baseURL, std::string path);
75char *UChar2Char(
unsigned char *data,
int length);
77bool FileExists(std::string path,
bool writeAccess =
false);
79bool PathExist(
const std::string &s);
81bool IsNetWorkConnected();
83char *ReadBinaryFile(std::string path,
int *size, uint32_t sizeToLoad = -1);
85char *ReadBinaryFile(std::string path, uint32_t sizeToLoad = -1);
87Hash MD5File(std::string path);
89void DownloadFile(std::string baseURL, std::string urlPath, std::string path,
int size = -1);
91void SaveToFile(std::string filename, std::string content =
"");
93void Log(
const char *log);
95void Log(std::string log);
99void RegSet(HKEY hkeyHive,
const char *pszVar,
const char *pszValue);
104void MkDir(std::string path);
106void CopyFileData(std::string source, std::string destination);
108bool DeleteFileT(std::string path);
110bool IsKeyDown(
int key);
112bool IsMouseButtonDown(
int button);
114void ShowMessageBox(std::string message, std::string title =
"Info");
116bool LoadTexture(
Texture2D *texture,
bool loadToAssets =
false,
bool preserveData =
true,
bool readAlpha =
false,
ProjectManager *projectManager =
nullptr);
118void ToggleSystemConsole();
123#define TERR3D_KEY_UNKNOWN -1
125#define TERR3D_MOUSE_BUTTON_1 0
126#define TERR3D_MOUSE_BUTTON_2 1
127#define TERR3D_MOUSE_BUTTON_3 2
128#define TERR3D_MOUSE_BUTTON_4 3
129#define TERR3D_MOUSE_BUTTON_5 4
130#define TERR3D_MOUSE_BUTTON_6 5
131#define TERR3D_MOUSE_BUTTON_7 6
132#define TERR3D_MOUSE_BUTTON_8 7
133#define TERR3D_MOUSE_BUTTON_LAST TERR3D_MOUSE_BUTTON_8
134#define TERR3D_MOUSE_BUTTON_LEFT TERR3D_MOUSE_BUTTON_1
135#define TERR3D_MOUSE_BUTTON_RIGHT TERR3D_MOUSE_BUTTON_2
136#define TERR3D_MOUSE_BUTTON_MIDDLE TERR3D_MOUSE_BUTTON_3
139#define TERR3D_KEY_SPACE 32
140#define TERR3D_KEY_APOSTROPHE 39
141#define TERR3D_KEY_COMMA 44
142#define TERR3D_KEY_MINUS 45
143#define TERR3D_KEY_PERIOD 46
144#define TERR3D_KEY_SLASH 47
145#define TERR3D_KEY_0 48
146#define TERR3D_KEY_1 49
147#define TERR3D_KEY_2 50
148#define TERR3D_KEY_3 51
149#define TERR3D_KEY_4 52
150#define TERR3D_KEY_5 53
151#define TERR3D_KEY_6 54
152#define TERR3D_KEY_7 55
153#define TERR3D_KEY_8 56
154#define TERR3D_KEY_9 57
155#define TERR3D_KEY_SEMICOLON 59
156#define TERR3D_KEY_EQUAL 61
157#define TERR3D_KEY_A 65
158#define TERR3D_KEY_B 66
159#define TERR3D_KEY_C 67
160#define TERR3D_KEY_D 68
161#define TERR3D_KEY_E 69
162#define TERR3D_KEY_F 70
163#define TERR3D_KEY_G 71
164#define TERR3D_KEY_H 72
165#define TERR3D_KEY_I 73
166#define TERR3D_KEY_J 74
167#define TERR3D_KEY_K 75
168#define TERR3D_KEY_L 76
169#define TERR3D_KEY_M 77
170#define TERR3D_KEY_N 78
171#define TERR3D_KEY_O 79
172#define TERR3D_KEY_P 80
173#define TERR3D_KEY_Q 81
174#define TERR3D_KEY_R 82
175#define TERR3D_KEY_S 83
176#define TERR3D_KEY_T 84
177#define TERR3D_KEY_U 85
178#define TERR3D_KEY_V 86
179#define TERR3D_KEY_W 87
180#define TERR3D_KEY_X 88
181#define TERR3D_KEY_Y 89
182#define TERR3D_KEY_Z 90
183#define TERR3D_KEY_LEFT_BRACKET 91
184#define TERR3D_KEY_BACKSLASH 92
185#define TERR3D_KEY_RIGHT_BRACKET 93
186#define TERR3D_KEY_GRAVE_ACCENT 96
187#define TERR3D_KEY_WORLD_1 161
188#define TERR3D_KEY_WORLD_2 162
191#define TERR3D_KEY_ESCAPE 256
192#define TERR3D_KEY_ENTER 257
193#define TERR3D_KEY_TAB 258
194#define TERR3D_KEY_BACKSPACE 259
195#define TERR3D_KEY_INSERT 260
196#define TERR3D_KEY_DELETE 261
197#define TERR3D_KEY_RIGHT 262
198#define TERR3D_KEY_LEFT 263
199#define TERR3D_KEY_DOWN 264
200#define TERR3D_KEY_UP 265
201#define TERR3D_KEY_PAGE_UP 266
202#define TERR3D_KEY_PAGE_DOWN 267
203#define TERR3D_KEY_HOME 268
204#define TERR3D_KEY_END 269
205#define TERR3D_KEY_CAPS_LOCK 280
206#define TERR3D_KEY_SCROLL_LOCK 281
207#define TERR3D_KEY_NUM_LOCK 282
208#define TERR3D_KEY_PRINT_SCREEN 283
209#define TERR3D_KEY_PAUSE 284
210#define TERR3D_KEY_F1 290
211#define TERR3D_KEY_F2 291
212#define TERR3D_KEY_F3 292
213#define TERR3D_KEY_F4 293
214#define TERR3D_KEY_F5 294
215#define TERR3D_KEY_F6 295
216#define TERR3D_KEY_F7 296
217#define TERR3D_KEY_F8 297
218#define TERR3D_KEY_F9 298
219#define TERR3D_KEY_F10 299
220#define TERR3D_KEY_F11 300
221#define TERR3D_KEY_F12 301
222#define TERR3D_KEY_F13 302
223#define TERR3D_KEY_F14 303
224#define TERR3D_KEY_F15 304
225#define TERR3D_KEY_F16 305
226#define TERR3D_KEY_F17 306
227#define TERR3D_KEY_F18 307
228#define TERR3D_KEY_F19 308
229#define TERR3D_KEY_F20 309
230#define TERR3D_KEY_F21 310
231#define TERR3D_KEY_F22 311
232#define TERR3D_KEY_F23 312
233#define TERR3D_KEY_F24 313
234#define TERR3D_KEY_F25 314
235#define TERR3D_KEY_KP_0 320
236#define TERR3D_KEY_KP_1 321
237#define TERR3D_KEY_KP_2 322
238#define TERR3D_KEY_KP_3 323
239#define TERR3D_KEY_KP_4 324
240#define TERR3D_KEY_KP_5 325
241#define TERR3D_KEY_KP_6 326
242#define TERR3D_KEY_KP_7 327
243#define TERR3D_KEY_KP_8 328
244#define TERR3D_KEY_KP_9 329
245#define TERR3D_KEY_KP_DECIMAL 330
246#define TERR3D_KEY_KP_DIVIDE 331
247#define TERR3D_KEY_KP_MULTIPLY 332
248#define TERR3D_KEY_KP_SUBTRACT 333
249#define TERR3D_KEY_KP_ADD 334
250#define TERR3D_KEY_KP_ENTER 335
251#define TERR3D_KEY_KP_EQUAL 336
252#define TERR3D_KEY_LEFT_SHIFT 340
253#define TERR3D_KEY_LEFT_CONTROL 341
254#define TERR3D_KEY_LEFT_ALT 342
255#define TERR3D_KEY_LEFT_SUPER 343
256#define TERR3D_KEY_RIGHT_SHIFT 344
257#define TERR3D_KEY_RIGHT_CONTROL 345
258#define TERR3D_KEY_RIGHT_ALT 346
259#define TERR3D_KEY_RIGHT_SUPER 347
260#define TERR3D_KEY_MENU 348
262#define TERR3D_KEY_LAST TERR3D_KEY_MENU