Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(306)

Side by Side Diff: src/gpu/GrAtlasTextContext.cpp

Issue 1076853002: fix for perf regression on ugamsolutions / msaa16 (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: nit Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/gpu/GrBatchFontCache.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 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 #include "GrAtlasTextContext.h" 7 #include "GrAtlasTextContext.h"
8 8
9 #include "GrAtlas.h" 9 #include "GrAtlas.h"
10 #include "GrBatch.h" 10 #include "GrBatch.h"
(...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 694
695 void generateGeometry(GrBatchTarget* batchTarget, const GrPipeline* pipeline ) override { 695 void generateGeometry(GrBatchTarget* batchTarget, const GrPipeline* pipeline ) override {
696 // if we have RGB, then we won't have any SkShaders so no need to use a localmatrix. 696 // if we have RGB, then we won't have any SkShaders so no need to use a localmatrix.
697 // TODO actually only invert if we don't have RGBA 697 // TODO actually only invert if we don't have RGBA
698 SkMatrix localMatrix; 698 SkMatrix localMatrix;
699 if (this->usesLocalCoords() && !this->viewMatrix().invert(&localMatrix)) { 699 if (this->usesLocalCoords() && !this->viewMatrix().invert(&localMatrix)) {
700 SkDebugf("Cannot invert viewmatrix\n"); 700 SkDebugf("Cannot invert viewmatrix\n");
701 return; 701 return;
702 } 702 }
703 703
704 GrTexture* texture = fFontCache->getTexture(fMaskFormat);
705 if (!texture) {
706 SkDebugf("Could not allocate backing texture for atlas\n");
707 return;
708 }
709
704 GrTextureParams params(SkShader::kClamp_TileMode, GrTextureParams::kNone _FilterMode); 710 GrTextureParams params(SkShader::kClamp_TileMode, GrTextureParams::kNone _FilterMode);
705 711
706 // This will be ignored in the non A8 case 712 // This will be ignored in the non A8 case
707 bool opaqueVertexColors = GrColorIsOpaque(this->color()); 713 bool opaqueVertexColors = GrColorIsOpaque(this->color());
708 SkAutoTUnref<const GrGeometryProcessor> gp( 714 SkAutoTUnref<const GrGeometryProcessor> gp(
709 GrBitmapTextGeoProc::Create(this->color(), 715 GrBitmapTextGeoProc::Create(this->color(),
710 fFontCache->getTexture(fMaskFormat), 716 texture,
711 params, 717 params,
712 fMaskFormat, 718 fMaskFormat,
713 opaqueVertexColors, 719 opaqueVertexColors,
714 localMatrix)); 720 localMatrix));
715 721
716 size_t vertexStride = gp->getVertexStride(); 722 size_t vertexStride = gp->getVertexStride();
717 SkASSERT(vertexStride == get_vertex_stride(fMaskFormat)); 723 SkASSERT(vertexStride == get_vertex_stride(fMaskFormat));
718 724
719 this->initDraw(batchTarget, gp, pipeline); 725 this->initDraw(batchTarget, gp, pipeline);
720 726
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
1093 1099
1094 GrColor color = grPaint.getColor(); 1100 GrColor color = grPaint.getColor();
1095 uint8_t paintAlpha = skPaint.getAlpha(); 1101 uint8_t paintAlpha = skPaint.getAlpha();
1096 for (int run = 0; run < cacheBlob->fRunCount; run++) { 1102 for (int run = 0; run < cacheBlob->fRunCount; run++) {
1097 this->flushRun(target, &pipelineBuilder, cacheBlob, run, color, paintAlp ha); 1103 this->flushRun(target, &pipelineBuilder, cacheBlob, run, color, paintAlp ha);
1098 } 1104 }
1099 1105
1100 // Now flush big glyphs 1106 // Now flush big glyphs
1101 this->flushBigGlyphs(cacheBlob, rt, grPaint, clip); 1107 this->flushBigGlyphs(cacheBlob, rt, grPaint, clip);
1102 } 1108 }
OLDNEW
« no previous file with comments | « no previous file | src/gpu/GrBatchFontCache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698