46 lines
924 B
C++
46 lines
924 B
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
/** Options governing what the main loop object should Tick */
|
|
namespace EMainLoopOptions
|
|
{
|
|
enum Type
|
|
{
|
|
/** No flags set: only update the core ticker */
|
|
CoreTickerOnly = 0,
|
|
|
|
/** Call Tick on Slate */
|
|
UsingSlate = 0x01,
|
|
|
|
/** Default to running Slate if no options passed */
|
|
Default = UsingSlate
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Calls Tick on Slate and the core ticker at a set rate
|
|
*/
|
|
class FMainLoopTiming
|
|
{
|
|
public:
|
|
/**
|
|
* Constructor: set up initial timing values
|
|
*/
|
|
explicit FMainLoopTiming(float IdealTickRate, EMainLoopOptions::Type Options = EMainLoopOptions::Default);
|
|
|
|
/**
|
|
* Tick core application objects and throttle rate as requested in constructor
|
|
*/
|
|
void Tick();
|
|
|
|
private:
|
|
/** Interval between each Tick that we're aiming for */
|
|
float IdealFrameTime;
|
|
|
|
/** Should Slate's Tick be called? */
|
|
bool bTickSlate;
|
|
};
|