Lysa  0.0
Lysa 3D Engine
lysa Namespace Reference

Classes

struct  AABB
 
class  AABBCollisionShape
 
class  Animation
 
class  AnimationLibrary
 
struct  AnimationTrack
 
struct  AnimationTrackKeyValue
 
class  AssetsPack
 
class  AsyncQueue
 
class  AsyncTasksPool
 
class  BPLayerInterfaceImpl
 
class  BloomPass
 
struct  BlurData
 
class  BoxCollisionShape
 
class  CASPass
 
struct  Camera
 
class  CollisionObject
 
struct  CollisionObjectEvent
 
class  CollisionShape
 
struct  CollisionSubShape
 
class  ContactListener
 
struct  Context
 
struct  ContextConfiguration
 
class  ConvexHullCollisionShape
 
class  DebugRenderer
 
class  DeferredRenderer
 
class  DeferredTasksBuffer
 
class  DepthPrepass
 
class  DeviceMemoryArray
 
class  DirectoryWatcher
 
struct  DirectoryWatcherEvent
 
class  DisplayAttachment
 
struct  DrawCommand
 
struct  Environment
 
struct  Event
 
struct  EventHandler
 
class  EventManager
 
class  Exception
 
class  FXAAPass
 
class  Font
 
struct  FontParams
 
class  ForwardColorPass
 
class  ForwardRenderer
 
struct  Frustum
 
class  FrustumCulling
 
class  GBufferPass
 
class  GammaCorrectionPass
 
class  GlobalDescriptorSet
 
struct  GraphicPipelineData
 
class  HostVisibleMemoryArray
 
class  Image
 
class  ImageManager
 
struct  ImageTexture
 
class  Input
 
struct  InputAction
 
struct  InputActionEntry
 
struct  InputEvent
 
struct  InputEventGamepadButton
 
struct  InputEventKey
 
struct  InputEventMouseButton
 
struct  InputEventMouseMotion
 
struct  InputEventTextInput
 
struct  InstanceData
 
class  JoltPhysicsEngine
 
class  JoltPhysicsWorld
 
struct  LayerCollideWith
 
struct  LayerCollisionTable
 
struct  Light
 
struct  LightData
 
class  LightingPass
 
class  Log
 
class  LogStream
 
class  LogStreamBuf
 
struct  LoggingConfiguration
 
class  Lysa
 
struct  MainLoopEvent
 
struct  ManagedResource
 
class  Material
 
struct  MaterialData
 
class  MaterialManager
 
class  MemoryArray
 
struct  MemoryBlock
 
class  Mesh
 
class  MeshCollisionShape
 
class  MeshInstance
 
struct  MeshInstanceData
 
class  MeshManager
 
struct  MeshSurface
 
struct  MeshSurfaceData
 
class  ObjectLayerPairFilterImpl
 
class  ObjectVsBroadPhaseLayerFilterImpl
 
class  PhysXPhysicsEngine
 
class  PhysXPhysicsWorld
 
class  PhysicsEngine
 
struct  PhysicsEngineConfiguration
 
class  PhysicsWorld
 
class  PostProcessing
 
class  RayCast
 
struct  Rect
 
class  RenderTarget
 
struct  RenderTargetConfiguration
 
struct  RenderTargetEvent
 
struct  RenderView
 
class  Renderer
 
struct  RendererConfiguration
 
class  RenderingWindow
 
struct  RenderingWindowConfiguration
 
struct  RenderingWindowEvent
 
class  Renderpass
 
struct  Resource
 
struct  ResourcesCapacity
 
class  ResourcesManager
 
class  ResourcesRegistry
 
class  SMAAPass
 
class  SSAOPass
 
class  SSRPass
 
class  Samplers
 
class  Scene
 
struct  SceneConfiguration
 
struct  SceneData
 
class  SceneFrameData
 
class  ShaderMaterial
 
class  ShaderMaterialPass
 
class  ShadowMapPass
 
class  SphereCollisionShape
 
class  StandardMaterial
 
class  StaticCompoundCollisionShape
 
class  TAAPass
 
struct  TextureInfoData
 
class  TransparencyPass
 
class  UniqueResource
 
class  UnmanagedResource
 
class  Vector2DRenderer
 
class  Vector3DRenderer
 
struct  Vertex
 
struct  VertexData
 
class  VirtualFS
 
struct  VirtualFSConfiguration
 

Typedefs

using event_type = std::string
 
using EventHandlerCallback = std::function< void (Event &)>
 
using uint8 = std::uint8_t
 
using uint16 = std::uint16_t
 
using uint32 = std::uint32_t
 
using uint64 = std::uint64_t
 
using int8 = std::int8_t
 
