// Copyright (c) Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Core/Delegate.h"
#include "Engine/Core/Types/TimeSpan.h"
class Actor;
///
/// Probes rendering service
///
class ProbesRenderer
{
public:
///
/// Time delay between probe updates. Can be used to improve performance by rendering probes less often.
///
static TimeSpan UpdateDelay;
///
/// Timeout after the last probe rendered when resources used to render it should be released.
///
static TimeSpan ReleaseTimeout;
static Delegate OnRegisterBake;
static Delegate OnFinishBake;
public:
///
/// Register probe to baking service.
///
/// Probe to bake
/// Timeout in seconds left to bake it.
static void Bake(class EnvironmentProbe* probe, float timeout = 0);
///
/// Register probe to baking service.
///
/// Probe to bake
/// Timeout in seconds left to bake it.
static void Bake(class SkyLight* probe, float timeout = 0);
};