| OLD | NEW |
| 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 #include "GrGLProgram.h" | 8 #include "GrGLProgram.h" |
| 9 | 9 |
| 10 #include "GrAllocator.h" | 10 #include "GrAllocator.h" |
| (...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 973 | 973 |
| 974 // Load the RT height uniform if it is needed to y-flip gl_FragCoord. | 974 // Load the RT height uniform if it is needed to y-flip gl_FragCoord. |
| 975 if (fUniformHandles.fRTHeightUni.isValid() && | 975 if (fUniformHandles.fRTHeightUni.isValid() && |
| 976 fMatrixState.fRenderTargetSize.fHeight != size.fHeight) { | 976 fMatrixState.fRenderTargetSize.fHeight != size.fHeight) { |
| 977 fUniformManager.set1f(fUniformHandles.fRTHeightUni, SkIntToScalar(size.f
Height)); | 977 fUniformManager.set1f(fUniformHandles.fRTHeightUni, SkIntToScalar(size.f
Height)); |
| 978 } | 978 } |
| 979 | 979 |
| 980 if (fMatrixState.fRenderTargetOrigin != rt->origin() || | 980 if (fMatrixState.fRenderTargetOrigin != rt->origin() || |
| 981 !fMatrixState.fViewMatrix.cheapEqualTo(drawState.getViewMatrix()) || | 981 !fMatrixState.fViewMatrix.cheapEqualTo(drawState.getViewMatrix()) || |
| 982 fMatrixState.fRenderTargetSize != size) { | 982 fMatrixState.fRenderTargetSize != size) { |
| 983 SkMatrix m; | |
| 984 if (kBottomLeft_GrSurfaceOrigin == rt->origin()) { | |
| 985 m.setAll( | |
| 986 SkIntToScalar(2) / size.fWidth, 0, -SK_Scalar1, | |
| 987 0,-SkIntToScalar(2) / size.fHeight, SK_Scalar1, | |
| 988 0, 0, SkMatrix::I()[8]); | |
| 989 } else { | |
| 990 m.setAll( | |
| 991 SkIntToScalar(2) / size.fWidth, 0, -SK_Scalar1, | |
| 992 0, SkIntToScalar(2) / size.fHeight,-SK_Scalar1, | |
| 993 0, 0, SkMatrix::I()[8]); | |
| 994 } | |
| 995 m.setConcat(m, drawState.getViewMatrix()); | |
| 996 | 983 |
| 997 // ES doesn't allow you to pass true to the transpose param so we do our
own transpose. | |
| 998 GrGLfloat mt[] = { | |
| 999 SkScalarToFloat(m[SkMatrix::kMScaleX]), | |
| 1000 SkScalarToFloat(m[SkMatrix::kMSkewY]), | |
| 1001 SkScalarToFloat(m[SkMatrix::kMPersp0]), | |
| 1002 SkScalarToFloat(m[SkMatrix::kMSkewX]), | |
| 1003 SkScalarToFloat(m[SkMatrix::kMScaleY]), | |
| 1004 SkScalarToFloat(m[SkMatrix::kMPersp1]), | |
| 1005 SkScalarToFloat(m[SkMatrix::kMTransX]), | |
| 1006 SkScalarToFloat(m[SkMatrix::kMTransY]), | |
| 1007 SkScalarToFloat(m[SkMatrix::kMPersp2]) | |
| 1008 }; | |
| 1009 fUniformManager.setMatrix3f(fUniformHandles.fViewMatrixUni, mt); | |
| 1010 fMatrixState.fViewMatrix = drawState.getViewMatrix(); | 984 fMatrixState.fViewMatrix = drawState.getViewMatrix(); |
| 1011 fMatrixState.fRenderTargetSize = size; | 985 fMatrixState.fRenderTargetSize = size; |
| 1012 fMatrixState.fRenderTargetOrigin = rt->origin(); | 986 fMatrixState.fRenderTargetOrigin = rt->origin(); |
| 987 |
| 988 GrGLfloat viewMatrix[3 * 3]; |
| 989 fMatrixState.getGLMatrix<3>(viewMatrix); |
| 990 fUniformManager.setMatrix3f(fUniformHandles.fViewMatrixUni, viewMatrix); |
| 1013 } | 991 } |
| 1014 } | 992 } |
| OLD | NEW |