using int16 = std::int16_t
 
using int32 = std::int32_t
 
using int64 = std::int64_t
 
using size_t = std::size_t
 
using unique_id = int64
 
using pipeline_id = uint32
 
using collision_layer = uint32
 

Enums

enum class  InputEventType : uint8 {
  KEY = 0, MOUSE_MOTION = 1, MOUSE_BUTTON = 2, GAMEPAD_BUTTON = 3,
  TEXT_INPUT = 4
}
 
enum class  KeyModifier : uint8 { SHIFT = 0x0001, CONTROL = 0x0002, ALT = 0x0004, SUPER = 0x0008 }
 
enum  Key : uint32 {
  KEY_NONE = 0, KEY_SPACE = 1, KEY_DASH = 2, KEY_PIPE = 3,
  KEY_APOSTROPHE = 4, KEY_COMMA = 5, KEY_PERIOD = 6, KEY_QUESTIONMARK = 7,
  KEY_0 = 8, KEY_1 = 9, KEY_2 = 10, KEY_3 = 11,
  KEY_4 = 12, KEY_5 = 13, KEY_6 = 14, KEY_7 = 15,
  KEY_8 = 16, KEY_9 = 17, KEY_SEMICOLON = 18, KEY_EQUAL = 19,
  KEY_A = 20, KEY_B = 21, KEY_C = 22, KEY_D = 23,
  KEY_E = 24, KEY_F = 25, KEY_G = 26, KEY_H = 27,
  KEY_I = 28, KEY_J = 29, KEY_K = 30, KEY_L = 31,
  KEY_M = 32, KEY_N = 33, KEY_O = 34, KEY_P = 35,
  KEY_Q = 36, KEY_R = 37, KEY_S = 38, KEY_T = 39,
  KEY_U = 40, KEY_V = 41, KEY_W = 42, KEY_X = 43,
  KEY_Y = 44, KEY_Z = 45, KEY_LEFT_BRACKET = 46, KEY_BACKSLASH = 47,
  KEY_RIGHT_BRACKET = 48, KEY_GRAVE_ACCENT = 49, KEY_ESCAPE = 50, KEY_ENTER = 51,
  KEY_TAB = 52, KEY_BACKSPACE = 53, KEY_INSERT = 54, KEY_DELETE = 55,
  KEY_RIGHT = 56, KEY_LEFT = 57, KEY_DOWN = 58, KEY_UP = 59,
  KEY_PAGE_UP = 60, KEY_PAGE_DOWN = 61, KEY_HOME = 62, KEY_END = 63,
  KEY_CAPS_LOCK = 64, KEY_SCROLL_LOCK = 65, KEY_NUM_LOCK = 66, KEY_PRINT_SCREEN = 67,
  KEY_PAUSE = 68, KEY_F1 = 69, KEY_F2 = 70, KEY_F3 = 71,
  KEY_F4 = 72, KEY_F5 = 73, KEY_F6 = 74, KEY_F7 = 75,
  KEY_F8 = 76, KEY_F9 = 77, KEY_F10 = 78, KEY_F11 = 79,
  KEY_F12 = 80, KEY_KP_0 = 81, KEY_KP_1 = 82, KEY_KP_2 = 83,
  KEY_KP_3 = 84, KEY_KP_4 = 85, KEY_KP_5 = 86, KEY_KP_6 = 87,
  KEY_KP_7 = 88, KEY_KP_8 = 89, KEY_KP_9 = 90, KEY_KP_PERIOD = 91,
  KEY_KP_DIVIDE = 92, KEY_KP_MULTIPLY = 93, KEY_KP_SUBTRACT = 94, KEY_KP_ADD = 95,
  KEY_KP_ENTER = 96, KEY_KP_EQUAL = 97, KEY_LEFT_SHIFT = 98, KEY_LEFT_CONTROL = 99,
  KEY_LEFT_ALT = 100, KEY_LEFT_SUPER = 101, KEY_RIGHT_SHIFT = 102, KEY_RIGHT_CONTROL = 103,
  KEY_RIGHT_ALT = 104, KEY_RIGHT_SUPER = 105
}
 
enum class  MouseButton : uint8 {
  NONE = 0b0000, LEFT = 0b0001, RIGHT = 0b0010, MIDDLE = 0b0100,
  WHEEL = 0b1000
}
 
enum class  GamepadButton : uint8 {
  A = 0, CROSS = A, B = 1, CIRCLE = B,
  X = 2, SQUARE = X, Y = 3, TRIANGLE = Y,
  LB = 4, L1 = LB, RB = 5, R1 = RB,
  BACK = 6, SHARE = BACK, START = 7, MENU = START,
  LT = 8, L2 = LT, RT = 9, R2 = RT,
  DPAD_UP = 10, DPAD_RIGHT = 11, DPAD_DOWN = 12, DPAD_LEFT = 13,
  LAST = DPAD_LEFT
}
 
