LiteFX 0.4.1.2025
Computer Graphics Engine
Loading...
Searching...
No Matches
LiteFX Namespace Reference

Namespaces

namespace  Graphics
 
namespace  Logging
 
namespace  Math
 
namespace  meta
 Contains type traits and meta-programming features for compile-time evaluation.
 
namespace  Rendering
 

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  ArgumentNotInitializedException
 An exception that is thrown, if a provided non-optional argument was not initialized. More...
 
class  ArgumentOutOfRangeException
 An exception that is thrown, if a provided argument is not within the expected range. More...
 
class  Builder
 Describes an generic builder type. More...
 
class  Builder< T, std::nullptr_t, TPointer >
 Describes a root builder. More...
 
struct  CovariantIterator
 Wraps an iterator and returns covariants of type T of the iterated value. More...
 
class  Delegate
 Represents a handler for an Event, that is assigned a unique token when created, so that it can be identified later. More...
 
struct  Enumerable
 An input range over another range, where the returned values of type T are covariants of the values stored by the underlying range. More...
 
class  Event
 A class that is used to declare an event, which a number of listeners can subscribe to. More...
 
class  EventArgs
 Base class for additional event arguments. More...
 
class  Exception
 The base class for exceptions thrown by the SDK. More...
 
class  IBackend
 The base class for an app backend. More...
 
class  InvalidArgumentException
 An exception that is thrown, if a provided argument is not valid. 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...
 
struct  ResizeEventArgs
 Stores event arguments of a window resize event. More...
 
class  Resource
 Implements the IResource interface. More...
 
class  RuntimeException
 An exception that is thrown, if a requested operation could not be executed. More...
 
class  SharedObject
 Base class for an object that can be shared. More...
 
struct  type_switch
 A switch that can be used to select a callable from a parameter type. More...
 

Concepts

concept  backend
 Concept that can be used to refer to backend implementations.
 
concept  is_covariant
 Evaluates if a type TCovariant behaves covariant to a value type TValue . In this context, covariance is expressed as the type TCovariant can be assigned a value of type TValue or can be constructed from a value of TValue .
 
concept  covariant_forward_iterator
 Evaluates, if an iterator of type TIterator iterates values that are covariant to TValue .
 

Typedefs

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

Enumerations

enum class  Platform : std::uint8_t { None = 0x00 , Win32 = 0x01 , Other = 0xFF }
 
enum class  BackendType : std::uint8_t { Rendering = 0x01 , Other = 0xFF }
 
enum class  BackendState : std::uint8_t { Inactive = 0x01 , Active = 0x02 }
 

Functions

template<class T >
constexpr UniquePtr< T > makeUnique ()
 Creates a new unique pointer.
 
template<class T , class... TArgs>
constexpr UniquePtr< T > makeUnique (TArgs &&... _args)
 Creates a new unique pointer.
 
template<class T >
constexpr SharedPtr< T > makeShared ()
 Creates a new shared pointer.
 
template<class T , class... TArgs>
constexpr SharedPtr< T > makeShared (TArgs &&... _args)
 Creates a new shared pointer.
 
template<class T >
constexpr SharedPtr< T > asShared (UniquePtr< T > &&ptr)
 Transfers a unique pointer to a shared pointer. The unique pointer will be released during this process.
 
constexpr auto Join (std::ranges::input_range auto &&elements, StringView delimiter=""sv)
 
constexpr auto WJoin (std::ranges::input_range auto &&elements, WStringView delimiter=L""sv)
 
consteval std::uint64_t operator""_hash (const char *string, size_t chars) noexcept
 Computes the FNVa hash for string .
 
consteval std::uint64_t operator""_hash (const wchar_t *string, size_t chars) noexcept
 Computes the FNVa hash for string .
 
WString Widen (StringView utf8)
 Converts an UTF-8 single-byte encoded string into an UTF-16 representation.
 
String Narrow (WStringView utf16)
 Converts an UTF-16 multi-byte encoded string into an UTF-8 representation.
 

Variables

constexpr std::array VALID_BACKEND_TYPES { BackendType::Rendering }
 

Typedef Documentation

◆ Array

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

Represents a dynamic array.

Template Parameters
TThe type of the array elements.

◆ Dictionary

template<class TKey , class TVal >
using LiteFX::Dictionary = 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.

◆ Generator

template<typename T , typename TVal = void>
using LiteFX::Generator = std::generator<T, TVal>

Describes an intermediate container for elements of type T .

Template Parameters
TThe type of the container elements.
TValThe type of the yielded value.

◆ Handle

using LiteFX::Handle = void*

Represents a handle type.

◆ Optional

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

Represents an optional value.

Template Parameters
TThe type of the optional value.

◆ Queue

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

Represents a queue.

Template Parameters
TThe type of the queue elements.

◆ Ref

template<class T >
using LiteFX::Ref = std::reference_wrapper<T>

Represents a copyable and assignable reference wrapper.

Template Parameters
TThe base type of the reference.

◆ SharedPtr

template<class T >
using LiteFX::SharedPtr = 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 = std::span<T>

Represents a view of an array.

Template Parameters
TThe type of the array elements.

◆ String

using LiteFX::String = std::string

◆ StringView

using LiteFX::StringView = std::string_view

◆ Tuple

template<class... T>
using LiteFX::Tuple = 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 = 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 = 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 = 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 = std::wstring

◆ WStringView

using LiteFX::WStringView = std::wstring_view

Enumeration Type Documentation

◆ BackendState

enum class LiteFX::BackendState : std::uint8_t
strong
Enumerator
Inactive 
Active 

◆ BackendType

enum class LiteFX::BackendType : std::uint8_t
strong
Enumerator
Rendering 
Other 

◆ Platform

enum class LiteFX::Platform : std::uint8_t
strong
Enumerator
None 
Win32 
Other 

Function Documentation

◆ asShared()

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

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.

◆ Join()

auto LiteFX::Join ( std::ranges::input_range auto && elements,
StringView delimiter = ""sv )
constexpr

◆ makeShared() [1/2]

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

Creates a new shared pointer.

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

◆ makeShared() [2/2]

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

Creates a new shared pointer.

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

◆ makeUnique() [1/2]

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

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)
nodiscardconstexpr

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

◆ operator""_hash() [1/2]

std::uint64_t LiteFX::operator""_hash ( const char * string,
size_t chars )
constevalnoexcept

Computes the FNVa hash for string .

Parameters
stringThe string to hash.
charsThe number of characters in the string.
Returns
The FNVa hash for string .

◆ operator""_hash() [2/2]

std::uint64_t LiteFX::operator""_hash ( const wchar_t * string,
size_t chars )
constevalnoexcept

Computes the FNVa hash for string .

Parameters
stringThe string to hash.
charsThe number of characters in the string.
Returns
The FNVa hash for string .

◆ Widen()

WString LiteFX::Widen ( StringView utf8)
inline

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

Parameters
utf8
Returns

◆ WJoin()

auto LiteFX::WJoin ( std::ranges::input_range auto && elements,
WStringView delimiter = L""sv )
constexpr

Variable Documentation

◆ VALID_BACKEND_TYPES

std::array LiteFX::VALID_BACKEND_TYPES { BackendType::Rendering }
constexpr