blob: b06570d7020698e084869f71fba02c5868ee833d [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/GrContextOptions.h"
#if defined(SK_GRAPHITE)
#include "include/gpu/graphite/ContextOptions.h"
#include "include/private/gpu/graphite/ContextOptionsPriv.h"
#endif
namespace skwindow {
#if defined(SK_GRAPHITE)
struct GraphiteContextOptions {
GraphiteContextOptions() {
fOptions.fOptionsPriv = &fPriv;
}
GraphiteContextOptions(const GraphiteContextOptions& other)
: fOptions(other.fOptions)
, fPriv(other.fPriv) {
fOptions.fOptionsPriv = &fPriv;
}
GraphiteContextOptions& operator=(const GraphiteContextOptions& other) {
fOptions = other.fOptions;
fPriv = other.fPriv;
fOptions.fOptionsPriv = &fPriv;
return *this;
}
skgpu::graphite::ContextOptions fOptions;
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)
GraphiteContextOptions fGraphiteContextOptions;
#if defined(SK_DAWN)
bool fDisableTintSymbolRenaming = false;
#endif
#endif
SkSurfaceProps fSurfaceProps;
bool fDisableVsync;
bool fDelayDrawableAcquisition;
bool fCreateProtectedNativeBackend = false;
};
} // namespace skwindow
#endif