enum class  GamepadAxisJoystick : uint8 { LEFT = 0, RIGHT = 1 }
 
enum class  GamepadAxis : uint8 {
  LEFT_X = 0, LEFT_Y = 1, RIGHT_X = 2, RIGHT_Y = 3,
  LEFT_TRIGGER = 4, RIGHT_TRIGGER = 5, LAST = RIGHT_TRIGGER
}
 
enum class  PhysicsEngineType { JOLT, PHYSX }
 
enum class  CombineMode { AVERAGE = 0, MIN = 1, MAX = 2, MULTIPLY = 3 }
 
enum class  RendererType : uint8 { FORWARD = 0, DEFERRED = 1 }
 
enum class  ToneMappingType : uint8 { NONE = 0, REINHARD = 1, ACES = 2 }
 
enum class  PostProcessAntiAliasingType : uint8 { NONE = 0, FXAA = 1, SMAA = 2 }
 
enum class  AnimationType : uint8 { TRANSLATION = 1, ROTATION = 2, SCALE = 3 }
 
enum class  AnimationInterpolation : uint8 { LINEAR = 0, STEP = 1 }
 
enum class  AnimationLoopMode : uint8 { NONE = 0, LINEAR = 1 }
 
enum class  LightType : int8 { LIGHT_UNKNOWN = -1, LIGHT_DIRECTIONAL = 0, LIGHT_OMNI = 1, LIGHT_SPOT = 2 }
 
enum class  Transparency { DISABLED = 0, ALPHA = 1 }
 
enum class  MouseMode : uint8 { VISIBLE = 0, VISIBLE_CAPTURED = 1, HIDDEN = 2, HIDDEN_CAPTURED = 3 }
 
enum class  MouseCursor : uint8 { ARROW = 0, WAIT = 1, RESIZE_H = 2, RESIZE_V = 3 }
 
enum class  RenderingWindowMode : uint32 { WINDOWED = 0, WINDOWED_MAXIMIZED = 1, WINDOWED_FULLSCREEN = 2, FULLSCREEN = 3 }
 
enum  LoggingMode : uint32 { LOGGING_MODE_NONE = 0, LOGGING_MODE_WINDOW = 0x001, LOGGING_MODE_FILE = 0x010, LOGGING_MODE_STDOUT = 0x100 }
 
enum class  LogLevel : int32 {
  TRACE = -1, DEBUG = 0, INFO = 1, GAME1 = 2,
  GAME2 = 3, GAME3 = 4, WARNING = 5, ERROR = 6,
  CRITICAL = 7, INTERNAL = 100
}
 

Functions

void vireoDebugCallback (const vireo::DebugLevel level, const std::string &message)
 
constexpr Contextctx ()
 
template<typename Expr >
constexpr void assert (Expr &&, const std::string_view, const std::source_location &=std::source_location::current ()) noexcept
 
float3 euler_angles (quaternion q)
 
float radians (const float angle)
 
bool almost_equals (const float f1, const float f2)
 
bool almost_equals (const quaternion &f1, const quaternion &f2)
 
float4x4 look_at (const float3 &eye, const float3 &center, const float3 &up)
 
float4x4 perspective (float fov, float aspect, float near, float far)
 
float4x4 orthographic (float left, float right, float top, float bottom, float znear, float zfar)
 
quaternion to_quaternion (const float4x4 &m)
 
uint32 randomi (uint32 max)
 
float randomf (float max)
 
float2 mul (const float2 &a, const float b)
 
float3 mul (const float3 &a, const float b)
 
float4 mul (const float4 &a, const float b)
 
float2 mul (const float a, const float2 &b)
 
float3 mul (const float a, const float3 &b)
 
float4 mul (const float a, const float4 &b)
 
float2 add (const float2 &a, const float2 &b)
 
float3 add (const float3 &a, const float3 &b)
 
float4 add (const float4 &a, const float4 &b)
 
consteval bool is_windows ()
 
float get_current_time_milliseconds ()
 
std::string sanitize_name (const std::string &name)
 
bool dir_exists (const std::string &dirName)
 
float3 to_float3 (const std::string &str)
 
float4 to_float4 (const std::string &str)
 
std::vector< std::string_view > split (std::string_view str, char delimiter)
 
std::string to_hexstring (const void *ptr)
 
std::string to_hexstring (uint32 ptr)
 
std::string to_string (const wchar_t *wstr)
 
std::string to_string (const float3 &vec)
 
