diff options
author | Ben Wagner <bungeman@google.com> | 2018-07-11 14:56:22 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-07-11 20:31:18 +0000 |
commit | 97c6a0ee41bb1af9cc81695590e2bb97ec85fecf (patch) | |
tree | 9e6de14afba4ecbfa913196c92ae4f078da10be7 | |
parent | 4eebd9eed06039d265f06edb759765731f963271 (diff) |
Remove interal use of SkRefCnt_SafeAssign.
It turns out that SkDeviceProfile is no longer used and can just be
deleted. The ResourceCacheTest and DebugGLTestContext are changed to use
smart pointers where possible. This also clarifies the squirrelly part of
the test. DebugGLTestContext is going away soon anyway.
Change-Id: I95ef24afa58aa4d356429b93d4dec0d72e3fd827
Reviewed-on: https://skia-review.googlesource.com/140577
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
-rw-r--r-- | gn/core.gni | 1 | ||||
-rw-r--r-- | src/core/SkDeviceProfile.cpp | 77 | ||||
-rw-r--r-- | src/core/SkDeviceProfile.h | 98 | ||||
-rw-r--r-- | tests/ResourceCacheTest.cpp | 18 | ||||
-rw-r--r-- | tools/gpu/gl/debug/DebugGLTestContext.cpp | 10 |
5 files changed, 14 insertions, 190 deletions
diff --git a/gn/core.gni b/gn/core.gni index 7881579e38..5b3e053ea8 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -103,7 +103,6 @@ skia_core_sources = [ "$_src/core/SkDescriptor.h", "$_src/core/SkDevice.cpp", "$_src/core/SkDevice.h", - "$_src/core/SkDeviceProfile.cpp", "$_src/core/SkDiscardableMemory.h", "$_src/lazy/SkDiscardableMemoryPool.cpp", "$_src/core/SkDistanceFieldGen.cpp", diff --git a/src/core/SkDeviceProfile.cpp b/src/core/SkDeviceProfile.cpp deleted file mode 100644 index e1c10c87d7..0000000000 --- a/src/core/SkDeviceProfile.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - - -#include "SkDeviceProfile.h" -#include "SkMutex.h" - -#define DEFAULT_GAMMAEXP 2.2f -#define DEFAULT_CONTRASTSCALE 0.5f -#define DEFAULT_LCDCONFIG SkDeviceProfile::kNone_LCDConfig -#define DEFAULT_FONTHINTLEVEL SkDeviceProfile::kSlight_FontHintLevel - -static float pin(float value, float min, float max) { - if (value < min) { - value = min; - } else if (value > max) { - value = max; - } - return value; -} - -SkDeviceProfile::SkDeviceProfile(float gammaExp, float contrast, - LCDConfig config, FontHintLevel level) { - fGammaExponent = pin(gammaExp, 0, 10); - fContrastScale = pin(contrast, 0, 1); - fLCDConfig = config; - fFontHintLevel = level; -} - -void SkDeviceProfile::generateTableForLuminanceByte(U8CPU lumByte, - uint8_t table[256]) const { -} - -/////////////////////////////////////////////////////////////////////////////// - -SkDeviceProfile* SkDeviceProfile::Create(float gammaExp, - float contrast, - LCDConfig config, - FontHintLevel level) { - return new SkDeviceProfile(gammaExp, contrast, config, level); -} - -SK_DECLARE_STATIC_MUTEX(gMutex); -static SkDeviceProfile* gDefaultProfile; -static SkDeviceProfile* gGlobalProfile; - -SkDeviceProfile* SkDeviceProfile::GetDefault() { - SkAutoMutexAcquire amc(gMutex); - - if (nullptr == gDefaultProfile) { - gDefaultProfile = SkDeviceProfile::Create(DEFAULT_GAMMAEXP, - DEFAULT_CONTRASTSCALE, - DEFAULT_LCDCONFIG, - DEFAULT_FONTHINTLEVEL); - } - return gDefaultProfile; -} - -SkDeviceProfile* SkDeviceProfile::RefGlobal() { - SkAutoMutexAcquire amc(gMutex); - - if (nullptr == gGlobalProfile) { - gGlobalProfile = SkDeviceProfile::GetDefault(); - } - gGlobalProfile->ref(); - return gGlobalProfile; -} - -void SkDeviceProfile::SetGlobal(SkDeviceProfile* profile) { - SkAutoMutexAcquire amc(gMutex); - - SkRefCnt_SafeAssign(gGlobalProfile, profile); -} diff --git a/src/core/SkDeviceProfile.h b/src/core/SkDeviceProfile.h deleted file mode 100644 index ed533f8329..0000000000 --- a/src/core/SkDeviceProfile.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef SkDeviceProfile_DEFINED -#define SkDeviceProfile_DEFINED - -#include "SkRefCnt.h" - -class SkDeviceProfile : public SkRefCnt { -public: - - - enum LCDConfig { - kNone_LCDConfig, // disables LCD text rendering, uses A8 instead - kRGB_Horizontal_LCDConfig, - kBGR_Horizontal_LCDConfig, - kRGB_Vertical_LCDConfig, - kBGR_Vertical_LCDConfig - }; - - enum FontHintLevel { - kNone_FontHintLevel, - kSlight_FontHintLevel, - kNormal_FontHintLevel, - kFull_FontHintLevel, - kAuto_FontHintLevel - }; - - /** - * gammaExp is typically between 1.0 and 2.2. For no gamma adjustment, - * specify 1.0 - * - * contrastScale will be pinned between 0.0 and 1.0. For no contrast - * adjustment, specify 0.0 - * - * @param config Describes the LCD layout for this device. If this is set - * to kNone, then all requests for LCD text will be - * devolved to A8 antialiasing. - * - * @param level The hinting level to be used, IF the paint specifies - * "default". Otherwise the paint's hinting level will be - * respected. - */ - static SkDeviceProfile* Create(float gammaExp, - float contrastScale, - LCDConfig, - FontHintLevel); - - /** - * Returns the global default profile, that is used if no global profile is - * specified with SetGlobal(), or if nullptr is specified to SetGlobal(). - * The references count is *not* incremented, and the caller should not - * call unref(). - */ - static SkDeviceProfile* GetDefault(); - - /** - * Return the current global profile (or the default if no global had yet - * been set) and increment its reference count. The call *must* call unref() - * when it is done using it. - */ - static SkDeviceProfile* RefGlobal(); - - /** - * Make the specified profile be the global value for all subsequently - * instantiated devices. Does not affect any existing devices. - * Increments the reference count on the profile. - * Specify nullptr for the "identity" profile (where there is no gamma or - * contrast correction). - */ - static void SetGlobal(SkDeviceProfile*); - - float getFontGammaExponent() const { return fGammaExponent; } - float getFontContrastScale() const { return fContrastScale; } - - /** - * Given a luminance byte (0 for black, 0xFF for white), generate a table - * that applies the gamma/contrast settings to linear coverage values. - */ - void generateTableForLuminanceByte(U8CPU lumByte, uint8_t table[256]) const; - -private: - SkDeviceProfile(float gammaExp, float contrastScale, LCDConfig, - FontHintLevel); - - float fGammaExponent; - float fContrastScale; - LCDConfig fLCDConfig; - FontHintLevel fFontHintLevel; - - typedef SkRefCnt INHERITED; -}; - -#endif diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp index 113945b414..dceb3e74ed 100644 --- a/tests/ResourceCacheTest.cpp +++ b/tests/ResourceCacheTest.cpp @@ -283,13 +283,12 @@ public: ~TestResource() override { --fNumAlive; - SkSafeUnref(fToDelete); } static int NumAlive() { return fNumAlive; } - void setUnrefWhenDestroyed(TestResource* resource) { - SkRefCnt_SafeAssign(fToDelete, resource); + void setUnrefWhenDestroyed(sk_sp<TestResource> resource) { + fToDelete = std::move(resource); } static void ComputeScratchKey(SimulatedProperty property, GrScratchKey* key) { @@ -337,7 +336,7 @@ private: size_t onGpuMemorySize() const override { return fSize; } const char* getResourceType() const override { return "Test"; } - TestResource* fToDelete; + sk_sp<TestResource> fToDelete; size_t fSize; static int fNumAlive; SimulatedProperty fProperty; @@ -1051,8 +1050,8 @@ static void test_cache_chained_purge(skiatest::Reporter* reporter) { make_unique_key<0>(&key1, 1); make_unique_key<0>(&key2, 2); - TestResource* a = new TestResource(gpu); - TestResource* b = new TestResource(gpu); + sk_sp<TestResource> a(new TestResource(gpu)); + sk_sp<TestResource> b(new TestResource(gpu)); a->resourcePriv().setUniqueKey(key1); b->resourcePriv().setUniqueKey(key2); @@ -1062,8 +1061,9 @@ static void test_cache_chained_purge(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 2 == TestResource::NumAlive()); - a->unref(); - b->unref(); + TestResource* unownedA = a.release(); + unownedA->unref(); + b.reset(); REPORTER_ASSERT(reporter, 2 == TestResource::NumAlive()); @@ -1071,7 +1071,7 @@ static void test_cache_chained_purge(skiatest::Reporter* reporter) { REPORTER_ASSERT(reporter, 2 == TestResource::NumAlive()); // Break the cycle - a->setUnrefWhenDestroyed(nullptr); + unownedA->setUnrefWhenDestroyed(nullptr); REPORTER_ASSERT(reporter, 2 == TestResource::NumAlive()); cache->purgeAllUnlocked(); diff --git a/tools/gpu/gl/debug/DebugGLTestContext.cpp b/tools/gpu/gl/debug/DebugGLTestContext.cpp index 3a2c0b93f6..01e151cb76 100644 --- a/tools/gpu/gl/debug/DebugGLTestContext.cpp +++ b/tools/gpu/gl/debug/DebugGLTestContext.cpp @@ -789,7 +789,7 @@ public: GrGLvoid bindVertexArray(GrGLuint id) override { GrVertexArrayObj* array = FIND(id, GrVertexArrayObj, kVertexArray_ObjTypes); GrAlwaysAssert((0 == id) || array); - this->setVertexArray(array); + this->setVertexArray(sk_ref_sp(array)); } GrGLvoid bindBuffer(GrGLenum target, GrGLuint bufferID) override { @@ -939,7 +939,7 @@ private: GrGLuint fCurrTextureUnit; GrTextureUnitObj* fTextureUnits[kDefaultMaxTextureUnits]; GrBufferObj* fBoundBuffers[kNumBufferTargets]; - GrVertexArrayObj* fVertexArray; + sk_sp<GrVertexArrayObj> fVertexArray; GrGLint fPackRowLength; GrGLint fUnpackRowLength; GrGLint fPackAlignment; @@ -1089,14 +1089,14 @@ private: fBoundBuffers[buffIdx] = buffer; } - void setVertexArray(GrVertexArrayObj* vertexArray) { + void setVertexArray(sk_sp<GrVertexArrayObj> vertexArray) { if (vertexArray) { SkASSERT(!vertexArray->getDeleted()); } - SkRefCnt_SafeAssign(fVertexArray, vertexArray); + fVertexArray = std::move(vertexArray); } - GrVertexArrayObj* getVertexArray() { return fVertexArray; } + GrVertexArrayObj* getVertexArray() { return fVertexArray.get(); } void setTexture(GrTextureObj *texture) { fTextureUnits[fCurrTextureUnit]->setTexture(texture); |