Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: include/gpu/GrEffect.h

Issue 385713005: Allow GrGLEffects to produce variable length keys. (Closed) Base URL: https://skia.googlesource.com/skia.git@key
Patch Set: rebase Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/gpu/GrBackendEffectFactory.h ('k') | include/gpu/GrTBackendEffectFactory.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrEffect_DEFINED 8 #ifndef GrEffect_DEFINED
9 #define GrEffect_DEFINED 9 #define GrEffect_DEFINED
10 10
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 ... 64 ...
65 }; 65 };
66 */ 66 */
67 virtual const GrBackendEffectFactory& getFactory() const = 0; 67 virtual const GrBackendEffectFactory& getFactory() const = 0;
68 68
69 /** Returns true if this and other effect conservatively draw identically. I t can only return 69 /** Returns true if this and other effect conservatively draw identically. I t can only return
70 true when the two effects are of the same subclass (i.e. they return the same object from 70 true when the two effects are of the same subclass (i.e. they return the same object from
71 from getFactory()). 71 from getFactory()).
72 72
73 A return value of true from isEqual() should not be used to test whether the effects would 73 A return value of true from isEqual() should not be used to test whether the effects would
74 generate the same shader code. To test for identical code generation use the EffectKey 74 generate the same shader code. To test for identical code generation use the effects' keys
75 computed by the GrBackendEffectFactory: 75 computed by the GrBackendEffectFactory.
76 effectA.getFactory().glEffectKey(effectA) == effectB.getFactory().gl EffectKey(effectB).
77 */ 76 */
78 bool isEqual(const GrEffect& other) const { 77 bool isEqual(const GrEffect& other) const {
79 if (&this->getFactory() != &other.getFactory()) { 78 if (&this->getFactory() != &other.getFactory()) {
80 return false; 79 return false;
81 } 80 }
82 bool result = this->onIsEqual(other); 81 bool result = this->onIsEqual(other);
83 #ifdef SK_DEBUG 82 #ifdef SK_DEBUG
84 if (result) { 83 if (result) {
85 this->assertEquality(other); 84 this->assertEquality(other);
86 } 85 }
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 * This creates an effect outside of the effect memory pool. The effect's destru ctor will be called 221 * This creates an effect outside of the effect memory pool. The effect's destru ctor will be called
223 * at global destruction time. NAME will be the name of the created GrEffect. 222 * at global destruction time. NAME will be the name of the created GrEffect.
224 */ 223 */
225 #define GR_CREATE_STATIC_EFFECT(NAME, EFFECT_CLASS, ARGS) \ 224 #define GR_CREATE_STATIC_EFFECT(NAME, EFFECT_CLASS, ARGS) \
226 static SkAlignedSStorage<sizeof(EFFECT_CLASS)> g_##NAME##_Storage; \ 225 static SkAlignedSStorage<sizeof(EFFECT_CLASS)> g_##NAME##_Storage; \
227 static GrEffect* NAME SkNEW_PLACEMENT_ARGS(g_##NAME##_Storage.get(), EFFECT_CLAS S, ARGS); \ 226 static GrEffect* NAME SkNEW_PLACEMENT_ARGS(g_##NAME##_Storage.get(), EFFECT_CLAS S, ARGS); \
228 static SkAutoTDestroy<GrEffect> NAME##_ad(NAME); 227 static SkAutoTDestroy<GrEffect> NAME##_ad(NAME);
229 228
230 229
231 #endif 230 #endif
OLDNEW
« no previous file with comments | « include/gpu/GrBackendEffectFactory.h ('k') | include/gpu/GrTBackendEffectFactory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698