std::string to_string (const float2 &vec)
 
std::string to_string (const quaternion &vec)
 
std::string to_string (const float4 &vec)
 
std::u32string to_utf32 (const std::string &utf8)
 
std::string to_lower (const std::string &str)
 
float halton_sequence (const uint32 index, const uint32 base)
 

Variables

const float3 AXIS_X {1.0f, 0.0f, 0.0f}
 
const float3 AXIS_Y {0.0f, 1.0f, 0.0f}
 
const float3 AXIS_Z {0.0f, 0.0f, 1.0f}
 
const float3 AXIS_UP = {0.0f, 1.0f, 0.0f}
 
const float3 AXIS_DOWN = {0.0f, -1.0f, 0.0f}
 
const float3 AXIS_FRONT = {0.0f, 0.0f, -1.0f}
 
const float3 AXIS_BACK = {0.0f, 0.0f, 1.0f}
 
const float3 AXIS_RIGHT = {1.0f, 0.0f, 0.0f}
 
const float3 AXIS_LEFT = {-1.0f, 0.0f, 0.0f}
 
const float2 FLOAT2ZERO {0.0f}
 
const float3 FLOAT3ZERO {0.0f}
 
const float4 FLOAT4ZERO {0.0f}
 
const quaternion QUATERNION_IDENTITY {0.0f, 0.0f, 0.0f, 1.0f}
 
const float3x3 TRANSFORM_BASIS {1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f}
 
constexpr float HALF_PI = std::numbers::pi_v<float> / 2.0f
 
constexpr uint32 PHYSX_MAX_COLLISIONS_LAYERS {100}
 
const float3 DEFAULT_CLEAR_COLOR {0.0f, 0.0f, 0.0f}
 
constexpr float VECTOR_2D_SCREEN_SIZE {1000.0f}
 
constexpr int SHADER_MATERIAL_MAX_PARAMETERS {4}
 
constexpr pipeline_id DEFAULT_PIPELINE_ID {0}
 
constexpr unique_id INVALID_ID {-1}
 
constexpr bool ENABLE_LOG = true
 Indicates at compile-time that logging is enabled. More...
 
constexpr Rect RECT_FULLSCREEN {0.0f, 0.0f, -1.0f, -1.0f}
 

Typedef Documentation

using event_type = std::string

Alias representing an application-defined event kind.

using EventHandlerCallback = std::function<void(Event&)>

Callback signature for event handlers.

using int16 = std::int16_t
using int32 = std::int32_t
using int64 = std::int64_t
using int8 = std::int8_t
using size_t = std::size_t
using uint16 = std::uint16_t
using uint32 = std::uint32_t
using uint64 = std::uint64_t
using uint8 = std::uint8_t
using unique_id = int64

Enumeration Type Documentation

enum class AnimationInterpolation : uint8
strong

Interpolation type to apply when calculating animation values

Enum ValuesDocumentation
LINEAR 

The animated values are linearly interpolated between keyframes.

STEP 

The animated values remain constant to the output of the first keyframe, until the next keyframe.

enum class AnimationLoopMode : uint8
strong

Animation loop mode

Enum ValuesDocumentation
NONE 

No loop (default)

LINEAR 

Restart from the start of the track

enum class AnimationType : uint8
strong

Animation type for an animation track

Enum ValuesDocumentation
TRANSLATION 

The values are the translation along the X, Y, and Z axes.

ROTATION 

The values are a quaternion in the order x, y, z, w where w is the scalar.

SCALE 

The values are scaling factors along the X, Y, and Z axes.

enum class CombineMode
strong
Enum ValuesDocumentation
AVERAGE 
MIN 
MAX 
MULTIPLY 
enum class GamepadAxis : uint8
strong

Gamepad axis & triggers

Enum ValuesDocumentation
LEFT_X 

Left stick/joystick X.

LEFT_Y 

Left stick/joystick Y.

RIGHT_X 

Right stick/joystick X.

RIGHT_Y 

Right stick/joystick Y.

LEFT_TRIGGER 
RIGHT_TRIGGER 
LAST 
enum class GamepadAxisJoystick : uint8
strong

Gamepad thumbs joysticks

Enum ValuesDocumentation
LEFT 

Left stick/joystick.

RIGHT 

Right stick/joystick.

enum class GamepadButton : uint8
strong

Gamepas buttons

Enum ValuesDocumentation

A or X.

CROSS 

A or X.

B or ○.

CIRCLE 

B or ○.

X or □.

SQUARE 

X or □.

Y or △.

TRIANGLE 

Y or △.

LB 

Left shoulder/bumper.

L1 

Left shoulder/bumper.

RB 

Right shoulder/bumper.

