| /* |
| * 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 |