Hubris Engine Dev
A Project to learn and get into Game Engine developement.
 
Loading...
Searching...
No Matches
Hubris Namespace Reference

The Hubris Engine main namespace. More...

Namespaces

namespace  Core
 
namespace  Graphics
 Contains all graphics related classes and structs.
 
namespace  IO
 

Classes

struct  Arena
 
struct  BasicStore
 
struct  Block
 
struct  ControlBlock
 
class  Engine
 Stores and defines Engine wide data and functionalities. More...
 
struct  EngineConfig
 Used to configure the engine on instantiation. More...
 
class  GraphicsManager
 
struct  Handle
 
class  List
 A generic dynamic array container that manages a sequence of elements of type T, providing memory management, element access, and basic list operations with error handling. More...
 
class  Logger
 
class  Memory
 
class  Observer
 
struct  remove_all_pointers
 
struct  remove_all_pointers< T * >
 
struct  remove_all_pointers< T *const >
 
struct  remove_all_pointers< T *const volatile >
 
struct  remove_all_pointers< T *volatile >
 
class  RingBuffer
 An implementation of a fixed-size (power of two only) Ring Buffer. More...
 
struct  Shared
 
struct  SharedBlock
 Shared blocks are thread shared blocks. More...
 
class  ThreadPool
 
struct  Version
 
class  WaitGroup
 
struct  Weak
 

Concepts

concept  Castable
 
concept  PolymorphicConvertible
 
concept  SafelyUpcastable
 
concept  SameUnqualifiedType
 
concept  CompatibleHandle
 
concept  IsType
 

Typedefs

typedef void(* StartupCallback) ()
 
template<typename T>
using remove_all_pointers_t = typename remove_all_pointers<T>::type
 
template<typename T>
using observer_ptr = Observer<T>
 

Enumerations

enum class  RenderAPI : unsigned short {
  RenderAPI::OpenGL , RenderAPI::Vulkan , RenderAPI::DX12 , RenderAPI::DX11 ,
  RenderAPI::None
}
 
enum class  ErrorCode : uint32_t {
  OK = 0 , NOT_INITIALIZED = 1 << 0 , INVALID_OPERATION = 1 << 1 , UNSUPPORTED = 1 << 2 ,
  NOT_IMPLEMENTED = 1 << 3 , NO_MEMORY = 1 << 4 , OUT_OF_RANGE = 1 << 5 , INVALID_ARGUMENT = 1 << 6 ,
  NOT_AVAILABLE = 1 << 7 , NO_PERMISSION = 1 << 8 , FATAL_ERROR = 1 << 9 , NON_FATAL_ERROR = 1 << 10 ,
  RUNTIME_ERROR = 1 << 11 , OPERATION_FAILED = 1 << 12 , CORE_ERROR = 1 << 13 , INTERNAL_ERROR = 1 << 14 ,
  UNKNOWN = 1 << 15 , FAILED = 1 << 16
}
 

Functions

constexpr ErrorCode operator| (ErrorCode lhs, ErrorCode rhs)
 
constexpr ErrorCodeoperator|= (ErrorCode &lhs, ErrorCode rhs)
 
constexpr ErrorCode operator& (ErrorCode lhs, ErrorCode rhs)
 
constexpr ErrorCodeoperator&= (ErrorCode &lhs, ErrorCode rhs)
 
constexpr bool operator! (ErrorCode e)
 
constexpr bool HasError (ErrorCode combined, ErrorCode specific)
 
template<typename T>
bool operator== (const List< T > &lhs, const List< T > &rhs) noexcept
 
template<typename T>
bool operator!= (const List< T > &lhs, const List< T > &rhs) noexcept
 
template<typename T>
void swap (List< T > &lhs, List< T > &rhs) noexcept
 
bool is_success (List< int >::Result result) noexcept
 
bool is_failure (List< int >::Result result) noexcept
 
template<typename T>
consteval size_t padded_size ()
 
template<typename T, typename F>
void Traverse (T &&container, F &&func)
 
template<typename T>
constexpr ControlBlockCoAllocate_Unsafe ()
 Allocates memory for the ControlBlock and T but does not construct T. This can lead to UB if not used carefully.
 
template<typename T, typename ... Args>
constexpr void Construct_T_Inplace (void *placement, Args &&...args)
 Constructs any object at location (placment new) with the specified arguments.
 
template<typename T, typename ... Args>
constexpr ControlBlockCoAllocate (Args &&...args)
 Allocates and constructs both the ControlBlock and the Object T and returns the instanciated controlblock.
 
template<typename T>
 Handle (T *) -> Handle< T >
 
template<typename T>
 Shared (T *) -> Shared< T >
 
template<typename T>
 Shared (Weak< T >) -> Shared< T >
 
template<typename T>
 Observer (T *) -> Observer< T >
 

Detailed Description

