| 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 "gl/builders/GrGLProgramBuilder.h" | 8 #include "gl/builders/GrGLProgramBuilder.h" | 
| 9 #include "GrAARectRenderer.h" | 9 #include "GrAARectRenderer.h" | 
| 10 #include "GrGpu.h" | 10 #include "GrGpu.h" | 
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 308 static const int kVertsPerAAFillRect = 8; | 308 static const int kVertsPerAAFillRect = 8; | 
| 309 static const int kNumAAFillRectsInIndexBuffer = 256; | 309 static const int kNumAAFillRectsInIndexBuffer = 256; | 
| 310 | 310 | 
| 311 GrIndexBuffer* GrAARectRenderer::aaFillRectIndexBuffer(GrGpu* gpu) { | 311 GrIndexBuffer* GrAARectRenderer::aaFillRectIndexBuffer(GrGpu* gpu) { | 
| 312     static const size_t kAAFillRectIndexBufferSize = kIndicesPerAAFillRect * | 312     static const size_t kAAFillRectIndexBufferSize = kIndicesPerAAFillRect * | 
| 313                                                      sizeof(uint16_t) * | 313                                                      sizeof(uint16_t) * | 
| 314                                                      kNumAAFillRectsInIndexBuffe
     r; | 314                                                      kNumAAFillRectsInIndexBuffe
     r; | 
| 315 | 315 | 
| 316     if (NULL == fAAFillRectIndexBuffer) { | 316     if (NULL == fAAFillRectIndexBuffer) { | 
| 317         fAAFillRectIndexBuffer = gpu->createIndexBuffer(kAAFillRectIndexBufferSi
     ze, false); | 317         fAAFillRectIndexBuffer = gpu->createIndexBuffer(kAAFillRectIndexBufferSi
     ze, false); | 
| 318         if (NULL != fAAFillRectIndexBuffer) { | 318         if (fAAFillRectIndexBuffer) { | 
| 319             uint16_t* data = (uint16_t*) fAAFillRectIndexBuffer->map(); | 319             uint16_t* data = (uint16_t*) fAAFillRectIndexBuffer->map(); | 
| 320             bool useTempData = (NULL == data); | 320             bool useTempData = (NULL == data); | 
| 321             if (useTempData) { | 321             if (useTempData) { | 
| 322                 data = SkNEW_ARRAY(uint16_t, kNumAAFillRectsInIndexBuffer * kInd
     icesPerAAFillRect); | 322                 data = SkNEW_ARRAY(uint16_t, kNumAAFillRectsInIndexBuffer * kInd
     icesPerAAFillRect); | 
| 323             } | 323             } | 
| 324             for (int i = 0; i < kNumAAFillRectsInIndexBuffer; ++i) { | 324             for (int i = 0; i < kNumAAFillRectsInIndexBuffer; ++i) { | 
| 325                 // Each AA filled rect is drawn with 8 vertices and 10 triangles
      (8 around | 325                 // Each AA filled rect is drawn with 8 vertices and 10 triangles
      (8 around | 
| 326                 // the inner rect (for AA) and 2 for the inner rect. | 326                 // the inner rect (for AA) and 2 for the inner rect. | 
| 327                 int baseIdx = i * kIndicesPerAAFillRect; | 327                 int baseIdx = i * kIndicesPerAAFillRect; | 
| 328                 uint16_t baseVert = (uint16_t)(i * kVertsPerAAFillRect); | 328                 uint16_t baseVert = (uint16_t)(i * kVertsPerAAFillRect); | 
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 421 int GrAARectRenderer::aaStrokeRectIndexCount(bool miterStroke) { | 421 int GrAARectRenderer::aaStrokeRectIndexCount(bool miterStroke) { | 
| 422     return miterStroke ? SK_ARRAY_COUNT(gMiterStrokeAARectIdx) : | 422     return miterStroke ? SK_ARRAY_COUNT(gMiterStrokeAARectIdx) : | 
| 423                          SK_ARRAY_COUNT(gBevelStrokeAARectIdx); | 423                          SK_ARRAY_COUNT(gBevelStrokeAARectIdx); | 
| 424 } | 424 } | 
| 425 | 425 | 
| 426 GrIndexBuffer* GrAARectRenderer::aaStrokeRectIndexBuffer(GrGpu* gpu, bool miterS
     troke) { | 426 GrIndexBuffer* GrAARectRenderer::aaStrokeRectIndexBuffer(GrGpu* gpu, bool miterS
     troke) { | 
| 427     if (miterStroke) { | 427     if (miterStroke) { | 
| 428         if (NULL == fAAMiterStrokeRectIndexBuffer) { | 428         if (NULL == fAAMiterStrokeRectIndexBuffer) { | 
| 429             fAAMiterStrokeRectIndexBuffer = | 429             fAAMiterStrokeRectIndexBuffer = | 
| 430                 gpu->createIndexBuffer(sizeof(gMiterStrokeAARectIdx), false); | 430                 gpu->createIndexBuffer(sizeof(gMiterStrokeAARectIdx), false); | 
| 431             if (NULL != fAAMiterStrokeRectIndexBuffer) { | 431             if (fAAMiterStrokeRectIndexBuffer) { | 
| 432 #ifdef SK_DEBUG | 432 #ifdef SK_DEBUG | 
| 433                 bool updated = | 433                 bool updated = | 
| 434 #endif | 434 #endif | 
| 435                 fAAMiterStrokeRectIndexBuffer->updateData(gMiterStrokeAARectIdx, | 435                 fAAMiterStrokeRectIndexBuffer->updateData(gMiterStrokeAARectIdx, | 
| 436                                                           sizeof(gMiterStrokeAAR
     ectIdx)); | 436                                                           sizeof(gMiterStrokeAAR
     ectIdx)); | 
| 437                 GR_DEBUGASSERT(updated); | 437                 GR_DEBUGASSERT(updated); | 
| 438             } | 438             } | 
| 439         } | 439         } | 
| 440         return fAAMiterStrokeRectIndexBuffer; | 440         return fAAMiterStrokeRectIndexBuffer; | 
| 441     } else { | 441     } else { | 
| 442         if (NULL == fAABevelStrokeRectIndexBuffer) { | 442         if (NULL == fAABevelStrokeRectIndexBuffer) { | 
| 443             fAABevelStrokeRectIndexBuffer = | 443             fAABevelStrokeRectIndexBuffer = | 
| 444                 gpu->createIndexBuffer(sizeof(gBevelStrokeAARectIdx), false); | 444                 gpu->createIndexBuffer(sizeof(gBevelStrokeAARectIdx), false); | 
| 445             if (NULL != fAABevelStrokeRectIndexBuffer) { | 445             if (fAABevelStrokeRectIndexBuffer) { | 
| 446 #ifdef SK_DEBUG | 446 #ifdef SK_DEBUG | 
| 447                 bool updated = | 447                 bool updated = | 
| 448 #endif | 448 #endif | 
| 449                 fAABevelStrokeRectIndexBuffer->updateData(gBevelStrokeAARectIdx, | 449                 fAABevelStrokeRectIndexBuffer->updateData(gBevelStrokeAARectIdx, | 
| 450                                                           sizeof(gBevelStrokeAAR
     ectIdx)); | 450                                                           sizeof(gBevelStrokeAAR
     ectIdx)); | 
| 451                 GR_DEBUGASSERT(updated); | 451                 GR_DEBUGASSERT(updated); | 
| 452             } | 452             } | 
| 453         } | 453         } | 
| 454         return fAABevelStrokeRectIndexBuffer; | 454         return fAABevelStrokeRectIndexBuffer; | 
| 455     } | 455     } | 
| (...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 949     // can't call mapRect for devInside since it calls sort | 949     // can't call mapRect for devInside since it calls sort | 
| 950     combinedMatrix.mapPoints((SkPoint*)&devInside, (const SkPoint*)&rects[1], 2)
     ; | 950     combinedMatrix.mapPoints((SkPoint*)&devInside, (const SkPoint*)&rects[1], 2)
     ; | 
| 951 | 951 | 
| 952     if (devInside.isEmpty()) { | 952     if (devInside.isEmpty()) { | 
| 953         this->fillAARect(gpu, target, devOutside, SkMatrix::I(), devOutside); | 953         this->fillAARect(gpu, target, devOutside, SkMatrix::I(), devOutside); | 
| 954         return; | 954         return; | 
| 955     } | 955     } | 
| 956 | 956 | 
| 957     this->geometryStrokeAARect(gpu, target, devOutside, devOutsideAssist, devIns
     ide, true); | 957     this->geometryStrokeAARect(gpu, target, devOutside, devOutsideAssist, devIns
     ide, true); | 
| 958 } | 958 } | 
| OLD | NEW | 
|---|