| OLD | NEW | 
|---|
| 1 | 1 | 
| 2 /* | 2 /* | 
| 3  * Copyright 2015 Google Inc. | 3  * Copyright 2015 Google Inc. | 
| 4  * | 4  * | 
| 5  * Use of this source code is governed by a BSD-style license that can be | 5  * Use of this source code is governed by a BSD-style license that can be | 
| 6  * found in the LICENSE file. | 6  * found in the LICENSE file. | 
| 7  */ | 7  */ | 
| 8 | 8 | 
| 9 #include "GrAtlasTextContext.h" | 9 #include "GrAtlasTextContext.h" | 
| 10 #include "GrBatchTest.h" | 10 #include "GrBatchTest.h" | 
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 58     fDrawTarget->copySurface(dst, src, srcRect, dstPoint); | 58     fDrawTarget->copySurface(dst, src, srcRect, dstPoint); | 
| 59 } | 59 } | 
| 60 | 60 | 
| 61 GrTextContext* GrDrawContext::createTextContext(GrRenderTarget* renderTarget, | 61 GrTextContext* GrDrawContext::createTextContext(GrRenderTarget* renderTarget, | 
| 62                                                 const SkSurfaceProps& surfacePro
     ps) { | 62                                                 const SkSurfaceProps& surfacePro
     ps) { | 
| 63     if (fContext->caps()->shaderCaps()->pathRenderingSupport() && | 63     if (fContext->caps()->shaderCaps()->pathRenderingSupport() && | 
| 64         renderTarget->isStencilBufferMultisampled() && | 64         renderTarget->isStencilBufferMultisampled() && | 
| 65         fSurfaceProps.isUseDeviceIndependentFonts()) { | 65         fSurfaceProps.isUseDeviceIndependentFonts()) { | 
| 66         GrStencilAttachment* sb = renderTarget->renderTargetPriv().attachStencil
     Attachment(); | 66         GrStencilAttachment* sb = renderTarget->renderTargetPriv().attachStencil
     Attachment(); | 
| 67         if (sb) { | 67         if (sb) { | 
| 68             return GrStencilAndCoverTextContext::Create(fContext, this, surfaceP
     rops); | 68             return GrStencilAndCoverTextContext::Create(fContext, surfaceProps); | 
| 69         } | 69         } | 
| 70     } | 70     } | 
| 71 | 71 | 
| 72     return GrAtlasTextContext::Create(fContext, this, surfaceProps); | 72     return GrAtlasTextContext::Create(fContext, surfaceProps); | 
| 73 } | 73 } | 
| 74 | 74 | 
| 75 void GrDrawContext::drawText(GrRenderTarget* rt, const GrClip& clip, const GrPai
     nt& grPaint, | 75 void GrDrawContext::drawText(GrRenderTarget* rt, const GrClip& clip, const GrPai
     nt& grPaint, | 
| 76                              const SkPaint& skPaint, | 76                              const SkPaint& skPaint, | 
| 77                              const SkMatrix& viewMatrix, | 77                              const SkMatrix& viewMatrix, | 
| 78                              const char text[], size_t byteLength, | 78                              const char text[], size_t byteLength, | 
| 79                              SkScalar x, SkScalar y, const SkIRect& clipBounds) 
     { | 79                              SkScalar x, SkScalar y, const SkIRect& clipBounds) 
     { | 
| 80     if (!fTextContext) { | 80     if (!fTextContext) { | 
| 81         fTextContext = this->createTextContext(rt, fSurfaceProps); | 81         fTextContext = this->createTextContext(rt, fSurfaceProps); | 
| 82     } | 82     } | 
| 83 | 83 | 
| 84     fTextContext->drawText(rt, clip, grPaint, skPaint, viewMatrix, | 84     fTextContext->drawText(this, rt, clip, grPaint, skPaint, viewMatrix, | 
| 85                            text, byteLength, x, y, clipBounds); | 85                            text, byteLength, x, y, clipBounds); | 
| 86 | 86 | 
| 87 } | 87 } | 
| 88 void GrDrawContext::drawPosText(GrRenderTarget* rt, const GrClip& clip, const Gr
     Paint& grPaint, | 88 void GrDrawContext::drawPosText(GrRenderTarget* rt, const GrClip& clip, const Gr
     Paint& grPaint, | 
| 89                                 const SkPaint& skPaint, | 89                                 const SkPaint& skPaint, | 
| 90                                 const SkMatrix& viewMatrix, | 90                                 const SkMatrix& viewMatrix, | 
| 91                                 const char text[], size_t byteLength, | 91                                 const char text[], size_t byteLength, | 
| 92                                 const SkScalar pos[], int scalarsPerPosition, | 92                                 const SkScalar pos[], int scalarsPerPosition, | 
| 93                                 const SkPoint& offset, const SkIRect& clipBounds
     ) { | 93                                 const SkPoint& offset, const SkIRect& clipBounds
     ) { | 
| 94     if (!fTextContext) { | 94     if (!fTextContext) { | 
| 95         fTextContext = this->createTextContext(rt, fSurfaceProps); | 95         fTextContext = this->createTextContext(rt, fSurfaceProps); | 
| 96     } | 96     } | 
| 97 | 97 | 
| 98     fTextContext->drawPosText(rt, clip, grPaint, skPaint, viewMatrix, text, byte
     Length, | 98     fTextContext->drawPosText(this, rt, clip, grPaint, skPaint, viewMatrix, text
     , byteLength, | 
| 99                                pos, scalarsPerPosition, offset, clipBounds); | 99                               pos, scalarsPerPosition, offset, clipBounds); | 
| 100 | 100 | 
| 101 } | 101 } | 
| 102 void GrDrawContext::drawTextBlob(GrRenderTarget* rt, const GrClip& clip, const S
     kPaint& skPaint, | 102 void GrDrawContext::drawTextBlob(GrRenderTarget* rt, const GrClip& clip, const S
     kPaint& skPaint, | 
| 103                                  const SkMatrix& viewMatrix, const SkTextBlob* b
     lob, | 103                                  const SkMatrix& viewMatrix, const SkTextBlob* b
     lob, | 
| 104                                  SkScalar x, SkScalar y, | 104                                  SkScalar x, SkScalar y, | 
| 105                                  SkDrawFilter* filter, const SkIRect& clipBounds
     ) { | 105                                  SkDrawFilter* filter, const SkIRect& clipBounds
     ) { | 
| 106     if (!fTextContext) { | 106     if (!fTextContext) { | 
| 107         fTextContext = this->createTextContext(rt, fSurfaceProps); | 107         fTextContext = this->createTextContext(rt, fSurfaceProps); | 
| 108     } | 108     } | 
| 109 | 109 | 
| 110     fTextContext->drawTextBlob(rt, clip, skPaint, viewMatrix, blob, x, y, filter
     , clipBounds); | 110     fTextContext->drawTextBlob(this, rt, | 
|  | 111                                clip, skPaint, viewMatrix, blob, x, y, filter, cl
     ipBounds); | 
| 111 } | 112 } | 
| 112 | 113 | 
| 113 void GrDrawContext::drawPaths(GrPipelineBuilder* pipelineBuilder, | 114 void GrDrawContext::drawPaths(GrPipelineBuilder* pipelineBuilder, | 
| 114                               const GrPathProcessor* pathProc, | 115                               const GrPathProcessor* pathProc, | 
| 115                               const GrPathRange* pathRange, | 116                               const GrPathRange* pathRange, | 
| 116                               const void* indices, | 117                               const void* indices, | 
| 117                               int /*GrDrawTarget::PathIndexType*/ indexType, | 118                               int /*GrDrawTarget::PathIndexType*/ indexType, | 
| 118                               const float transformValues[], | 119                               const float transformValues[], | 
| 119                               int /*GrDrawTarget::PathTransformType*/ transformT
     ype, | 120                               int /*GrDrawTarget::PathTransformType*/ transformT
     ype, | 
| 120                               int count, | 121                               int count, | 
| (...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 760     RETURN_FALSE_IF_ABANDONED | 761     RETURN_FALSE_IF_ABANDONED | 
| 761 | 762 | 
| 762     ASSERT_OWNED_RESOURCE(rt); | 763     ASSERT_OWNED_RESOURCE(rt); | 
| 763     SkASSERT(rt); | 764     SkASSERT(rt); | 
| 764     return true; | 765     return true; | 
| 765 } | 766 } | 
| 766 | 767 | 
| 767 void GrDrawContext::drawBatch(GrPipelineBuilder* pipelineBuilder, GrDrawBatch* b
     atch) { | 768 void GrDrawContext::drawBatch(GrPipelineBuilder* pipelineBuilder, GrDrawBatch* b
     atch) { | 
| 768     fDrawTarget->drawBatch(*pipelineBuilder, batch); | 769     fDrawTarget->drawBatch(*pipelineBuilder, batch); | 
| 769 } | 770 } | 
| OLD | NEW | 
|---|