Class BaseExperiment

Nested Relationships

Nested Types

Inheritance Relationships

Derived Types

Class Documentation

class BaseExperiment

Base class for experiments, which provide control over modifications to the stream.

Subclassed by gpa::playback::PipelineExperiment, gpa::playback::ResourceExperiment

Public Types

enum class Type

Types of child class experiments.

Values:

enumerator kUnknown
enumerator kPipelineExperiment
enumerator kResourceExperiment

Public Functions

BaseExperiment() = default

Creates an instance of Experiment.

virtual ~BaseExperiment()
uint32_t GetHash() const

Gets this Experiment's hash.

Returns

This Experiment hash

BaseExperiment::Type GetType() const

Returns the experiment type.

Protected Attributes

uint32_t mHash = {0}
Type mType = {BaseExperiment::Type::kUnknown}
class Prefab

Provides a common base and interface for Experiment prefabs.

Prefabs are "pre-made" experiments that allow the user to use "pre-packaged" experiments that already perform a specific function.

For example, PipelineExperiments generically provide an interface for the user to modify the pipeline in a range of the stream in any number of ways. "SimpleFragmentShaderExperiment" is a prefab that pre-packages the logic for replacing the fragment shader on a pipeline with a simple color-pass through fragment shader. In this way, it is a specialized bundle of logic that uses PipelineExperiment.

Subclassed by gpa::playback::PipelineExperiment::Prefab, gpa::playback::ResourceExperiment::Prefab

Public Functions

virtual ~Prefab() = 0

Destroys this instance of Experiment::Prefab.

virtual Impl const &GetImpl() const = 0

Gets this Prefab's implementation object.

Returns

This Prefab's implementation object