OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 "SkGpuDevice.h" | 8 #include "SkGpuDevice.h" |
9 | 9 |
10 #include "effects/GrBicubicEffect.h" | 10 #include "effects/GrBicubicEffect.h" |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
232 info.fColorType = kN32_SkColorType; | 232 info.fColorType = kN32_SkColorType; |
233 if (kOpaque_SkAlphaType != info.alphaType()) { | 233 if (kOpaque_SkAlphaType != info.alphaType()) { |
234 info.fAlphaType = kPremul_SkAlphaType; // force this setting | 234 info.fAlphaType = kPremul_SkAlphaType; // force this setting |
235 } | 235 } |
236 } | 236 } |
237 | 237 |
238 GrTextureDesc desc; | 238 GrTextureDesc desc; |
239 desc.fFlags = kRenderTarget_GrTextureFlagBit; | 239 desc.fFlags = kRenderTarget_GrTextureFlagBit; |
240 desc.fWidth = info.width(); | 240 desc.fWidth = info.width(); |
241 desc.fHeight = info.height(); | 241 desc.fHeight = info.height(); |
242 desc.fConfig = SkImageInfo2GrPixelConfig(info.colorType(), info.alphaType())
; | 242 desc.fConfig = SkImageInfo2GrPixelConfig(info); |
243 desc.fSampleCnt = sampleCount; | 243 desc.fSampleCnt = sampleCount; |
244 | 244 |
245 SkAutoTUnref<GrTexture> texture(context->createUncachedTexture(desc, NULL, 0
)); | 245 SkAutoTUnref<GrTexture> texture(context->createUncachedTexture(desc, NULL, 0
)); |
246 if (!texture.get()) { | 246 if (!texture.get()) { |
247 return NULL; | 247 return NULL; |
248 } | 248 } |
249 | 249 |
250 return SkNEW_ARGS(SkGpuDevice, (context, texture.get())); | 250 return SkNEW_ARGS(SkGpuDevice, (context, texture.get())); |
251 } | 251 } |
252 | 252 |
(...skipping 26 matching lines...) Expand all Loading... |
279 fContext->setRenderTarget(fRenderTarget); | 279 fContext->setRenderTarget(fRenderTarget); |
280 } | 280 } |
281 | 281 |
282 /////////////////////////////////////////////////////////////////////////////// | 282 /////////////////////////////////////////////////////////////////////////////// |
283 | 283 |
284 bool SkGpuDevice::onReadPixels(const SkImageInfo& dstInfo, void* dstPixels, size
_t dstRowBytes, | 284 bool SkGpuDevice::onReadPixels(const SkImageInfo& dstInfo, void* dstPixels, size
_t dstRowBytes, |
285 int x, int y) { | 285 int x, int y) { |
286 DO_DEFERRED_CLEAR(); | 286 DO_DEFERRED_CLEAR(); |
287 | 287 |
288 // TODO: teach fRenderTarget to take ImageInfo directly to specify the src p
ixels | 288 // TODO: teach fRenderTarget to take ImageInfo directly to specify the src p
ixels |
289 GrPixelConfig config = SkImageInfo2GrPixelConfig(dstInfo.colorType(), dstInf
o.alphaType()); | 289 GrPixelConfig config = SkImageInfo2GrPixelConfig(dstInfo); |
290 if (kUnknown_GrPixelConfig == config) { | 290 if (kUnknown_GrPixelConfig == config) { |
291 return false; | 291 return false; |
292 } | 292 } |
293 | 293 |
294 uint32_t flags = 0; | 294 uint32_t flags = 0; |
295 if (kUnpremul_SkAlphaType == dstInfo.alphaType()) { | 295 if (kUnpremul_SkAlphaType == dstInfo.alphaType()) { |
296 flags = GrContext::kUnpremul_PixelOpsFlag; | 296 flags = GrContext::kUnpremul_PixelOpsFlag; |
297 } | 297 } |
298 return fContext->readRenderTargetPixels(fRenderTarget, x, y, dstInfo.width()
, dstInfo.height(), | 298 return fContext->readRenderTargetPixels(fRenderTarget, x, y, dstInfo.width()
, dstInfo.height(), |
299 config, dstPixels, dstRowBytes, flag
s); | 299 config, dstPixels, dstRowBytes, flag
s); |
300 } | 300 } |
301 | 301 |
302 bool SkGpuDevice::onWritePixels(const SkImageInfo& info, const void* pixels, siz
e_t rowBytes, | 302 bool SkGpuDevice::onWritePixels(const SkImageInfo& info, const void* pixels, siz
e_t rowBytes, |
303 int x, int y) { | 303 int x, int y) { |
304 // TODO: teach fRenderTarget to take ImageInfo directly to specify the src p
ixels | 304 // TODO: teach fRenderTarget to take ImageInfo directly to specify the src p
ixels |
305 GrPixelConfig config = SkImageInfo2GrPixelConfig(info.colorType(), info.alph
aType()); | 305 GrPixelConfig config = SkImageInfo2GrPixelConfig(info); |
306 if (kUnknown_GrPixelConfig == config) { | 306 if (kUnknown_GrPixelConfig == config) { |
307 return false; | 307 return false; |
308 } | 308 } |
309 uint32_t flags = 0; | 309 uint32_t flags = 0; |
310 if (kUnpremul_SkAlphaType == info.alphaType()) { | 310 if (kUnpremul_SkAlphaType == info.alphaType()) { |
311 flags = GrContext::kUnpremul_PixelOpsFlag; | 311 flags = GrContext::kUnpremul_PixelOpsFlag; |
312 } | 312 } |
313 fRenderTarget->writePixels(x, y, info.width(), info.height(), config, pixels
, rowBytes, flags); | 313 fRenderTarget->writePixels(x, y, info.width(), info.height(), config, pixels
, rowBytes, flags); |
314 | 314 |
315 // need to bump our genID for compatibility with clients that "know" we have
a bitmap | 315 // need to bump our genID for compatibility with clients that "know" we have
a bitmap |
(...skipping 1683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1999 const GrCachedLayer* layer = fContext->getLayerCache()->findLayerOrC
reate(picture, i); | 1999 const GrCachedLayer* layer = fContext->getLayerCache()->findLayerOrC
reate(picture, i); |
2000 | 2000 |
2001 SkDebugf("%d (%d), ", i, layer->layerID()); | 2001 SkDebugf("%d (%d), ", i, layer->layerID()); |
2002 } | 2002 } |
2003 } | 2003 } |
2004 SkDebugf("\n"); | 2004 SkDebugf("\n"); |
2005 #endif | 2005 #endif |
2006 | 2006 |
2007 return false; | 2007 return false; |
2008 } | 2008 } |
OLD | NEW |