LiteFX 0.3.1.2022
Computer Graphics Engine
LiteFX Namespace Reference

Namespaces

namespace  Graphics
 
namespace  Logging
 
namespace  Math
 
namespace  ranges
 Contains helpers for working with ranges and views.
 
namespace  Rendering
 
namespace  rtti
 

Classes

class  App
 The base class for an application. More...
 
class  AppBuilder
 Creates a new builder for an App. More...
 
class  AppVersion
 Contains the version of an App. More...
 
class  Builder
 Describes an generic builder type. More...
 
class  Builder< TDerived, T, std::nullptr_t, typename TPointer >
 Describes a root builder. More...
 
class  ExceptionBase
 
class  IBackend
 The base class for an app backend. More...
 
class  Implement
 Base class for an implementation of a public interface class. More...
 
class  IResource
 Provides access to a resource managed by the class. More...
 
class  PimplPtr
 A smart pointer that manages an implementation instance for a public interface class. More...
 
class  Resource
 Implements the IResource interface. More...
 

Typedefs

using Handle = void *
 Represents a handle type. More...
 
template<class TKey , class TVal >
using Dictionary = std::unordered_map< TKey, TVal >
 Represents a dictionary that maps a key to a certain value. More...
 
template<class T >
using Array = std::vector< T >
 Represents a dynamic array. More...
 
template<class T >
using Queue = std::queue< T >
 Represents a queue. More...
 
template<class T >
using Span = std::span< T >
 Represents a view of an array. More...
 
template<class T >
using Optional = std::optional< T >
 Represents an optional value. More...
 
template<class T , class TDeleter = std::default_delete<T>>
using UniquePtr = std::unique_ptr< T, TDeleter >
 Represents a unique pointer, that expresses exclusive ownership. More...
 
template<class T >
using SharedPtr = std::shared_ptr< T >
 Represents a shared pointer, that expresses non-exclusive ownership. More...
 
template<class T >
using WeakPtr = std::weak_ptr< T >
 Represents a weak pointer, that expresses a reference to a shared pointer instance. More...
 
template<class... T>
using Tuple = std::tuple< T... >
 Represents a tuple of multiple objects. More...
 
template<class... T>
using Variant = std::variant< T... >
 Represents a variant of objects. More...
 
using Exception = std::exception
 
using String = std::string
 
using WString = std::wstring
 
using StringView = std::string_view
 
using WStringView = std::wstring_view
 

Functions

template<class T >
UniquePtr< T > makeUnique ()
 Creates a new unique pointer. More...
 
template<class T , class... TArgs>
UniquePtr< T > makeUnique (TArgs &&... _args)
 Creates a new unique pointer. More...
 
template<class T >
SharedPtr< T > makeShared ()
 Creates a new shared pointer. More...
 
template<class T , class... TArgs>
SharedPtr< T > makeShared (TArgs &&... _args)
 Creates a new shared pointer. More...
 
template<class T >
SharedPtr< T > makeShared (UniquePtr< T > &&ptr)
 Transfers a unique pointer to a shared pointer. The unique pointer will be released during this process. More...
 
template<class T , class... Arg>
PimplPtr< T > makePimpl (Arg &&... arg)
 Creates a pointer to an implementation. More...
 
 DEFINE_EXCEPTION (InvalidArgumentException, std::invalid_argument)
 
 DEFINE_EXCEPTION (ArgumentOutOfRangeException, std::out_of_range)
 
 DEFINE_EXCEPTION (ArgumentNotInitializedException, std::logic_error)
 
 DEFINE_EXCEPTION (RuntimeException, std::runtime_error)
 
template<typename TStrings , typename Value = typename TStrings::value_type>
String Join (const TStrings &elements, const String &delimiter="")
 
WString Widen (StringView utf8)
 Converts an UTF-8 single-byte encoded string into an UTF-16 representation. More...
 
String Narrow (WStringView utf16)
 Converts an UTF-16 multi-byte encoded string into an UTF-8 representation. More...
 

Typedef Documentation

◆ Array

template<class T >
using LiteFX::Array = typedef std::vector<T>

Represents a dynamic array.

Template Parameters
TThe type of the array elements.

◆ Dictionary

template<class TKey , class TVal >
using LiteFX::Dictionary = typedef std::unordered_map<TKey, TVal>

Represents a dictionary that maps a key to a certain value.

Template Parameters
TKeyThe type of the key.
TValThe type of the value.

◆ Exception

using LiteFX::Exception = typedef std::exception

◆ Handle

using LiteFX::Handle = typedef void*

Represents a handle type.

◆ Optional

template<class T >
using LiteFX::Optional = typedef std::optional<T>

Represents an optional value.

Template Parameters
TThe type of the optional value.

◆ Queue

template<class T >
using LiteFX::Queue = typedef std::queue<T>

