2024-06-11 16:55:20 +02:00
|
|
|
#pragma once
|
|
|
|
|
#include "MinimalEngine.h"
|
|
|
|
|
|
|
|
|
|
namespace Seele {
|
|
|
|
|
namespace Gfx {
|
2024-06-15 21:47:20 +02:00
|
|
|
struct OcclusionResult {
|
|
|
|
|
uint64 numFragments;
|
|
|
|
|
};
|
2024-06-11 16:55:20 +02:00
|
|
|
class OcclusionQuery {
|
|
|
|
|
public:
|
|
|
|
|
OcclusionQuery();
|
|
|
|
|
virtual ~OcclusionQuery();
|
|
|
|
|
virtual void beginQuery() = 0;
|
|
|
|
|
virtual void endQuery() = 0;
|
2024-06-15 21:47:20 +02:00
|
|
|
virtual OcclusionResult getResults() = 0;
|
2024-06-11 16:55:20 +02:00
|
|
|
};
|
|
|
|
|
DEFINE_REF(OcclusionQuery)
|
2024-06-15 21:47:20 +02:00
|
|
|
struct PipelineStatisticsResult {
|
|
|
|
|
uint64 inputAssemblyVertices;
|
|
|
|
|
uint64 inputAssemblyPrimitives;
|
|
|
|
|
uint64 vertexShaderInvocations;
|
|
|
|
|
uint64 clippingInvocations;
|
|
|
|
|
uint64 clippingPrimitives;
|
|
|
|
|
uint64 fragmentShaderInvocations;
|
|
|
|
|
uint64 computeShaderInvocations;
|
|
|
|
|
uint64 taskShaderInvocations;
|
|
|
|
|
uint64 meshShaderInvocations;
|
|
|
|
|
};
|
|
|
|
|
class PipelineStatisticsQuery {
|
|
|
|
|
public:
|
|
|
|
|
PipelineStatisticsQuery();
|
|
|
|
|
virtual ~PipelineStatisticsQuery();
|
|
|
|
|
virtual void beginQuery() = 0;
|
|
|
|
|
virtual void endQuery() = 0;
|
|
|
|
|
virtual PipelineStatisticsResult getResults() = 0;
|
|
|
|
|
};
|
|
|
|
|
DEFINE_REF(PipelineStatisticsQuery)
|
2024-06-11 16:55:20 +02:00
|
|
|
} // namespace Gfx
|
|
|
|
|
} // namespace Seele
|