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

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

Issue 827973002: ViewMatrix uniform upload moved to GeometryProcessor (Closed) Base URL: https://skia.googlesource.com/skia.git@vm-on-gp
Patch Set: feedback inc Created 5 years, 11 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 | « src/gpu/gl/GrGLGeometryProcessor.h ('k') | src/gpu/gl/GrGLPathRendering.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 2014 Google Inc. 2 * Copyright 2014 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 GrGLPathRendering_DEFINED 8 #ifndef GrGLPathRendering_DEFINED
9 #define GrGLPathRendering_DEFINED 9 #define GrGLPathRendering_DEFINED
10 10
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 void stencilThenCoverFillPathInstanced( 119 void stencilThenCoverFillPathInstanced(
120 GrGLsizei numPaths, GrGLenum pathNameType, const GrGLvoid *paths, 120 GrGLsizei numPaths, GrGLenum pathNameType, const GrGLvoid *paths,
121 GrGLuint pathBase, GrGLenum fillMode, GrGLuint mask, Gr GLenum coverMode, 121 GrGLuint pathBase, GrGLenum fillMode, GrGLuint mask, Gr GLenum coverMode,
122 GrGLenum transformType, const GrGLfloat *transformValue s); 122 GrGLenum transformType, const GrGLfloat *transformValue s);
123 123
124 void stencilThenCoverStrokePathInstanced( 124 void stencilThenCoverStrokePathInstanced(
125 GrGLsizei numPaths, GrGLenum pathNameType, const GrGLvo id *paths, 125 GrGLsizei numPaths, GrGLenum pathNameType, const GrGLvo id *paths,
126 GrGLuint pathBase, GrGLint reference, GrGLuint mask, Gr GLenum coverMode, 126 GrGLuint pathBase, GrGLint reference, GrGLuint mask, Gr GLenum coverMode,
127 GrGLenum transformType, const GrGLfloat *transformValue s); 127 GrGLenum transformType, const GrGLfloat *transformValue s);
128 128
129 struct MatrixState {
130 SkMatrix fViewMatrix;
131 SkISize fRenderTargetSize;
132 GrSurfaceOrigin fRenderTargetOrigin;
133
134 MatrixState() { this->invalidate(); }
135 void invalidate() {
136 fViewMatrix = SkMatrix::InvalidMatrix();
137 fRenderTargetSize.fWidth = -1;
138 fRenderTargetSize.fHeight = -1;
139 fRenderTargetOrigin = (GrSurfaceOrigin) -1;
140 }
141
142 /**
143 * Gets a matrix that goes from local coordinates to GL normalized devic e coords.
144 */
145 template<int Size> void getRTAdjustedGLMatrix(GrGLfloat* destMatrix) {
146 SkMatrix combined;
147 if (kBottomLeft_GrSurfaceOrigin == fRenderTargetOrigin) {
148 combined.setAll(SkIntToScalar(2) / fRenderTargetSize.fWidth, 0, -SK_Scalar1,
149 0, -SkIntToScalar(2) / fRenderTargetSize.fHeight , SK_Scalar1,
150 0, 0, 1);
151 } else {
152 combined.setAll(SkIntToScalar(2) / fRenderTargetSize.fWidth, 0, -SK_Scalar1,
153 0, SkIntToScalar(2) / fRenderTargetSize.fHeight, -SK_Scalar1,
154 0, 0, 1);
155 }
156 combined.preConcat(fViewMatrix);
157 GrGLGetMatrix<Size>(destMatrix, combined);
158 }
159 };
160
129 GrGLGpu* fGpu; 161 GrGLGpu* fGpu;
130 SkAutoTDelete<GrGLNameAllocator> fPathNameAllocator; 162 SkAutoTDelete<GrGLNameAllocator> fPathNameAllocator;
131 Caps fCaps; 163 Caps fCaps;
132 GrGLProgram::MatrixState fHWProjectionMatrixState; 164 MatrixState fHWProjectionMatrixState;
133 GrStencilSettings fHWPathStencilSettings; 165 GrStencilSettings fHWPathStencilSettings;
134 struct PathTexGenData { 166 struct PathTexGenData {
135 GrGLenum fMode; 167 GrGLenum fMode;
136 GrGLint fNumComponents; 168 GrGLint fNumComponents;
137 GrGLfloat fCoefficients[3 * 3]; 169 GrGLfloat fCoefficients[3 * 3];
138 }; 170 };
139 int fHWActivePathTexGenSets; 171 int fHWActivePathTexGenSets;
140 SkTArray<PathTexGenData, true> fHWPathTexGenSettings; 172 SkTArray<PathTexGenData, true> fHWPathTexGenSettings;
141 }; 173 };
142 174
143 #endif 175 #endif
OLDNEW
« no previous file with comments | « src/gpu/gl/GrGLGeometryProcessor.h ('k') | src/gpu/gl/GrGLPathRendering.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698