diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2018-06-18 14:14:13 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-18 18:40:58 +0000 |
commit | dfbfc738a9edfff7a9804253175e380c230f3d21 (patch) | |
tree | 974f1093a905e07601ffff34d04d2e8ed70e6fc4 /src/gpu/GrContext.cpp | |
parent | b831ea22960c684b65f8ead76efe24059d119086 (diff) |
added GrSkSLFP and converted DitherEffect to use it
Bug: skia:
Change-Id: I84b71165eab1712355f3c7669cee2d33d259f3df
Reviewed-on: https://skia-review.googlesource.com/124504
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/GrContext.cpp')
-rw-r--r-- | src/gpu/GrContext.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp index f987536a5c..9f6b9750bb 100644 --- a/src/gpu/GrContext.cpp +++ b/src/gpu/GrContext.cpp @@ -36,7 +36,9 @@ #include "SkTaskGroup.h" #include "SkUnPreMultiplyPriv.h" #include "effects/GrConfigConversionEffect.h" +#include "effects/GrSkSLFP.h" #include "text/GrTextBlobCache.h" +#include <unordered_map> #define ASSERT_OWNED_PROXY(P) \ SkASSERT(!(P) || !((P)->priv().peekTexture()) || (P)->priv().peekTexture()->getContext() == this) @@ -153,6 +155,9 @@ GrContext::~GrContext() { if (fDrawingManager) { fDrawingManager->cleanup(); } + if (fFPFactories != nullptr) { + delete fFPFactories; + } fTextureStripAtlasManager = nullptr; delete fResourceProvider; @@ -1024,6 +1029,20 @@ sk_sp<GrRenderTargetContext> GrContextPriv::makeDeferredRenderTargetContext( return renderTargetContext; } +GrSkSLFPFactory* GrContextPriv::getFPFactory(size_t index) { + if (!fContext->fFPFactories) { + return nullptr; + } + return fContext->fFPFactories->get(index); +} + +void GrContextPriv::setFPFactory(size_t index, GrSkSLFPFactory* factory) { + if (!fContext->fFPFactories) { + fContext->fFPFactories = new GrSkSLFPFactoryCache(); + } + fContext->fFPFactories->set(index, std::unique_ptr<GrSkSLFPFactory>(factory)); +} + bool GrContextPriv::abandoned() const { ASSERT_SINGLE_OWNER_PRIV return fContext->fDrawingManager->wasAbandoned(); |