OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 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 "GrTest.h" | 9 #include "GrTest.h" |
10 | 10 |
11 #include "GrBatchAtlas.h" | 11 #include "GrBatchAtlas.h" |
12 #include "GrBatchFontCache.h" | 12 #include "GrBatchFontCache.h" |
13 #include "GrContextOptions.h" | 13 #include "GrContextOptions.h" |
14 #include "GrDrawContext.h" | 14 #include "GrDrawContext.h" |
15 #include "GrDrawingManager.h" | 15 #include "GrDrawingManager.h" |
16 #include "GrGpuResourceCacheAccess.h" | 16 #include "GrGpuResourceCacheAccess.h" |
17 #include "GrResourceCache.h" | 17 #include "GrResourceCache.h" |
18 #include "GrTextBlobCache.h" | 18 #include "GrTextBlobCache.h" |
| 19 |
| 20 #include "SkGpuDevice.h" |
19 #include "SkGrPriv.h" | 21 #include "SkGrPriv.h" |
20 #include "SkString.h" | 22 #include "SkString.h" |
21 | 23 |
22 namespace GrTest { | 24 namespace GrTest { |
23 void SetupAlwaysEvictAtlas(GrContext* context) { | 25 void SetupAlwaysEvictAtlas(GrContext* context) { |
24 // These sizes were selected because they allow each atlas to hold a single
plot and will thus | 26 // These sizes were selected because they allow each atlas to hold a single
plot and will thus |
25 // stress the atlas | 27 // stress the atlas |
26 int dim = GrBatchAtlas::kGlyphMaxDim; | 28 int dim = GrBatchAtlas::kGlyphMaxDim; |
27 GrBatchAtlasConfig configs[3]; | 29 GrBatchAtlasConfig configs[3]; |
28 configs[kA8_GrMaskFormat].fWidth = dim; | 30 configs[kA8_GrMaskFormat].fWidth = dim; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 return fGpu->stats()->dumpKeyValuePairs(keys, values); | 132 return fGpu->stats()->dumpKeyValuePairs(keys, values); |
131 #endif | 133 #endif |
132 } | 134 } |
133 | 135 |
134 void GrContext::printGpuStats() const { | 136 void GrContext::printGpuStats() const { |
135 SkString out; | 137 SkString out; |
136 this->dumpGpuStats(&out); | 138 this->dumpGpuStats(&out); |
137 SkDebugf("%s", out.c_str()); | 139 SkDebugf("%s", out.c_str()); |
138 } | 140 } |
139 | 141 |
140 void GrContext::drawFontCache(const SkRect& rect, GrMaskFormat format, const SkP
aint& paint, | 142 GrTexture* GrContext::getFontAtlasTexture(GrMaskFormat format) { |
141 GrRenderTarget* target) { | |
142 GrBatchFontCache* cache = this->getBatchFontCache(); | 143 GrBatchFontCache* cache = this->getBatchFontCache(); |
143 | 144 |
144 GrTexture* atlas = cache->getTexture(format); | 145 return cache->getTexture(format); |
| 146 } |
145 | 147 |
146 SkAutoTUnref<GrDrawContext> drawContext(this->drawContext(target)); | 148 void SkGpuDevice::drawTexture(GrTexture* tex, const SkRect& dst, const SkPaint&
paint) { |
147 // TODO: add drawContext method to encapsulate this. | |
148 | |
149 GrPaint grPaint; | 149 GrPaint grPaint; |
150 SkMatrix mat; | 150 SkMatrix mat; |
151 mat.reset(); | 151 mat.reset(); |
152 if (!SkPaintToGrPaint(this, paint, mat, &grPaint)) { | 152 if (!SkPaintToGrPaint(this->context(), paint, mat, &grPaint)) { |
153 return; | 153 return; |
154 } | 154 } |
155 SkMatrix textureMat; | 155 SkMatrix textureMat; |
156 textureMat.reset(); | 156 textureMat.reset(); |
157 // TODO: use setScaleTranslate() | 157 textureMat[SkMatrix::kMScaleX] = 1.0f/dst.width(); |
158 textureMat[SkMatrix::kMScaleX] = 1.0f/rect.width(); | 158 textureMat[SkMatrix::kMScaleY] = 1.0f/dst.height(); |
159 textureMat[SkMatrix::kMScaleY] = 1.0f/rect.height(); | 159 textureMat[SkMatrix::kMTransX] = -dst.fLeft/dst.width(); |
160 textureMat[SkMatrix::kMTransX] = -rect.fLeft/rect.width(); | 160 textureMat[SkMatrix::kMTransY] = -dst.fTop/dst.height(); |
161 textureMat[SkMatrix::kMTransY] = -rect.fTop/rect.height(); | |
162 | 161 |
163 grPaint.addColorTextureProcessor(atlas, textureMat); | 162 grPaint.addColorTextureProcessor(tex, textureMat); |
164 | 163 |
165 GrClip clip; | 164 GrClip clip; |
166 drawContext->drawRect(clip, grPaint, mat, rect); | 165 fDrawContext->drawRect(clip, grPaint, mat, dst); |
167 } | 166 } |
168 | 167 |
| 168 |
169 #if GR_GPU_STATS | 169 #if GR_GPU_STATS |
170 void GrGpu::Stats::dump(SkString* out) { | 170 void GrGpu::Stats::dump(SkString* out) { |
171 out->appendf("Render Target Binds: %d\n", fRenderTargetBinds); | 171 out->appendf("Render Target Binds: %d\n", fRenderTargetBinds); |
172 out->appendf("Shader Compilations: %d\n", fShaderCompilations); | 172 out->appendf("Shader Compilations: %d\n", fShaderCompilations); |
173 out->appendf("Textures Created: %d\n", fTextureCreates); | 173 out->appendf("Textures Created: %d\n", fTextureCreates); |
174 out->appendf("Texture Uploads: %d\n", fTextureUploads); | 174 out->appendf("Texture Uploads: %d\n", fTextureUploads); |
175 out->appendf("Stencil Buffer Creates: %d\n", fStencilAttachmentCreates); | 175 out->appendf("Stencil Buffer Creates: %d\n", fStencilAttachmentCreates); |
176 out->appendf("Number of draws: %d\n", fNumDraws); | 176 out->appendf("Number of draws: %d\n", fNumDraws); |
177 } | 177 } |
178 | 178 |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
369 SkASSERT(nullptr == fGpu); | 369 SkASSERT(nullptr == fGpu); |
370 fGpu = new MockGpu(this, options); | 370 fGpu = new MockGpu(this, options); |
371 SkASSERT(fGpu); | 371 SkASSERT(fGpu); |
372 this->initCommon(options); | 372 this->initCommon(options); |
373 | 373 |
374 // We delete these because we want to test the cache starting with zero reso
urces. Also, none of | 374 // We delete these because we want to test the cache starting with zero reso
urces. Also, none of |
375 // these objects are required for any of tests that use this context. TODO:
make stop allocating | 375 // these objects are required for any of tests that use this context. TODO:
make stop allocating |
376 // resources in the buffer pools. | 376 // resources in the buffer pools. |
377 fDrawingManager->abandon(); | 377 fDrawingManager->abandon(); |
378 } | 378 } |
OLD | NEW |