blob: abac934a1a36c05a859c1b62fb6e5aaffe2da5bf [file] [log] [blame] [edit]
/*
* Copyright 2023 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef skiatest_graphite_TestOptions_DEFINED
#define skiatest_graphite_TestOptions_DEFINED
#include "include/gpu/graphite/ContextOptions.h"
#include "src/gpu/graphite/ContextOptionsPriv.h"
namespace skiatest::graphite {
struct TestOptions {
TestOptions() {
fContextOptions.fOptionsPriv = &fOptionsPriv;
}
TestOptions(const TestOptions& other) {
*this = other;
}
TestOptions(TestOptions&&) = delete;
TestOptions& operator=(const TestOptions& other) {
fContextOptions = other.fContextOptions;
fOptionsPriv = other.fOptionsPriv;
fContextOptions.fOptionsPriv = &fOptionsPriv;
#if defined(SK_DAWN)
fDisableTintSymbolRenaming = other.fDisableTintSymbolRenaming;
fNeverYieldToWebGPU = other.fNeverYieldToWebGPU;
fUseWGPUTextureView = other.fUseWGPUTextureView;
#endif
return *this;
}
TestOptions& operator=(TestOptions&&) = delete;
bool hasDawnOptions() const {
#if defined(SK_DAWN)
return fDisableTintSymbolRenaming ||
fNeverYieldToWebGPU ||
fUseWGPUTextureView;
#else
return false;
#endif
}
skgpu::graphite::ContextOptions fContextOptions = {};
skgpu::graphite::ContextOptionsPriv fOptionsPriv;
#if defined(SK_DAWN)
bool fDisableTintSymbolRenaming = false;
bool fNeverYieldToWebGPU = false;
bool fUseWGPUTextureView = false;
#endif
};
} // namespace skiatest::graphite
#endif