Index: src/gpu/gl/GrGLProgram.h |
diff --git a/src/gpu/gl/GrGLProgram.h b/src/gpu/gl/GrGLProgram.h |
index 3ee71b85b1383e96afed343fa383c6d013d4bdea..6e7e22bcada30523988609e8c35da87db23373fd 100644 |
--- a/src/gpu/gl/GrGLProgram.h |
+++ b/src/gpu/gl/GrGLProgram.h |
@@ -60,50 +60,22 @@ public: |
virtual bool hasVertexShader() const { return true; } |
/** |
- * The GrDrawState's view matrix along with the aspects of the render target determine the |
- * matrix sent to GL. The size of the render target affects the GL matrix because we must |
- * convert from Skia device coords to GL's normalized coords. Also the origin of the render |
- * target may require us to perform a mirror-flip. |
+ * We use the RT's size and origin to adjust from Skia device space to OpenGL normalized device |
+ * space and to make device space positions have the correct origin for processors that require |
+ * them. |
*/ |
- struct MatrixState { |
- SkMatrix fViewMatrix; |
+ struct RenderTargetState { |
SkISize fRenderTargetSize; |
GrSurfaceOrigin fRenderTargetOrigin; |
- MatrixState() { this->invalidate(); } |
+ RenderTargetState() { this->invalidate(); } |
void invalidate() { |
- fViewMatrix = SkMatrix::InvalidMatrix(); |
fRenderTargetSize.fWidth = -1; |
fRenderTargetSize.fHeight = -1; |
fRenderTargetOrigin = (GrSurfaceOrigin) -1; |
} |
/** |
- * Gets a matrix that goes from local coords to Skia's device coordinates. |
- */ |
- template<int Size> void getGLMatrix(GrGLfloat* destMatrix) { |
- GrGLGetMatrix<Size>(destMatrix, fViewMatrix); |
- } |
- |
- /** |
- * Gets a matrix that goes from local coordinates to GL normalized device coords. |
- */ |
- template<int Size> void getRTAdjustedGLMatrix(GrGLfloat* destMatrix) { |
- SkMatrix combined; |
- if (kBottomLeft_GrSurfaceOrigin == fRenderTargetOrigin) { |
- combined.setAll(SkIntToScalar(2) / fRenderTargetSize.fWidth, 0, -SK_Scalar1, |
- 0, -SkIntToScalar(2) / fRenderTargetSize.fHeight, SK_Scalar1, |
- 0, 0, 1); |
- } else { |
- combined.setAll(SkIntToScalar(2) / fRenderTargetSize.fWidth, 0, -SK_Scalar1, |
- 0, SkIntToScalar(2) / fRenderTargetSize.fHeight, -SK_Scalar1, |
- 0, 0, 1); |
- } |
- combined.preConcat(fViewMatrix); |
- GrGLGetMatrix<Size>(destMatrix, combined); |
- } |
- |
- /** |
* Gets a vec4 that adjusts the position from Skia device coords to GL's normalized device |
* coords. Assuming the transformed position, pos, is a homogeneous vec3, the vec, v, is |
* applied as such: |
@@ -162,11 +134,11 @@ protected: |
virtual void didSetData(GrGpu::DrawType); |
// Helper for setData() that sets the view matrix and loads the render target height uniform |
- void setMatrixAndRenderTargetHeight(const GrOptDrawState&); |
- virtual void onSetMatrixAndRenderTargetHeight(const GrOptDrawState&); |
+ void setRenderTargetState(const GrOptDrawState&); |
+ virtual void onSetRenderTargetState(const GrOptDrawState&); |
// these reflect the current values of uniforms (GL uniform values travel with program) |
- MatrixState fMatrixState; |
+ RenderTargetState fRenderTargetState; |
GrColor fColor; |
uint8_t fCoverage; |
int fDstCopyTexUnit; |
@@ -204,7 +176,7 @@ protected: |
GrGLInstalledGeoProc*, |
GrGLInstalledXferProc* xferProcessor, |
GrGLInstalledFragProcs* fragmentProcessors); |
- virtual void onSetMatrixAndRenderTargetHeight(const GrOptDrawState&); |
+ virtual void onSetRenderTargetState(const GrOptDrawState&); |
typedef GrGLProgram INHERITED; |
}; |