| 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 "GrClipMaskManager.h" |     8 #include "GrClipMaskManager.h" | 
|     9 #include "GrAAConvexPathRenderer.h" |     9 #include "GrAAConvexPathRenderer.h" | 
|    10 #include "GrAAHairLinePathRenderer.h" |    10 #include "GrAAHairLinePathRenderer.h" | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
|    29 //////////////////////////////////////////////////////////////////////////////// |    29 //////////////////////////////////////////////////////////////////////////////// | 
|    30 namespace { |    30 namespace { | 
|    31 // set up the draw state to enable the aa clipping mask. Besides setting up the |    31 // set up the draw state to enable the aa clipping mask. Besides setting up the | 
|    32 // stage matrix this also alters the vertex layout |    32 // stage matrix this also alters the vertex layout | 
|    33 void setup_drawstate_aaclip(const SkIRect &devBound, |    33 void setup_drawstate_aaclip(const SkIRect &devBound, | 
|    34                             GrDrawState* drawState, |    34                             GrDrawState* drawState, | 
|    35                             GrTexture* result) { |    35                             GrTexture* result) { | 
|    36     SkASSERT(drawState); |    36     SkASSERT(drawState); | 
|    37  |    37  | 
|    38     SkMatrix mat; |    38     SkMatrix mat; | 
|    39     // We want to use device coords to compute the texture coordinates. We set o
      ur matrix to be |    39     // We use device coords to compute the texture coordinates. We set our matri
      x to be a | 
|    40     // equal to the view matrix followed by an offset to the devBound, and then 
      a scaling matrix to |    40     // translation to the devBound, and then a scaling matrix to normalized coor
      ds. | 
|    41     // normalized coords. We apply this matrix to the vertex positions rather th
      an local coords. |  | 
|    42     mat.setIDiv(result->width(), result->height()); |    41     mat.setIDiv(result->width(), result->height()); | 
|    43     mat.preTranslate(SkIntToScalar(-devBound.fLeft), |    42     mat.preTranslate(SkIntToScalar(-devBound.fLeft), | 
|    44                      SkIntToScalar(-devBound.fTop)); |    43                      SkIntToScalar(-devBound.fTop)); | 
|    45     mat.preConcat(drawState->getViewMatrix()); |  | 
|    46  |    44  | 
|    47     SkIRect domainTexels = SkIRect::MakeWH(devBound.width(), devBound.height()); |    45     SkIRect domainTexels = SkIRect::MakeWH(devBound.width(), devBound.height()); | 
|    48     // This could be a long-lived effect that is cached with the alpha-mask. |    46     // This could be a long-lived effect that is cached with the alpha-mask. | 
|    49     drawState->addCoverageProcessor( |    47     drawState->addCoverageProcessor( | 
|    50         GrTextureDomainEffect::Create(result, |    48         GrTextureDomainEffect::Create(result, | 
|    51                                       mat, |    49                                       mat, | 
|    52                                       GrTextureDomain::MakeTexelDomain(result, d
      omainTexels), |    50                                       GrTextureDomain::MakeTexelDomain(result, d
      omainTexels), | 
|    53                                       GrTextureDomain::kDecal_Mode, |    51                                       GrTextureDomain::kDecal_Mode, | 
|    54                                       GrTextureParams::kNone_FilterMode, |    52                                       GrTextureParams::kNone_FilterMode, | 
|    55                                       kPosition_GrCoordSet))->unref(); |    53                                       kDevice_GrCoordSet))->unref(); | 
|    56 } |    54 } | 
|    57  |    55  | 
|    58 bool path_needs_SW_renderer(GrContext* context, |    56 bool path_needs_SW_renderer(GrContext* context, | 
|    59                             const GrDrawTarget* gpu, |    57                             const GrDrawTarget* gpu, | 
|    60                             const GrDrawState* drawState, |    58                             const GrDrawState* drawState, | 
|    61                             const SkPath& origPath, |    59                             const SkPath& origPath, | 
|    62                             const SkStrokeRec& stroke, |    60                             const SkStrokeRec& stroke, | 
|    63                             bool doAA) { |    61                             bool doAA) { | 
|    64     // the gpu alpha mask will draw the inverse paths as non-inverse to a temp b
      uffer |    62     // the gpu alpha mask will draw the inverse paths as non-inverse to a temp b
      uffer | 
|    65     SkTCopyOnFirstWrite<SkPath> path(origPath); |    63     SkTCopyOnFirstWrite<SkPath> path(origPath); | 
| (...skipping 994 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1060 } |  1058 } | 
|  1061  |  1059  | 
|  1062 void GrClipMaskManager::adjustPathStencilParams(const GrStencilBuffer* stencilBu
      ffer, |  1060 void GrClipMaskManager::adjustPathStencilParams(const GrStencilBuffer* stencilBu
      ffer, | 
|  1063                                                 GrStencilSettings* settings) { |  1061                                                 GrStencilSettings* settings) { | 
|  1064     // TODO: dynamically attach a stencil buffer |  1062     // TODO: dynamically attach a stencil buffer | 
|  1065     if (stencilBuffer) { |  1063     if (stencilBuffer) { | 
|  1066         int stencilBits = stencilBuffer->bits(); |  1064         int stencilBits = stencilBuffer->bits(); | 
|  1067         this->adjustStencilParams(settings, fClipMode, stencilBits); |  1065         this->adjustStencilParams(settings, fClipMode, stencilBits); | 
|  1068     } |  1066     } | 
|  1069 } |  1067 } | 
| OLD | NEW |