OLD | NEW |
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 #include "GrAARectRenderer.h" | 8 #include "GrAARectRenderer.h" |
9 #include "GrGpu.h" | 9 #include "GrGpu.h" |
10 #include "gl/builders/GrGLProgramBuilder.h" | 10 #include "gl/builders/GrGLProgramBuilder.h" |
(...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
851 // We create vertices for four nested rectangles. There are two ramps from 0
to full | 851 // We create vertices for four nested rectangles. There are two ramps from 0
to full |
852 // coverage, one on the exterior of the stroke and the other on the interior
. | 852 // coverage, one on the exterior of the stroke and the other on the interior
. |
853 // The following pointers refer to the four rects, from outermost to innermo
st. | 853 // The following pointers refer to the four rects, from outermost to innermo
st. |
854 SkPoint* fan0Pos = reinterpret_cast<SkPoint*>(verts); | 854 SkPoint* fan0Pos = reinterpret_cast<SkPoint*>(verts); |
855 SkPoint* fan1Pos = reinterpret_cast<SkPoint*>(verts + outerVertexNum * vstri
de); | 855 SkPoint* fan1Pos = reinterpret_cast<SkPoint*>(verts + outerVertexNum * vstri
de); |
856 SkPoint* fan2Pos = reinterpret_cast<SkPoint*>(verts + 2 * outerVertexNum * v
stride); | 856 SkPoint* fan2Pos = reinterpret_cast<SkPoint*>(verts + 2 * outerVertexNum * v
stride); |
857 SkPoint* fan3Pos = reinterpret_cast<SkPoint*>(verts + (2 * outerVertexNum +
innerVertexNum) * vstride); | 857 SkPoint* fan3Pos = reinterpret_cast<SkPoint*>(verts + (2 * outerVertexNum +
innerVertexNum) * vstride); |
858 | 858 |
859 #ifndef SK_IGNORE_THIN_STROKED_RECT_FIX | 859 #ifndef SK_IGNORE_THIN_STROKED_RECT_FIX |
860 // TODO: this only really works if the X & Y margins are the same all around | 860 // TODO: this only really works if the X & Y margins are the same all around |
861 // the rect | 861 // the rect (or if they are all >= 1.0). |
862 SkScalar inset = SkMinScalar(SK_Scalar1, devOutside.fRight - devInside.fRigh
t); | 862 SkScalar inset = SkMinScalar(SK_Scalar1, devOutside.fRight - devInside.fRigh
t); |
863 inset = SkMinScalar(inset, devInside.fLeft - devOutside.fLeft); | 863 inset = SkMinScalar(inset, devInside.fLeft - devOutside.fLeft); |
864 inset = SkMinScalar(inset, devInside.fTop - devOutside.fTop); | 864 inset = SkMinScalar(inset, devInside.fTop - devOutside.fTop); |
865 if (miterStroke) { | 865 if (miterStroke) { |
866 inset = SK_ScalarHalf * SkMinScalar(inset, devOutside.fBottom - devInsid
e.fBottom); | 866 inset = SK_ScalarHalf * SkMinScalar(inset, devOutside.fBottom - devInsid
e.fBottom); |
867 } else { | 867 } else { |
868 inset = SK_ScalarHalf * SkMinScalar(inset, devOutsideAssist.fBottom - de
vInside.fBottom); | 868 inset = SK_ScalarHalf * SkMinScalar(inset, devOutsideAssist.fBottom - de
vInside.fBottom); |
869 } | 869 } |
870 SkASSERT(inset >= 0); | 870 SkASSERT(inset >= 0); |
871 #else | 871 #else |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
961 // can't call mapRect for devInside since it calls sort | 961 // can't call mapRect for devInside since it calls sort |
962 combinedMatrix.mapPoints((SkPoint*)&devInside, (const SkPoint*)&rects[1], 2)
; | 962 combinedMatrix.mapPoints((SkPoint*)&devInside, (const SkPoint*)&rects[1], 2)
; |
963 | 963 |
964 if (devInside.isEmpty()) { | 964 if (devInside.isEmpty()) { |
965 this->fillAARect(gpu, target, devOutside, SkMatrix::I(), devOutside); | 965 this->fillAARect(gpu, target, devOutside, SkMatrix::I(), devOutside); |
966 return; | 966 return; |
967 } | 967 } |
968 | 968 |
969 this->geometryStrokeAARect(gpu, target, devOutside, devOutsideAssist, devIns
ide, true); | 969 this->geometryStrokeAARect(gpu, target, devOutside, devOutsideAssist, devIns
ide, true); |
970 } | 970 } |
OLD | NEW |