R1 

Right shoulder/bumper.

BACK 

Back/Share.

SHARE 

Back/Share.

START 

Start/Menu.

MENU 

Start/Menu.

LT 

Left trigger.

L2 

Left trigger.

RT 

Right trigger.

R2 

Right trigger.

DPAD_UP 

Directional hat ↑.

DPAD_RIGHT 

Directional hat →.

DPAD_DOWN 

Directional hat ↓.

DPAD_LEFT 

Directional hat ←.

LAST 
enum class InputEventType : uint8
strong

Source of an input event

Enum ValuesDocumentation
KEY 

A key have been pressed or released.

MOUSE_MOTION 

The mouse cursor moved.

MOUSE_BUTTON 

A mouse button have been pressed or released.

GAMEPAD_BUTTON 

A gamepad button have been pressed or released.

TEXT_INPUT 

User input.

enum Key : uint32

Key codes, QWERTY layout to keep the WASD keys

Enum ValuesDocumentation
KEY_NONE 
KEY_SPACE 

Space.

KEY_DASH 
KEY_PIPE 

|

KEY_APOSTROPHE 

'

KEY_COMMA 

,

KEY_PERIOD 

$.

KEY_QUESTIONMARK 

?

KEY_0 

0

KEY_1 

1

KEY_2 

2

KEY_3 

3

KEY_4 

4

KEY_5 

5

KEY_6 

6

KEY_7 

7

KEY_8 

8

KEY_9 

9

KEY_SEMICOLON 

;

KEY_EQUAL 

=

KEY_A 

A.

KEY_B 

B.

KEY_C 

C.

KEY_D 

D.

KEY_E 

E.

KEY_F 

F.

KEY_G 

G.

KEY_H 

H.

KEY_I 

I.

KEY_J 

J.

KEY_K 

K.

KEY_L 

L.

KEY_M 

M.

KEY_N 

N.

KEY_O 

O.

KEY_P 

P.

KEY_Q 

Q.

KEY_R 

R.

KEY_S 

S.

KEY_T 

T.

KEY_U 

U.

KEY_V 

V.

KEY_W 

W.

KEY_X 

X.

KEY_Y 

Y.

KEY_Z 

Z.

KEY_LEFT_BRACKET 

[

KEY_BACKSLASH 

backslash

KEY_RIGHT_BRACKET 

]

KEY_GRAVE_ACCENT 
KEY_ESCAPE 

ESC.

KEY_ENTER 

KEY_TAB 

Tabulation.

KEY_BACKSPACE 

back space

KEY_INSERT 

Insert.

KEY_DELETE 

Delete.

KEY_RIGHT 

KEY_LEFT 

KEY_DOWN 

KEY_UP 

KEY_PAGE_UP 

Page ↑.

KEY_PAGE_DOWN 

Page ↓.

KEY_HOME 

Home/Start.

KEY_END 

End.

KEY_CAPS_LOCK 

Left caps lock.

KEY_SCROLL_LOCK 

Scroll lock.

KEY_NUM_LOCK 

Numeric keypad lock.

KEY_PRINT_SCREEN 

Print.

KEY_PAUSE 

Pause.

KEY_F1 

F1.

KEY_F2 

F2.

KEY_F3 

F3.

KEY_F4 

F4.

KEY_F5 

F5.

KEY_F6 

F6.

KEY_F7 

F7.

KEY_F8 

F8.

KEY_F9 

F9.

KEY_F10 

F10.

KEY_F11 

F11.

KEY_F12 

F12.

KEY_KP_0 

Keypad 0.

KEY_KP_1 

Keypad 1.

KEY_KP_2 

Keypad 2.

KEY_KP_3 

Keypad 3.

KEY_KP_4 

Keypad 4.

KEY_KP_5 

Keypad 5.

KEY_KP_6 

Keypad 6.

KEY_KP_7 

Keypad 7.

KEY_KP_8 

Keypad 8.

KEY_KP_9 

Keypad 9.

KEY_KP_PERIOD 

Keypad .

KEY_KP_DIVIDE 

Keypad /.

KEY_KP_MULTIPLY 

Keypad *.

KEY_KP_SUBTRACT 

Keypad -.

KEY_KP_ADD 

Keypad +.

KEY_KP_ENTER 

Keypad ⏎.

KEY_KP_EQUAL 

Keypad =.

KEY_LEFT_SHIFT 

Left Shift.

KEY_LEFT_CONTROL 

Left Control.

KEY_LEFT_ALT 

Left Alt.

KEY_LEFT_SUPER 

Left Super/Windows.

KEY_RIGHT_SHIFT 

Right Shift.

KEY_RIGHT_CONTROL 

