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

Side by Side Diff: src/gpu/gl/GrGLEffectMatrix.h

Issue 23706003: Fix case where GrGLEffectMatrix gives back a dangling ptr for the coords var name. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Rob's comments Created 7 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « src/gpu/effects/GrTextureDomainEffect.cpp ('k') | src/gpu/gl/GrGLEffectMatrix.cpp » ('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 GrGLEffectMatrix_DEFINED 8 #ifndef GrGLEffectMatrix_DEFINED
9 #define GrGLEffectMatrix_DEFINED 9 #define GrGLEffectMatrix_DEFINED
10 10
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 CoordsType, 77 CoordsType,
78 const GrTexture*); 78 const GrTexture*);
79 79
80 /** 80 /**
81 * Emits code to implement the matrix in the VS. A varying is added as an ou tput of the VS and 81 * Emits code to implement the matrix in the VS. A varying is added as an ou tput of the VS and
82 * input to the FS. The varying may be either a vec2f or vec3f depending upo n whether 82 * input to the FS. The varying may be either a vec2f or vec3f depending upo n whether
83 * perspective interpolation is required or not. The names of the varying in the VS and FS are 83 * perspective interpolation is required or not. The names of the varying in the VS and FS are
84 * are returned as output parameters and the type of the varying is the retu rn value. The suffix 84 * are returned as output parameters and the type of the varying is the retu rn value. The suffix
85 * is an optional parameter that can be used to make all variables emitted b y the object 85 * is an optional parameter that can be used to make all variables emitted b y the object
86 * unique within a stage. It is only necessary if multiple GrGLEffectMatrix objects are used by 86 * unique within a stage. It is only necessary if multiple GrGLEffectMatrix objects are used by
87 * a GrGLEffect. 87 * a single GrGLEffect.
88 */ 88 */
89 GrSLType emitCode(GrGLShaderBuilder*, 89 GrSLType emitCode(GrGLShaderBuilder*,
90 EffectKey, 90 EffectKey,
91 const char** fsCoordName, /* optional */ 91 SkString* fsCoordName, /* optional */
92 const char** vsCoordName = NULL, 92 SkString* vsCoordName = NULL,
93 const char* suffix = NULL); 93 const char* suffix = NULL);
94 94
95 /** 95 /**
96 * This is similar to emitCode except that it performs perspective division in the FS if the 96 * This is similar to emitCode except that it performs perspective division in the FS if the
97 * texture coordinates have a w coordinate. The fsCoordName always refers to a vec2f. 97 * texture coordinates have a w coordinate. The fsCoordName always refers to a vec2f.
98 */ 98 */
99 void emitCodeMakeFSCoords2D(GrGLShaderBuilder*, 99 void emitCodeMakeFSCoords2D(GrGLShaderBuilder*,
100 EffectKey, 100 EffectKey,
101 const char** fsCoordName, /* optional */ 101 SkString* fsCoordName, /* optional */
102 const char** vsVaryingName = NULL, 102 SkString* vsVaryingName = NULL,
103 GrSLType* vsVaryingType = NULL, 103 GrSLType* vsVaryingType = NULL,
104 const char* suffix = NULL); 104 const char* suffix = NULL);
105 /** 105 /**
106 * Call from a GrGLEffect's subclass to update the texture matrix. The effec tMatrix and texture 106 * Call from a GrGLEffect's subclass to update the texture matrix. The effec tMatrix and texture
107 * params should match those used with GenKey. 107 * params should match those used with GenKey.
108 */ 108 */
109 void setData(const GrGLUniformManager& uniformManager, 109 void setData(const GrGLUniformManager& uniformManager,
110 const SkMatrix& effectMatrix, 110 const SkMatrix& effectMatrix,
111 const GrDrawEffect& drawEffect, 111 const GrDrawEffect& drawEffect,
112 const GrTexture*); 112 const GrTexture*);
113 113
114 GrGLUniformManager::UniformHandle fUni; 114 GrGLUniformManager::UniformHandle fUni;
115 GrSLType fUniType; 115 GrSLType fUniType;
116 SkMatrix fPrevMatrix; 116 SkMatrix fPrevMatrix;
117 CoordsType fCoordsType; 117 CoordsType fCoordsType;
118 }; 118 };
119 119
120 #endif 120 #endif
OLDNEW
« no previous file with comments | « src/gpu/effects/GrTextureDomainEffect.cpp ('k') | src/gpu/gl/GrGLEffectMatrix.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698