|
|
- #pragma once
- #include <cstdint>
- #include <cstddef>
- #include <cstdlib>
- #include <type_traits>
-
- #ifdef GP_TESTS
- class static_mapper;
- #else
- namespace gp {
- class c_allocator;
- }
- #endif
-
- namespace gp_config{
- namespace rendering {
- using default_type = float;
- constexpr default_type epsilon = 0.001;
- #define GP_CONFIG__RENDERING__COLOR_T vec4
- }
-
- namespace memory_module{
- #ifdef GP_TESTS
- using default_allocator = static_mapper;
- #else
- using default_allocator = gp::c_allocator;
- #endif
-
- constexpr bool is_ok = true;
- }
-
- typedef uint32_t file_descriptor_t;
-
- constexpr bool has_exceptions = true;
- constexpr bool has_buffer_bounds = true;
-
- // Value of 8 is considered not cryptographically secure
- // Value of 12 offers a good compromise of performance and robustness
- // Value of 20 offers maximum robustness
- constexpr size_t arc4random_strength = 20;
-
- struct assert_failure{
- assert_failure(const char* reason)
- : what_str{reason}
- {}
- const char* what_str;
- const char* what() {return what_str;}
- };
-
- constexpr size_t assert_buffer_size = 0;
- constexpr auto assertion = [](bool pred, const char* reason) -> void{
- if constexpr (has_exceptions)
- if(!pred) throw assert_failure(reason);
- };
- }
-
- enum class gp_errorcodes : int {
- infinite_skipstone = 3000
- };
|