Right Control.

KEY_RIGHT_ALT 

Right Alt.

KEY_RIGHT_SUPER 

Right Super/Windows.

enum class KeyModifier : uint8
strong

Keyboard modifier keys

Enum ValuesDocumentation
SHIFT 

Left & right shift keys.

CONTROL 

Left & right control keys.

ALT 

Left & right alt keys.

SUPER 

Super/Windows key.

enum class LightType : int8
strong

Light type

Enum ValuesDocumentation
LIGHT_UNKNOWN 

Unknown light type

LIGHT_DIRECTIONAL 

Directional light

LIGHT_OMNI 

Omni (point) light

LIGHT_SPOT 

Spot light

Where to log messages

Enum ValuesDocumentation
LOGGING_MODE_NONE 

Disable logging.

LOGGING_MODE_WINDOW 

Open an external Window (on the first screen if you have multiple screen) to display the log messages. Log message appearance in the Window can be deferred to the next frame if the log message is sent from a thread different from the main thread

LOGGING_MODE_FILE 

Log the messages into a file named 'log.txt'

LOGGING_MODE_STDOUT 

Log the messages to std::cout. WIN32 applications needs to be linked with -mconsole

enum class LogLevel : int32
strong

Log levels

Enum ValuesDocumentation
TRACE 
DEBUG 
INFO 
GAME1 
GAME2 
GAME3 
WARNING 
ERROR 
CRITICAL 
INTERNAL 
enum class MouseButton : uint8
strong

Mouse buttons

Enum ValuesDocumentation
NONE 
LEFT 

Left.

RIGHT 

Right.

MIDDLE 

Middle.

WHEEL 

Wheel. Pressed==true means rotated backward.

enum class MouseCursor : uint8
strong

Mouse cursors types

Enum ValuesDocumentation
ARROW 

"Normal" arrow cursor

WAIT 

Waiting cursor.

RESIZE_H 

Horizontal resize cursor.

RESIZE_V 

Vertical resize cursor.

enum class MouseMode : uint8
strong

Mouse visibility & capture mode

Enum ValuesDocumentation
VISIBLE 

Makes the mouse cursor visible.

VISIBLE_CAPTURED 

Confines the mouse cursor to the game Window, and make it visible.

HIDDEN 

Makes the mouse cursor hidden.

HIDDEN_CAPTURED 

Confines the mouse cursor to the game Window, and make it hidden.

enum class PhysicsEngineType
strong

Lists the available physics backends supported by the engine.

  • JOLT: Uses the Jolt Physics library.
  • PHYSX: Uses NVIDIA PhysX.
Enum ValuesDocumentation
JOLT 
PHYSX 
enum class PostProcessAntiAliasingType : uint8
strong
Enum ValuesDocumentation
NONE 
FXAA 
SMAA 
enum class RendererType : uint8
strong
Enum ValuesDocumentation
FORWARD 
DEFERRED 
enum class RenderingWindowMode : uint32
strong

Rendering Window mode

Enum ValuesDocumentation
WINDOWED 

A Window with a border and a title that can be minimized.

WINDOWED_MAXIMIZED 

A maximized Window with a border and a title that can be minimized.

WINDOWED_FULLSCREEN 

A maximized Window without a border and without a title.

FULLSCREEN 

A full-screen Window. The screen resolution will be changed.

enum class ToneMappingType : uint8
strong
Enum ValuesDocumentation
NONE 
REINHARD 
ACES 
enum class Transparency
strong

A Material transparency mode Any transparency mode other than Transparency::DISABLED has a greater performance impact compared to opaque rendering.

Enum ValuesDocumentation
DISABLED 

The material will not use transparency. This is the fastest to render.

ALPHA 

The material will use the texture's alpha values for transparency.

Function Documentation

float2 lysa::add ( const float2 &  a,
const float2 &  b 
)
float3 lysa::add ( const float3 &  a,
const float3 &  b 
)
float4 lysa::add ( const float4 &  a,
const float4 &  b 
)
bool lysa::almost_equals ( const float  f1,
const float  f2 
)
inline

Compare two floating-point values with a relative tolerance.

Uses max(abs(a), abs(b)) scaled by 1e-4 as tolerance.

Parameters
f1First value.
f2Second value.
Returns
true if the values are approximately equal; false otherwise.
bool lysa::almost_equals ( const quaternion &  f1,
const quaternion &  f2 
)
inline

Approximate equality for quaternions.

Each component is compared using almostEquals(float, float).

Parameters
f1First quaternion.
f2Second quaternion.
Returns
true if all components are approximately equal; false otherwise.
constexpr void lysa::assert ( Expr &&  ,
const std::string_view  ,
const std::source_location &  = std::source_location::current() 
)
constexprnoexcept

