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

Side by Side Diff: src/gpu/effects/GrTextureDomain.h

Issue 422123003: Adding repeat mode to texture domain (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase Created 6 years, 4 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
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 GrTextureDomainEffect_DEFINED 8 #ifndef GrTextureDomainEffect_DEFINED
9 #define GrTextureDomainEffect_DEFINED 9 #define GrTextureDomainEffect_DEFINED
10 10
11 #include "GrSingleTextureEffect.h" 11 #include "GrSingleTextureEffect.h"
12 #include "gl/GrGLEffect.h" 12 #include "gl/GrGLEffect.h"
13 13
14 class GrGLShaderBuilder; 14 class GrGLShaderBuilder;
15 struct SkRect; 15 struct SkRect;
16 16
17 /** 17 /**
18 * Limits a texture's lookup coordinates to a domain. Samples outside the domain are either clamped 18 * Limits a texture's lookup coordinates to a domain. Samples outside the domain are either clamped
19 * the edge of the domain or result in a vec4 of zeros (decal mode). The domain is clipped to 19 * the edge of the domain or result in a vec4 of zeros (decal mode). The domain is clipped to
20 * normalized texture coords ([0,1]x[0,1] square). Bilinear filtering can cause texels outside the 20 * normalized texture coords ([0,1]x[0,1] square). Bilinear filtering can cause texels outside the
21 * domain to affect the read value unless the caller considers this when calcula ting the domain. 21 * domain to affect the read value unless the caller considers this when calcula ting the domain.
22 */ 22 */
23 class GrTextureDomain { 23 class GrTextureDomain {
24 public: 24 public:
25 enum Mode { 25 enum Mode {
26 kIgnore_Mode, // Ignore the texture domain rectangle. 26 kIgnore_Mode, // Ignore the texture domain rectangle.
27 kClamp_Mode, // Clamp texture coords to the domain rectangle. 27 kClamp_Mode, // Clamp texture coords to the domain rectangle.
28 kDecal_Mode, // Treat the area outside the domain rectangle as fully t ransparent. 28 kDecal_Mode, // Treat the area outside the domain rectangle as fully t ransparent.
29 kRepeat_Mode, // Wrap texture coordinates. NOTE: filtering may not wor k as expected
Stephen White 2014/07/29 14:51:16 This comment is a little cryptic. You mean due to
bsalomon 2014/07/29 14:55:27 It's not related to NPOT. Using MIP or Bilerp filt
29 30
30 kLastMode = kDecal_Mode 31 kLastMode = kRepeat_Mode
31 }; 32 };
32 static const int kModeCount = kLastMode + 1; 33 static const int kModeCount = kLastMode + 1;
33 34
34 static const GrTextureDomain& IgnoredDomain() { 35 static const GrTextureDomain& IgnoredDomain() {
35 static const SkRect gDummyRect = {0, 0, 0, 0}; 36 static const SkRect gDummyRect = {0, 0, 0, 0};
36 static const GrTextureDomain gDomain(gDummyRect, kIgnore_Mode); 37 static const GrTextureDomain gDomain(gDummyRect, kIgnore_Mode);
37 return gDomain; 38 return gDomain;
38 } 39 }
39 40
40 /** 41 /**
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 GrCoordSet); 167 GrCoordSet);
167 168
168 virtual bool onIsEqual(const GrEffect&) const SK_OVERRIDE; 169 virtual bool onIsEqual(const GrEffect&) const SK_OVERRIDE;
169 170
170 GR_DECLARE_EFFECT_TEST; 171 GR_DECLARE_EFFECT_TEST;
171 172
172 typedef GrSingleTextureEffect INHERITED; 173 typedef GrSingleTextureEffect INHERITED;
173 }; 174 };
174 175
175 #endif 176 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698