blob: 4f0371c25c944cd0af445d8f5869d69e4e7bcce4 [file] [log] [blame]
/*
* 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 DisplayParams_DEFINED
#define DisplayParams_DEFINED
#include "include/core/SkColorSpace.h"
#include "include/core/SkImageInfo.h"
#include "include/core/SkSurfaceProps.h"
#include "include/gpu/ganesh/GrContextOptions.h"
#if defined(SK_GRAPHITE)
#include "include/gpu/graphite/ContextOptions.h"
#include "src/gpu/graphite/ContextOptionsPriv.h"
#include "tools/graphite/TestOptions.h"
#endif
namespace skwindow {
#if defined(SK_GRAPHITE)
struct GraphiteTestOptions {
GraphiteTestOptions() {
fTestOptions.fContextOptions.fOptionsPriv = &fPriv;
}
GraphiteTestOptions(const GraphiteTestOptions& other)
: fTestOptions(other.fTestOptions)
, fPriv(other.fPriv) {
fTestOptions.fContextOptions.fOptionsPriv = &fPriv;
}
GraphiteTestOptions& operator=(const GraphiteTestOptions& other) {
fTestOptions = other.fTestOptions;
fPriv = other.fPriv;
fTestOptions.fContextOptions.fOptionsPriv = &fPriv;
return *this;
}
skiatest::graphite::TestOptions fTestOptions;
skgpu::graphite::ContextOptionsPriv fPriv;
};
#endif
struct DisplayParams {
DisplayParams()
: fColorType(kN32_SkColorType)
, fColorSpace(nullptr)
, fMSAASampleCount(1)
, fSurfaceProps(0, kRGB_H_SkPixelGeometry)
, fDisableVsync(false)
, fDelayDrawableAcquisition(false)
, fCreateProtectedNativeBackend(false)
{}
SkColorType fColorType;
sk_sp<SkColorSpace> fColorSpace;
int fMSAASampleCount;
GrContextOptions fGrContextOptions;
#if defined(SK_GRAPHITE)
GraphiteTestOptions fGraphiteTestOptions;
#endif
SkSurfaceProps fSurfaceProps;
bool fDisableVsync;
bool fDelayDrawableAcquisition;
bool fCreateProtectedNativeBackend = false;
};
} // namespace skwindow
#endif