No-op placeholder for release builds.

constexpr Context& lysa::ctx ( )
constexpr
bool lysa::dir_exists ( const std::string &  dirName)

Tests whether a directory exists at the given path.

Parameters
dirNameOS path to check.
Returns
True if the directory exists; false otherwise.
float3 lysa::euler_angles ( quaternion  q)

Convert a unit quaternion to Euler angles (XYZ order).

The returned angles are in radians and follow the conventional pitch (X), yaw (Y), roll (Z) ordering.

Parameters
qInput quaternion. It does not need to be normalized; the function normalizes it internally.
Returns
float3 containing {pitch, yaw, roll} in radians.
Note
Angles are wrapped to the principal values typically produced by atan2/asin and may exhibit gimbal lock at +/- 90 degrees pitch.
float lysa::get_current_time_milliseconds ( )

Returns the current time in milliseconds.

Returns
Elapsed time in milliseconds as a floating‑point value.
float lysa::halton_sequence ( const uint32  index,
const uint32  base 
)

Returns a number in a halton sequence

https://en.wikipedia.org/wiki/Halton_sequence

consteval bool lysa::is_windows ( )
float4x4 lysa::look_at ( const float3 &  eye,
const float3 &  center,
const float3 &  up 
)

Build a right-handed look-at view matrix.

Parameters
eyeCamera position in world space.
centerTarget point the camera looks at.
upWorld up direction.
Returns
4x4 view matrix.
float2 lysa::mul ( const float  a,
const float2 &  b 
)
float3 lysa::mul ( const float  a,
const float3 &  b 
)
float4 lysa::mul ( const float  a,
const float4 &  b 
)
float2 lysa::mul ( const float2 &  a,
const float  b 
)
float3 lysa::mul ( const float3 &  a,
const float  b 
)
float4 lysa::mul ( const float4 &  a,
const float  b 
)
float4x4 lysa::orthographic ( float  left,
float  right,
float  top,
float  bottom,
float  znear,
float  zfar 
)

Build a right-handed orthographic projection matrix.

Parameters
leftLeft plane.
rightRight plane.
topTop plane.
bottomBottom plane.
znearNear clipping plane.
zfarFar clipping plane.
Returns
4x4 orthographic projection matrix.
float4x4 lysa::perspective ( float  fov,
float  aspect,
float  near,
float  far 
)

Build a right-handed perspective projection matrix.

Parameters
fovVertical field of view in radians.
aspectAspect ratio (width/height).
nearNear clipping plane distance (> 0).
farFar clipping plane distance (> near).
Returns
4x4 projection matrix.
float lysa::radians ( const float  angle)

Convert a scalar angle in degrees to radians.

Convenience overload that forwards to the vectorized version.

Parameters
angleAngle in degrees.
Returns
Angle in radians.
float lysa::randomf ( float  max)

Generate a random float in [0.0f, max].

Parameters
maxInclusive upper bound.
Returns
Pseudo-random value uniformly distributed in [0.0f, max].
uint32 lysa::randomi ( uint32  max)

Generate a random unsigned integer in [0, max].

Parameters
maxInclusive upper bound.
Returns
Pseudo-random value uniformly distributed in [0, max].
std::string lysa::sanitize_name ( const std::string &  name)

Produces a sanitized version of a name suitable for identifiers or paths.

Typical sanitization removes or replaces characters that are not alphanumeric, underscore, hyphen or dot, and collapses whitespace.

Parameters
nameInput name to sanitize.
Returns
A sanitized, ASCII‑safe string.
std::vector<std::string_view> lysa::split ( std::string_view  str,
char  delimiter 
)

Splits a string view into sub‑views using a single‑character delimiter.

The returned views reference the original memory in str; no allocations are performed for the tokens themselves. Callers must ensure that the lifetime of the original string outlives the returned views.

Consecutive delimiters yield empty tokens.

Parameters
strSource string view to split.
delimiterDelimiter character (e.g., ',').
Returns
Vector of string_view tokens pointing into str.
float3 lysa::to_float3 ( const std::string &  str)

Parses a float3 from a textual representation.

Expected formats typically include:

  • "x y z"
  • "x,y,z"
Parameters
strInput string containing three floating‑point numbers.
Returns
Parsed float3 value; undefined behavior if the format is invalid.
float4 lysa::to_float4 ( const std::string &  str)

Parses a float4 from a textual representation.

Expected formats typically include:

  • "x y z w"
  • "x,y,z,w"
Parameters
strInput string containing four floating‑point numbers.
Returns
Parsed float4 value; undefined behavior if the format is invalid.
std::string lysa::to_hexstring ( const void *  ptr)