The Hubris Engine main namespace.

Typedef Documentation

◆ observer_ptr

template<typename T>
using Hubris::observer_ptr = Observer<T>

Definition at line 679 of file Memory.h.

◆ remove_all_pointers_t

template<typename T>
using Hubris::remove_all_pointers_t = typename remove_all_pointers<T>::type

Definition at line 149 of file Memory.h.

Enumeration Type Documentation

◆ ErrorCode

enum class Hubris::ErrorCode : uint32_t
strong
Enumerator
OK 
NOT_INITIALIZED 
INVALID_OPERATION 
UNSUPPORTED 
NOT_IMPLEMENTED 
NO_MEMORY 
OUT_OF_RANGE 
INVALID_ARGUMENT 
NOT_AVAILABLE 
NO_PERMISSION 
FATAL_ERROR 
NON_FATAL_ERROR 
RUNTIME_ERROR 
OPERATION_FAILED 
CORE_ERROR 
INTERNAL_ERROR 
UNKNOWN 
FAILED 

Definition at line 6 of file Error.h.

Function Documentation

◆ CoAllocate()

template<typename T, typename ... Args>
ControlBlock * Hubris::CoAllocate ( Args &&... args)
constexpr

Allocates and constructs both the ControlBlock and the Object T and returns the instanciated controlblock.

Template Parameters
...ArgsArgument Types for the Constructor of T
Parameters
...argsArgument values to be passed to the constructor of T::T(Args&& ...args)
Returns
a fully intialized controlblock pointing at the newly constructed T

Definition at line 224 of file Memory.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CoAllocate_Unsafe()

template<typename T>
ControlBlock * Hubris::CoAllocate_Unsafe ( )
constexpr

Allocates memory for the ControlBlock and T but does not construct T. This can lead to UB if not used carefully.

Returns
a controlblock pointing at the unintialized T

Definition at line 189 of file Memory.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Construct_T_Inplace()

template<typename T, typename ... Args>
void Hubris::Construct_T_Inplace ( void * placement,
Args &&... args )
constexpr

Constructs any object at location (placment new) with the specified arguments.

Template Parameters
TType to be constructed
...ArgsType of arguments for the .Ctor.
Parameters
placementLocation of memory to place T in.
...argsvalue to be forwarded to the .Ctor.

Definition at line 214 of file Memory.h.

+ Here is the caller graph for this function:

◆ Handle()

template<typename T>
Hubris::Handle ( T * ) -> Handle< T >

◆ HasError()

bool Hubris::HasError ( ErrorCode combined,
ErrorCode specific )
constexpr

Definition at line 56 of file Error.h.

◆ is_failure()

bool Hubris::is_failure ( List< int >::Result result)
inlinenoexcept

Definition at line 785 of file List.h.

◆ is_success()

bool Hubris::is_success ( List< int >::Result result)
inlinenoexcept

Definition at line 781 of file List.h.

◆ Observer()

template<typename T>
Hubris::Observer ( T * ) -> Observer< T >

◆ operator!()

bool Hubris::operator! ( ErrorCode e)
constexpr

Definition at line 52 of file Error.h.

◆ operator!=()

template<typename T>
bool Hubris::operator!= ( const List< T > & lhs,
const List< T > & rhs )
noexcept

Definition at line 771 of file List.h.

◆ operator&()

ErrorCode Hubris::operator& ( ErrorCode lhs,
ErrorCode rhs )
constexpr

Definition at line 40 of file Error.h.

◆ operator&=()

ErrorCode & Hubris::operator&= ( ErrorCode & lhs,
ErrorCode rhs )
constexpr

Definition at line 47 of file Error.h.

◆ operator==()

template<typename T>
bool Hubris::operator== ( const List< T > & lhs,
const List< T > & rhs )
noexcept

Definition at line 759 of file List.h.

◆ operator|()

ErrorCode Hubris::operator| ( ErrorCode lhs,
ErrorCode rhs )
constexpr

Definition at line 28 of file Error.h.

◆ operator|=()

ErrorCode & Hubris::operator|= ( ErrorCode & lhs,
ErrorCode rhs )
constexpr

Definition at line 35 of file Error.h.

◆ padded_size()

template<typename T>
size_t Hubris::padded_size ( )
consteval

Definition at line 169 of file Memory.h.

+ Here is the caller graph for this function:

◆ Shared() [1/2]

template<typename T>
Hubris::Shared ( T * ) -> Shared< T >

◆ Shared() [2/2]

template<typename T>
Hubris::Shared ( Weak< T > ) -> Shared< T >

◆ swap()

template<typename T>
void Hubris::swap ( List< T > & lhs,
List< T > & rhs )
noexcept

Definition at line 776 of file List.h.

◆ Traverse()

template<typename T, typename F>
void Hubris::Traverse ( T && container,
F && func )

Definition at line 175 of file Memory.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: