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 "GrSWMaskHelper.h" | 8 #include "GrSWMaskHelper.h" |
9 | 9 |
10 #include "GrCaps.h" | 10 #include "GrCaps.h" |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 | 245 |
246 desc.fConfig = fmt_to_config(fCompressedFormat); | 246 desc.fConfig = fmt_to_config(fCompressedFormat); |
247 SkASSERT(fContext->caps()->isConfigTexturable(desc.fConfig)); | 247 SkASSERT(fContext->caps()->isConfigTexturable(desc.fConfig)); |
248 } | 248 } |
249 | 249 |
250 return fContext->textureProvider()->createApproxTexture(desc); | 250 return fContext->textureProvider()->createApproxTexture(desc); |
251 } | 251 } |
252 | 252 |
253 void GrSWMaskHelper::sendTextureData(GrTexture *texture, const GrSurfaceDesc& de
sc, | 253 void GrSWMaskHelper::sendTextureData(GrTexture *texture, const GrSurfaceDesc& de
sc, |
254 const void *data, size_t rowbytes) { | 254 const void *data, size_t rowbytes) { |
255 // If we aren't reusing scratch textures we don't need to flush before | |
256 // writing since no one else will be using 'texture' | |
257 bool reuseScratch = fContext->caps()->reuseScratchTextures(); | |
258 | |
259 // Since we're uploading to it, and it's compressed, 'texture' shouldn't | 255 // Since we're uploading to it, and it's compressed, 'texture' shouldn't |
260 // have a render target. | 256 // have a render target. |
261 SkASSERT(nullptr == texture->asRenderTarget()); | 257 SkASSERT(nullptr == texture->asRenderTarget()); |
262 | 258 |
263 texture->writePixels(0, 0, desc.fWidth, desc.fHeight, | 259 texture->writePixels(0, 0, desc.fWidth, desc.fHeight, desc.fConfig, data, ro
wbytes); |
264 desc.fConfig, data, rowbytes, | |
265 reuseScratch ? 0 : GrContext::kDontFlush_PixelOpsFlag); | |
266 } | 260 } |
267 | 261 |
268 void GrSWMaskHelper::compressTextureData(GrTexture *texture, const GrSurfaceDesc
& desc) { | 262 void GrSWMaskHelper::compressTextureData(GrTexture *texture, const GrSurfaceDesc
& desc) { |
269 | 263 |
270 SkASSERT(GrPixelConfigIsCompressed(desc.fConfig)); | 264 SkASSERT(GrPixelConfigIsCompressed(desc.fConfig)); |
271 SkASSERT(fmt_to_config(fCompressedFormat) == desc.fConfig); | 265 SkASSERT(fmt_to_config(fCompressedFormat) == desc.fConfig); |
272 | 266 |
273 SkAutoDataUnref cmpData(SkTextureCompressor::CompressBitmapToFormat(fPixels, | 267 SkAutoDataUnref cmpData(SkTextureCompressor::CompressBitmapToFormat(fPixels, |
274 fCompres
sedFormat)); | 268 fCompres
sedFormat)); |
275 SkASSERT(cmpData); | 269 SkASSERT(cmpData); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 pipelineBuilder->addCoverageFragmentProcessor( | 362 pipelineBuilder->addCoverageFragmentProcessor( |
369 GrSimpleTextureEffect::Create(texture, | 363 GrSimpleTextureEffect::Create(texture, |
370 maskMatrix, | 364 maskMatrix, |
371 GrTextureParams::kNone_Fi
lterMode, | 365 GrTextureParams::kNone_Fi
lterMode, |
372 kDevice_GrCoordSet))->unr
ef(); | 366 kDevice_GrCoordSet))->unr
ef(); |
373 | 367 |
374 SkAutoTUnref<GrDrawBatch> batch(GrRectBatchFactory::CreateNonAAFill(color, S
kMatrix::I(), | 368 SkAutoTUnref<GrDrawBatch> batch(GrRectBatchFactory::CreateNonAAFill(color, S
kMatrix::I(), |
375 dstRect,
nullptr, &invert)); | 369 dstRect,
nullptr, &invert)); |
376 target->drawBatch(*pipelineBuilder, batch); | 370 target->drawBatch(*pipelineBuilder, batch); |
377 } | 371 } |
OLD | NEW |