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

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

Issue 23767005: Add getGLMatrix method to MatrixState (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: 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 | « no previous file | src/gpu/gl/GrGLProgram.cpp » ('j') | src/gpu/gl/GrGpuGL_program.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 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 8
9 #ifndef GrGLProgram_DEFINED 9 #ifndef GrGLProgram_DEFINED
10 #define GrGLProgram_DEFINED 10 #define GrGLProgram_DEFINED
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 SkISize fRenderTargetSize; 93 SkISize fRenderTargetSize;
94 GrSurfaceOrigin fRenderTargetOrigin; 94 GrSurfaceOrigin fRenderTargetOrigin;
95 95
96 MatrixState() { this->invalidate(); } 96 MatrixState() { this->invalidate(); }
97 void invalidate() { 97 void invalidate() {
98 fViewMatrix = SkMatrix::InvalidMatrix(); 98 fViewMatrix = SkMatrix::InvalidMatrix();
99 fRenderTargetSize.fWidth = -1; 99 fRenderTargetSize.fWidth = -1;
100 fRenderTargetSize.fHeight = -1; 100 fRenderTargetSize.fHeight = -1;
101 fRenderTargetOrigin = (GrSurfaceOrigin) -1; 101 fRenderTargetOrigin = (GrSurfaceOrigin) -1;
102 } 102 }
103 template<int Size> void getGLMatrix(GrGLfloat* destMatrix) {
104 SkMatrix combined;
105 if (kBottomLeft_GrSurfaceOrigin == fRenderTargetOrigin) {
106 combined.setAll(SkIntToScalar(2) / fRenderTargetSize.fWidth, 0, -SK_Scalar1,
107 0, -SkIntToScalar(2) / fRenderTargetSize.fHeight , SK_Scalar1,
108 0, 0, SkMatrix::I()[8]);
109 } else {
110 combined.setAll(SkIntToScalar(2) / fRenderTargetSize.fWidth, 0, -SK_Scalar1,
111 0, SkIntToScalar(2) / fRenderTargetSize.fHeight, -SK_Scalar1,
112 0, 0, SkMatrix::I()[8]);
113 }
114 combined.setConcat(combined, fViewMatrix);
115 GrGLGetMatrix<Size>(destMatrix, combined);
116 }
103 }; 117 };
104 118
105 /** 119 /**
106 * This function uploads uniforms and calls each GrGLEffect's setData. It is called before a 120 * This function uploads uniforms and calls each GrGLEffect's setData. It is called before a
107 * draw occurs using the program after the program has already been bound. I t also uses the 121 * draw occurs using the program after the program has already been bound. I t also uses the
108 * GrGpuGL object to bind the textures required by the GrGLEffects. The colo r and coverage 122 * GrGpuGL object to bind the textures required by the GrGLEffects. The colo r and coverage
109 * stages come from GrGLProgramDesc::Build(). 123 * stages come from GrGLProgramDesc::Build().
110 */ 124 */
111 void setData(GrDrawState::BlendOptFlags, 125 void setData(GrDrawState::BlendOptFlags,
112 const GrEffectStage* colorStages[], 126 const GrEffectStage* colorStages[],
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 GrGLProgramDesc fDesc; 224 GrGLProgramDesc fDesc;
211 GrGpuGL* fGpu; 225 GrGpuGL* fGpu;
212 226
213 GrGLUniformManager fUniformManager; 227 GrGLUniformManager fUniformManager;
214 UniformHandles fUniformHandles; 228 UniformHandles fUniformHandles;
215 229
216 typedef GrRefCnt INHERITED; 230 typedef GrRefCnt INHERITED;
217 }; 231 };
218 232
219 #endif 233 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/gl/GrGLProgram.cpp » ('j') | src/gpu/gl/GrGpuGL_program.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698