Returns a hexadecimal textual representation of a memory address.

Parameters
ptrPointer value to format.
Returns
Hex string for ptr.
std::string lysa::to_hexstring ( uint32  ptr)

Returns a hexadecimal textual representation of an integer value.

Parameters
ptrInteger value to format in hex.
Returns
Hex string for the input value.
std::string lysa::to_lower ( const std::string &  str)

Returns a lowercase copy of the input ASCII/UTF‑8 string.

Locale‑dependent rules may not be applied; intended for identifiers and case‑insensitive comparisons in engine code.

Parameters
strSource string.
Returns
Lowercased copy of str.
quaternion lysa::to_quaternion ( const float4x4 &  m)

Extract a quaternion from a 4x4 rotation matrix.

Converts the upper-left 3x3 rotation part of the 4x4 matrix into a unit quaternion.

Parameters
mInput 4x4 matrix.
Returns
Unit quaternion representing the rotation.
std::string lysa::to_string ( const float2 &  vec)

Returns a human‑readable string for a float2.

Parameters
vecVector to print.
Returns
String representation of vec.
std::string lysa::to_string ( const float3 &  vec)

Returns a human‑readable string for a float3.

Parameters
vecVector to print.
Returns
String representation of vec.
std::string lysa::to_string ( const float4 &  vec)

Returns a human‑readable string for a float4.

Parameters
vecVector to print.
Returns
String representation of vec.
std::string lysa::to_string ( const quaternion &  vec)

Returns a human‑readable string for a quaternion (x, y, z, w order).

Parameters
vecQuaternion to print.
Returns
String representation of vec.
std::string lysa::to_string ( const wchar_t *  wstr)

Converts a wide‑character C‑string to a UTF‑8 std::string.

Parameters
wstrNull‑terminated wide string.
Returns
UTF‑8 encoded string.
std::u32string lysa::to_utf32 ( const std::string &  utf8)

Converts a UTF‑8 string to UTF‑32 (char32_t) string.

Parameters
utf8Source string encoded in UTF‑8.
Returns
UTF‑32 string (UCS‑4 code points).
void lysa::vireoDebugCallback ( const vireo::DebugLevel  level,
const std::string &  message 
)

Variable Documentation

const float3 AXIS_BACK = {0.0f, 0.0f, 1.0f}

BACK Axis

const float3 AXIS_DOWN = {0.0f, -1.0f, 0.0f}

DOWN Axis

const float3 AXIS_FRONT = {0.0f, 0.0f, -1.0f}

FRONT Axis

const float3 AXIS_LEFT = {-1.0f, 0.0f, 0.0f}

LEFT Axis

const float3 AXIS_RIGHT = {1.0f, 0.0f, 0.0f}

RIGHT Axis

const float3 AXIS_UP = {0.0f, 1.0f, 0.0f}

UP Axis

const float3 AXIS_X {1.0f, 0.0f, 0.0f}

X Axis

const float3 AXIS_Y {0.0f, 1.0f, 0.0f}

Y Axis

const float3 AXIS_Z {0.0f, 0.0f, 1.0f}

Z Axis

const float3 DEFAULT_CLEAR_COLOR {0.0f, 0.0f, 0.0f}

Default clear color for windows and color frame buffers

constexpr pipeline_id DEFAULT_PIPELINE_ID {0}
constexpr
constexpr bool ENABLE_LOG = true
constexpr

Indicates at compile-time that logging is enabled.

const float2 FLOAT2ZERO {0.0f}

2D zero initialized vector

const float3 FLOAT3ZERO {0.0f}

3D zero initialized vector

const float4 FLOAT4ZERO {0.0f}

4D zero initialized vector

constexpr float HALF_PI = std::numbers::pi_v<float> / 2.0f
constexpr
constexpr unique_id INVALID_ID {-1}
constexpr
constexpr uint32 PHYSX_MAX_COLLISIONS_LAYERS {100}
constexpr
const quaternion QUATERNION_IDENTITY {0.0f, 0.0f, 0.0f, 1.0f}

Unit quaternion with no rotation

constexpr Rect RECT_FULLSCREEN {0.0f, 0.0f, -1.0f, -1.0f}
constexpr
constexpr int SHADER_MATERIAL_MAX_PARAMETERS {4}
constexpr
const float3x3 TRANSFORM_BASIS {1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f}

The Basis of 3D transform. It is composed of 3 axes (Basis.x, Basis.y, and Basis.z). Together, these represent the transform's rotation, scale, and shear.

constexpr float VECTOR_2D_SCREEN_SIZE {1000.0f}
constexpr

The screen size for the 2D vector renderer