Represents a queue.

Template Parameters
TThe type of the queue elements.

◆ SharedPtr

template<class T >
using LiteFX::SharedPtr = typedef std::shared_ptr<T>

Represents a shared pointer, that expresses non-exclusive ownership.

Template Parameters
TThe type of the object the pointer points to.

◆ Span

template<class T >
using LiteFX::Span = typedef std::span<T>

Represents a view of an array.

Template Parameters
TThe type of the array elements.

◆ String

using LiteFX::String = typedef std::string

◆ StringView

using LiteFX::StringView = typedef std::string_view

◆ Tuple

template<class... T>
using LiteFX::Tuple = typedef std::tuple<T...>

Represents a tuple of multiple objects.

Template Parameters
...TThe types of the objects, contained by the tuple.

◆ UniquePtr

template<class T , class TDeleter = std::default_delete<T>>
using LiteFX::UniquePtr = typedef std::unique_ptr<T, TDeleter>

Represents a unique pointer, that expresses exclusive ownership.

Template Parameters
TThe type of the object the pointer points to.
TDeleterThe deleter for the pointed object.

◆ Variant

template<class... T>
using LiteFX::Variant = typedef std::variant<T...>

Represents a variant of objects.

Template Parameters
...TThe types of the objects, that can be contained by the tuple.

◆ WeakPtr

template<class T >
using LiteFX::WeakPtr = typedef std::weak_ptr<T>

Represents a weak pointer, that expresses a reference to a shared pointer instance.

Template Parameters
TThe type of the object the pointer points to.

◆ WString

using LiteFX::WString = typedef std::wstring

◆ WStringView

using LiteFX::WStringView = typedef std::wstring_view

Function Documentation

◆ DEFINE_EXCEPTION() [1/4]

LiteFX::DEFINE_EXCEPTION ( ArgumentNotInitializedException  ,
std::logic_error   
)

◆ DEFINE_EXCEPTION() [2/4]

LiteFX::DEFINE_EXCEPTION ( ArgumentOutOfRangeException  ,
std::out_of_range   
)

◆ DEFINE_EXCEPTION() [3/4]

LiteFX::DEFINE_EXCEPTION ( InvalidArgumentException  ,
std::invalid_argument   
)

◆ DEFINE_EXCEPTION() [4/4]

LiteFX::DEFINE_EXCEPTION ( RuntimeException  ,
std::runtime_error   
)

◆ Join()

template<typename TStrings , typename Value = typename TStrings::value_type>
String LiteFX::Join ( const TStrings &  elements,
const String delimiter = "" 
)

◆ makePimpl()

template<class T , class... Arg>
PimplPtr< T > LiteFX::makePimpl ( Arg &&...  arg)

Creates a pointer to an implementation.

Template Parameters
TThe type of the implementation class.
...ArgThe variadic argument types forwarded to the implementation classes' constructor.
Parameters
...argThe arguments forwarded to the implementation classes' constructor.
Returns
The pointer to the implementation class instance.

◆ makeShared() [1/3]

template<class T >
SharedPtr< T > LiteFX::makeShared ( )

Creates a new shared pointer.

Template Parameters
TThe type of the object, the pointer points to.
Returns
A new shared pointer.

◆ makeShared() [2/3]

template<class T , class... TArgs>
SharedPtr< T > LiteFX::makeShared ( TArgs &&...  _args)

Creates a new shared pointer.

Template Parameters
TThe type of the object, the pointer points to.
Returns
A new shared pointer.

◆ makeShared() [3/3]

template<class T >
SharedPtr< T > LiteFX::makeShared ( UniquePtr< T > &&  ptr)

Transfers a unique pointer to a shared pointer. The unique pointer will be released during this process.

Template Parameters
TThe type of the object, the pointer points to.
Parameters
ptrThe unique pointer that should be turned into a shared pointer.
Returns
A new shared pointer.

◆ makeUnique() [1/2]

template<class T >
UniquePtr< T > LiteFX::makeUnique ( )

Creates a new unique pointer.

Template Parameters
TThe type of the object, the pointer points to.
Returns
A new unique pointer.

◆ makeUnique() [2/2]

template<class T , class... TArgs>
UniquePtr< T > LiteFX::makeUnique ( TArgs &&...  _args)

Creates a new unique pointer.

Template Parameters
TThe type of the object, the pointer points to.
Returns
A new unique pointer.

◆ Narrow()

String LiteFX::Narrow ( WStringView  utf16)
inline

Converts an UTF-16 multi-byte encoded string into an UTF-8 representation.

Parameters
utf16
Returns

◆ Widen()

WString LiteFX::Widen ( StringView  utf8)
inline

Converts an UTF-8 single-byte encoded string into an UTF-16 representation.

Parameters
utf8
Returns