| 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 "GrInvariantOutput.h" |
| 10 #include "gl/builders/GrGLProgramBuilder.h" | 11 #include "gl/builders/GrGLProgramBuilder.h" |
| 11 #include "gl/GrGLProcessor.h" | 12 #include "gl/GrGLProcessor.h" |
| 12 #include "gl/GrGLGeometryProcessor.h" | 13 #include "gl/GrGLGeometryProcessor.h" |
| 13 #include "GrTBackendProcessorFactory.h" | 14 #include "GrTBackendProcessorFactory.h" |
| 14 #include "SkColorPriv.h" | 15 #include "SkColorPriv.h" |
| 15 #include "GrGeometryProcessor.h" | 16 #include "GrGeometryProcessor.h" |
| 16 | 17 |
| 17 /////////////////////////////////////////////////////////////////////////////// | 18 /////////////////////////////////////////////////////////////////////////////// |
| 18 class GrGLAlignedRectEffect; | 19 class GrGLAlignedRectEffect; |
| 19 | 20 |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 GrAlignedRectEffect() | 95 GrAlignedRectEffect() |
| 95 : fInRect(this->addVertexAttrib(GrShaderVar("inRect", | 96 : fInRect(this->addVertexAttrib(GrShaderVar("inRect", |
| 96 kVec4f_GrSLType, | 97 kVec4f_GrSLType, |
| 97 GrShaderVar::kAttribute_Type
Modifier))) { | 98 GrShaderVar::kAttribute_Type
Modifier))) { |
| 98 } | 99 } |
| 99 | 100 |
| 100 const GrShaderVar& fInRect; | 101 const GrShaderVar& fInRect; |
| 101 | 102 |
| 102 virtual bool onIsEqual(const GrGeometryProcessor&) const SK_OVERRIDE { retur
n true; } | 103 virtual bool onIsEqual(const GrGeometryProcessor&) const SK_OVERRIDE { retur
n true; } |
| 103 | 104 |
| 104 virtual void onComputeInvariantOutput(InvariantOutput* inout) const SK_OVERR
IDE { | 105 virtual void onComputeInvariantOutput(GrInvariantOutput* inout) const SK_OVE
RRIDE { |
| 105 inout->mulByUnknownAlpha(); | 106 inout->mulByUnknownAlpha(); |
| 106 } | 107 } |
| 107 | 108 |
| 108 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; | 109 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; |
| 109 | 110 |
| 110 typedef GrGeometryProcessor INHERITED; | 111 typedef GrGeometryProcessor INHERITED; |
| 111 }; | 112 }; |
| 112 | 113 |
| 113 | 114 |
| 114 GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrAlignedRectEffect); | 115 GR_DEFINE_GEOMETRY_PROCESSOR_TEST(GrAlignedRectEffect); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 GrShaderVar::kAttribute_
TypeModifier))) | 231 GrShaderVar::kAttribute_
TypeModifier))) |
| 231 , fInWidthHeight(this->addVertexAttrib( | 232 , fInWidthHeight(this->addVertexAttrib( |
| 232 GrShaderVar("inWidthHeight", | 233 GrShaderVar("inWidthHeight", |
| 233 kVec2f_GrSLType, | 234 kVec2f_GrSLType, |
| 234 GrShaderVar::kAttribute_TypeModifier))) { | 235 GrShaderVar::kAttribute_TypeModifier))) { |
| 235 this->setWillReadFragmentPosition(); | 236 this->setWillReadFragmentPosition(); |
| 236 } | 237 } |
| 237 | 238 |
| 238 virtual bool onIsEqual(const GrGeometryProcessor&) const SK_OVERRIDE { retur
n true; } | 239 virtual bool onIsEqual(const GrGeometryProcessor&) const SK_OVERRIDE { retur
n true; } |
| 239 | 240 |
| 240 virtual void onComputeInvariantOutput(InvariantOutput* inout) const SK_OVERR
IDE { | 241 virtual void onComputeInvariantOutput(GrInvariantOutput* inout) const SK_OVE
RRIDE { |
| 241 inout->mulByUnknownAlpha(); | 242 inout->mulByUnknownAlpha(); |
| 242 } | 243 } |
| 243 | 244 |
| 244 const GrShaderVar& fInRectEdge; | 245 const GrShaderVar& fInRectEdge; |
| 245 const GrShaderVar& fInWidthHeight; | 246 const GrShaderVar& fInWidthHeight; |
| 246 | 247 |
| 247 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; | 248 GR_DECLARE_GEOMETRY_PROCESSOR_TEST; |
| 248 | 249 |
| 249 typedef GrGeometryProcessor INHERITED; | 250 typedef GrGeometryProcessor INHERITED; |
| 250 }; | 251 }; |
| (...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 910 // can't call mapRect for devInside since it calls sort | 911 // can't call mapRect for devInside since it calls sort |
| 911 combinedMatrix.mapPoints((SkPoint*)&devInside, (const SkPoint*)&rects[1], 2)
; | 912 combinedMatrix.mapPoints((SkPoint*)&devInside, (const SkPoint*)&rects[1], 2)
; |
| 912 | 913 |
| 913 if (devInside.isEmpty()) { | 914 if (devInside.isEmpty()) { |
| 914 this->fillAARect(target, devOutside, SkMatrix::I(), devOutside); | 915 this->fillAARect(target, devOutside, SkMatrix::I(), devOutside); |
| 915 return; | 916 return; |
| 916 } | 917 } |
| 917 | 918 |
| 918 this->geometryStrokeAARect(target, devOutside, devOutsideAssist, devInside,
true); | 919 this->geometryStrokeAARect(target, devOutside, devOutsideAssist, devInside,
true); |
| 919 } | 920 } |
| OLD | NEW |