|
SleakEngine 1.0.0
C++23 multi-backend game engine
|
#include <Light.hpp>
Public Member Functions | |
| Light (const std::string &name="Light") | |
| ~Light () override=default | |
| virtual RenderEngine::LightGPUEntry | BuildGPUData () const =0 |
| Packs this light's parameters into the GPU-side entry used by the lighting constant buffer. | |
| bool | GetCastShadows () const |
| Math::Vector3D | GetColor () const |
| float | GetIntensity () const |
| float | GetLightSize () const |
| float | GetShadowBias () const |
| float | GetShadowNormalBias () const |
| float | GetShadowStrength () const |
| bool | IsEnabled () const |
| bool | IsLight () const override |
| void | SetCastShadows (bool cast) |
| void | SetColor (const Math::Color &color) |
| void | SetColor (float r, float g, float b) |
| void | SetEnabled (bool enabled) |
| void | SetIntensity (float intensity) |
| void | SetLightSize (float size) |
| void | SetShadowBias (float bias) |
| void | SetShadowNormalBias (float bias) |
| void | SetShadowStrength (float strength) |
| Public Member Functions inherited from Sleak::GameObject | |
| GameObject (const std::string &name="GameObject") | |
| ~GameObject () override | |
| void | AddChild (GameObject *child) |
| template<typename T, typename... Args> | |
| void | AddComponent (Args &&... args) |
| Constructs and attaches a component of type T. Warns and no-ops if one already exists. | |
| virtual void | FixedUpdate (float fixedDeltaTime) |
| const List< GameObject * > & | GetChildren () const |
| template<typename T> | |
| T * | GetComponent () |
| Finds the first attached component of type T, or nullptr. | |
| GameObject * | GetParent () const |
| const std::string & | GetTag () const |
| bool | HasChildren () const |
| template<typename T> | |
| bool | HasComponent () |
| True if a component of type T is attached. | |
| bool | HasParent () const |
| virtual void | Initialize () |
| Initializes the object and its components; called once before the first Update. | |
| bool | IsActive () const |
| bool | IsPendingDestroy () const |
| virtual void | LateUpdate (float deltaTime) |
| void | MarkForDestroy () |
| Flags the object for deferred destruction on the next scene pass. | |
| void | RemoveChild (GameObject *child) |
| template<typename T> | |
| void | RemoveComponent () |
| Destroys and detaches the first component of type T, if present. | |
| void | SetActive (bool active) |
| Enables or disables the object, firing OnEnable/OnDisable on its components. | |
| void | SetParent (GameObject *parent) |
| Reparents this object, updating both the old and new parent's child lists. | |
| void | SetTag (const std::string &tag) |
| virtual void | Update (float deltaTime) |
| Public Member Functions inherited from Sleak::Object | |
| Object (const std::string &name="Object") | |
| virtual | ~Object ()=default |
| const std::string & | GetName () const |
| uint64_t | GetUniqueID () const |
| void | SetName (const std::string &value) |
Protected Attributes | |
| bool | m_castShadows = false |
| Math::Vector3D | m_color {1.0f, 1.0f, 1.0f} |
| float | m_intensity = 1.0f |
| bool | m_lightEnabled = true |
| float | m_lightSize = 1.0f |
| float | m_shadowBias = 0.005f |
| float | m_shadowNormalBias = 0.02f |
| float | m_shadowStrength = 1.0f |
| Protected Attributes inherited from Sleak::GameObject | |
| bool | bIsInitialized |
Additional Inherited Members | |
| Static Public Member Functions inherited from Sleak::GameObject | |
| static GameObject * | CreateCapsule (Math::Vector3D position, int segments=16, int rings=8, float height=1, float radius=0.5) |
| static GameObject * | CreateCube (Math::Vector3D position) |
| static GameObject * | CreateCylinder (Math::Vector3D position, int segments=16, float height=1, float radius=0.5) |
| static GameObject * | CreatePlane (Math::Vector3D position, int width=100, int height=100) |
| Built-in primitive factories, mainly for prototyping and debug scenes. | |
| static GameObject * | CreateSphere (Math::Vector3D position, int stack=16, int slices=16) |
| static GameObject * | CreateTorus (Math::Vector3D position, int segments=16, int rings=8, float innerRadius=8, float outerRadius=9) |
Base class for every light type; owns the color/intensity/shadow parameters LightManager uploads to the GPU.
|
explicit |
|
overridedefault |
|
pure virtual |
Packs this light's parameters into the GPU-side entry used by the lighting constant buffer.
Implemented in Sleak::AreaLight, Sleak::DirectionalLight, Sleak::PointLight, and Sleak::SpotLight.
|
inline |
|
inlineoverridevirtual |
Reimplemented from Sleak::GameObject.
| void Sleak::Light::SetColor | ( | const Math::Color & | color | ) |
|
inline |
|
inline |
|
protected |