| /* | |
| * Copyright 2018 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #include "SkSurfaceCharacterization.h" | |
| #if SK_SUPPORT_GPU | |
| #include "GrCaps.h" | |
| #include "GrContextThreadSafeProxyPriv.h" | |
| bool SkSurfaceCharacterization::operator==(const SkSurfaceCharacterization& other) const { | |
| if (!this->isValid() || !other.isValid()) { | |
| return false; | |
| } | |
| if (fContextInfo != other.fContextInfo) { | |
| return false; | |
| } | |
| return fCacheMaxResourceBytes == other.fCacheMaxResourceBytes && | |
| fOrigin == other.fOrigin && | |
| fImageInfo == other.fImageInfo && | |
| fConfig == other.fConfig && | |
| fFSAAType == other.fFSAAType && | |
| fStencilCnt == other.fStencilCnt && | |
| fIsTextureable == other.fIsTextureable && | |
| fIsMipMapped == other.fIsMipMapped && | |
| fUsesGLFBO0 == other.fUsesGLFBO0 && | |
| fSurfaceProps == other.fSurfaceProps; | |
| } | |
| SkSurfaceCharacterization SkSurfaceCharacterization::createResized(int width, int height) const { | |
| const GrCaps* caps = fContextInfo->priv().caps(); | |
| if (!caps) { | |
| return SkSurfaceCharacterization(); | |
| } | |
| if (width <= 0 || height <= 0 || width > caps->maxRenderTargetSize() || | |
| height > caps->maxRenderTargetSize()) { | |
| return SkSurfaceCharacterization(); | |
| } | |
| return SkSurfaceCharacterization(fContextInfo, fCacheMaxResourceBytes, | |
| fImageInfo.makeWH(width, height), fOrigin, fConfig, fFSAAType, | |
| fStencilCnt, fIsTextureable, fIsMipMapped, fUsesGLFBO0, | |
| fSurfaceProps); | |
| } | |
| #endif |