Files
FlaxEngine/Source/Engine/Graphics/GPUTimerQuery.h
Wojciech Figat a7e428a21c Merge branch 'master' into 1.5
# Conflicts:
#	Content/Shaders/GI/DDGI.flax
#	Content/Shaders/GI/GlobalSurfaceAtlas.flax
#	Content/Shaders/TAA.flax
#	Content/Shaders/VolumetricFog.flax
#	Source/Editor/CustomEditors/Editors/ActorTagEditor.cs
#	Source/Engine/Core/Config/GraphicsSettings.cpp
#	Source/Engine/Engine/PostProcessEffect.cs
#	Source/Engine/Graphics/GPUResourcesCollection.cpp
#	Source/Engine/Graphics/GPUResourcesCollection.h
#	Source/Engine/Graphics/PostProcessBase.h
#	Source/FlaxEngine.Gen.cs
2023-01-10 15:37:55 +01:00

56 lines
1.5 KiB
C++

// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#include "GPUResource.h"
/// <summary>
/// Represents a GPU query that measures execution time of GPU operations.
/// The query will measure any GPU operations that take place between its Begin() and End() calls.
/// </summary>
/// <seealso cref="GPUResource" />
class FLAXENGINE_API GPUTimerQuery : public GPUResource
{
public:
/// <summary>
/// Finalizes an instance of the <see cref="GPUTimerQuery"/> class.
/// </summary>
virtual ~GPUTimerQuery()
{
}
public:
/// <summary>
/// Starts the counter.
/// </summary>
virtual void Begin() = 0;
/// <summary>
/// Stops the counter. Can be called more than once without failing.
/// </summary>
virtual void End() = 0;
/// <summary>
/// Determines whether this query has been completed and has valid result to gather.
/// </summary>
/// <returns><c>true</c> if this query has result; otherwise, <c>false</c>.</returns>
virtual bool HasResult() = 0;
/// <summary>
/// Gets the query result time (in milliseconds) it took to execute GPU commands between Begin/End calls.
/// </summary>
/// <returns>The time in milliseconds.</returns>
virtual float GetResult() = 0;
public:
// [GPUResource]
String ToString() const override
{
return TEXT("TimerQuery");
}
GPUResourceType GetResourceType() const final override
{
return GPUResourceType::Query;
}
};