Polyphase Game Engine
Loading...
Searching...
No Matches
JsonSettings.h
Go to the documentation of this file.
1#pragma once
2
3#if EDITOR
4
5#include <string>
6#include <cstdint>
7#include "Maths.h"
8#include "document.h"
9
10namespace JsonSettings
11{
12 // File operations
13 bool LoadFromFile(const std::string& path, rapidjson::Document& doc);
14 bool SaveToFile(const std::string& path, rapidjson::Document& doc);
15
16 // Getters with defaults
17 bool GetBool(const rapidjson::Document& doc, const char* key, bool defaultValue);
18 int GetInt(const rapidjson::Document& doc, const char* key, int defaultValue);
19 int64_t GetInt64(const rapidjson::Document& doc, const char* key, int64_t defaultValue);
20 float GetFloat(const rapidjson::Document& doc, const char* key, float defaultValue);
21 std::string GetString(const rapidjson::Document& doc, const char* key, const std::string& defaultValue);
22 glm::vec3 GetVec3(const rapidjson::Document& doc, const char* key, const glm::vec3& defaultValue);
23 glm::vec4 GetVec4(const rapidjson::Document& doc, const char* key, const glm::vec4& defaultValue);
24
25 // Setters
26 void SetBool(rapidjson::Document& doc, const char* key, bool value);
27 void SetInt(rapidjson::Document& doc, const char* key, int value);
28 void SetInt64(rapidjson::Document& doc, const char* key, int64_t value);
29 void SetFloat(rapidjson::Document& doc, const char* key, float value);
30 void SetString(rapidjson::Document& doc, const char* key, const std::string& value);
31 void SetVec3(rapidjson::Document& doc, const char* key, const glm::vec3& value);
32 void SetVec4(rapidjson::Document& doc, const char* key, const glm::vec4& value);
33
34 // Utility
35 std::string GetPreferencesDirectory();
36 void EnsurePreferencesDirectory();
37}
38
39#endif
Definition JsonHelpers.h:15