123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- /*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef GrMockOptions_DEFINED
- #define GrMockOptions_DEFINED
- #include "include/gpu/GrTypes.h"
- #include "include/private/GrTypesPriv.h"
- class GrBackendFormat;
- struct GrMockTextureInfo {
- GrMockTextureInfo()
- : fColorType(GrColorType::kUnknown)
- , fID(0) {}
- GrMockTextureInfo(GrColorType colorType, int id)
- : fColorType(colorType)
- , fID(id) {
- SkASSERT(fID);
- }
- bool operator==(const GrMockTextureInfo& that) const {
- return fColorType == that.fColorType &&
- fID == that.fID;
- }
- GrPixelConfig pixelConfig() const {
- return GrColorTypeToPixelConfig(fColorType);
- }
- GrBackendFormat getBackendFormat() const;
- GrColorType fColorType;
- int fID;
- };
- struct GrMockRenderTargetInfo {
- GrMockRenderTargetInfo()
- : fColorType(GrColorType::kUnknown)
- , fID(0) {}
- GrMockRenderTargetInfo(GrColorType colorType, int id)
- : fColorType(colorType)
- , fID(id) {
- SkASSERT(fID);
- }
- bool operator==(const GrMockRenderTargetInfo& that) const {
- return fColorType == that.fColorType &&
- fID == that.fID;
- }
- GrPixelConfig pixelConfig() const {
- return GrColorTypeToPixelConfig(fColorType);
- }
- GrBackendFormat getBackendFormat() const;
- GrColorType colorType() const { return fColorType; }
- private:
- GrColorType fColorType;
- int fID;
- };
- /**
- * A pointer to this type is used as the GrBackendContext when creating a Mock GrContext. It can be
- * used to specify capability options for the mock context. If nullptr is used a default constructed
- * GrMockOptions is used.
- */
- struct GrMockOptions {
- GrMockOptions() {
- using Renderability = ConfigOptions::Renderability;
- // By default RGBA_8888 and BGRA_8888 are textureable and renderable and
- // A8 and RGB565 are texturable.
- fConfigOptions[(int)GrColorType::kRGBA_8888].fRenderability = Renderability::kNonMSAA;
- fConfigOptions[(int)GrColorType::kRGBA_8888].fTexturable = true;
- fConfigOptions[(int)GrColorType::kAlpha_8].fTexturable = true;
- fConfigOptions[(int)GrColorType::kBGR_565].fTexturable = true;
- fConfigOptions[(int)GrColorType::kBGRA_8888] = fConfigOptions[(int)GrColorType::kRGBA_8888];
- }
- struct ConfigOptions {
- enum Renderability { kNo, kNonMSAA, kMSAA };
- Renderability fRenderability = kNo;
- bool fTexturable = false;
- };
- // GrCaps options.
- bool fInstanceAttribSupport = false;
- bool fHalfFloatVertexAttributeSupport = false;
- uint32_t fMapBufferFlags = 0;
- int fMaxTextureSize = 2048;
- int fMaxRenderTargetSize = 2048;
- int fMaxVertexAttributes = 16;
- ConfigOptions fConfigOptions[kGrColorTypeCnt];
- // GrShaderCaps options.
- bool fGeometryShaderSupport = false;
- bool fIntegerSupport = false;
- bool fFlatInterpolationSupport = false;
- int fMaxVertexSamplers = 0;
- int fMaxFragmentSamplers = 8;
- bool fShaderDerivativeSupport = true;
- bool fDualSourceBlendingSupport = false;
- // GrMockGpu options.
- bool fFailTextureAllocations = false;
- };
- #endif
|