| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 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 "Test.h" | 9 #include "Test.h" |
| 10 #include "SkCanvas.h" | 10 #include "SkCanvas.h" |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 SkAbs32(aR - bR) <= 1 && | 220 SkAbs32(aR - bR) <= 1 && |
| 221 SkAbs32(aG - bG) <= 1 && | 221 SkAbs32(aG - bG) <= 1 && |
| 222 SkAbs32(aB - bB) <= 1; | 222 SkAbs32(aB - bB) <= 1; |
| 223 } | 223 } |
| 224 | 224 |
| 225 bool checkWrite(skiatest::Reporter* reporter, | 225 bool checkWrite(skiatest::Reporter* reporter, |
| 226 SkCanvas* canvas, | 226 SkCanvas* canvas, |
| 227 const SkBitmap& bitmap, | 227 const SkBitmap& bitmap, |
| 228 int writeX, int writeY, | 228 int writeX, int writeY, |
| 229 SkCanvas::Config8888 config8888) { | 229 SkCanvas::Config8888 config8888) { |
| 230 SkDevice* dev = canvas->getDevice(); | 230 SkBaseDevice* dev = canvas->getDevice(); |
| 231 if (!dev) { | 231 if (!dev) { |
| 232 return false; | 232 return false; |
| 233 } | 233 } |
| 234 SkBitmap devBmp = dev->accessBitmap(false); | 234 SkBitmap devBmp = dev->accessBitmap(false); |
| 235 if (devBmp.width() != DEV_W || | 235 if (devBmp.width() != DEV_W || |
| 236 devBmp.height() != DEV_H || | 236 devBmp.height() != DEV_H || |
| 237 devBmp.config() != SkBitmap::kARGB_8888_Config || | 237 devBmp.config() != SkBitmap::kARGB_8888_Config || |
| 238 devBmp.isNull()) { | 238 devBmp.isNull()) { |
| 239 return false; | 239 return false; |
| 240 } | 240 } |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 | 298 |
| 299 static const CanvasConfig gCanvasConfigs[] = { | 299 static const CanvasConfig gCanvasConfigs[] = { |
| 300 {kRaster_DevType, true}, | 300 {kRaster_DevType, true}, |
| 301 {kRaster_DevType, false}, | 301 {kRaster_DevType, false}, |
| 302 #if SK_SUPPORT_GPU && defined(SK_SCALAR_IS_FLOAT) | 302 #if SK_SUPPORT_GPU && defined(SK_SCALAR_IS_FLOAT) |
| 303 {kGpu_BottomLeft_DevType, true}, // row bytes has no meaning on gpu devices | 303 {kGpu_BottomLeft_DevType, true}, // row bytes has no meaning on gpu devices |
| 304 {kGpu_TopLeft_DevType, true}, // row bytes has no meaning on gpu devices | 304 {kGpu_TopLeft_DevType, true}, // row bytes has no meaning on gpu devices |
| 305 #endif | 305 #endif |
| 306 }; | 306 }; |
| 307 | 307 |
| 308 SkDevice* createDevice(const CanvasConfig& c, GrContext* grCtx) { | 308 SkBaseDevice* createDevice(const CanvasConfig& c, GrContext* grCtx) { |
| 309 switch (c.fDevType) { | 309 switch (c.fDevType) { |
| 310 case kRaster_DevType: { | 310 case kRaster_DevType: { |
| 311 SkBitmap bmp; | 311 SkBitmap bmp; |
| 312 size_t rowBytes = c.fTightRowBytes ? 0 : 4 * DEV_W + 100; | 312 size_t rowBytes = c.fTightRowBytes ? 0 : 4 * DEV_W + 100; |
| 313 bmp.setConfig(SkBitmap::kARGB_8888_Config, DEV_W, DEV_H, rowBytes); | 313 bmp.setConfig(SkBitmap::kARGB_8888_Config, DEV_W, DEV_H, rowBytes); |
| 314 if (!bmp.allocPixels()) { | 314 if (!bmp.allocPixels()) { |
| 315 sk_throw(); | 315 sk_throw(); |
| 316 return NULL; | 316 return NULL; |
| 317 } | 317 } |
| 318 // if rowBytes isn't tight then set the padding to a known value | 318 // if rowBytes isn't tight then set the padding to a known value |
| 319 if (rowBytes) { | 319 if (rowBytes) { |
| 320 SkAutoLockPixels alp(bmp); | 320 SkAutoLockPixels alp(bmp); |
| 321 memset(bmp.getPixels(), DEV_PAD, bmp.getSafeSize()); | 321 memset(bmp.getPixels(), DEV_PAD, bmp.getSafeSize()); |
| 322 } | 322 } |
| 323 return new SkDevice(bmp); | 323 return new SkBitmapDevice(bmp); |
| 324 } | 324 } |
| 325 #if SK_SUPPORT_GPU | 325 #if SK_SUPPORT_GPU |
| 326 case kGpu_BottomLeft_DevType: | 326 case kGpu_BottomLeft_DevType: |
| 327 case kGpu_TopLeft_DevType: | 327 case kGpu_TopLeft_DevType: |
| 328 GrTextureDesc desc; | 328 GrTextureDesc desc; |
| 329 desc.fFlags = kRenderTarget_GrTextureFlagBit; | 329 desc.fFlags = kRenderTarget_GrTextureFlagBit; |
| 330 desc.fWidth = DEV_W; | 330 desc.fWidth = DEV_W; |
| 331 desc.fHeight = DEV_H; | 331 desc.fHeight = DEV_H; |
| 332 desc.fConfig = kSkia8888_GrPixelConfig; | 332 desc.fConfig = kSkia8888_GrPixelConfig; |
| 333 desc.fOrigin = kGpu_TopLeft_DevType == c.fDevType ? | 333 desc.fOrigin = kGpu_TopLeft_DevType == c.fDevType ? |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 if (!GrContextFactory::IsRenderingGLContext(type)) { | 428 if (!GrContextFactory::IsRenderingGLContext(type)) { |
| 429 continue; | 429 continue; |
| 430 } | 430 } |
| 431 context = factory->get(type); | 431 context = factory->get(type); |
| 432 if (NULL == context) { | 432 if (NULL == context) { |
| 433 continue; | 433 continue; |
| 434 } | 434 } |
| 435 } | 435 } |
| 436 #endif | 436 #endif |
| 437 | 437 |
| 438 SkAutoTUnref<SkDevice> device(createDevice(gCanvasConfigs[i], contex
t)); | 438 SkAutoTUnref<SkBaseDevice> device(createDevice(gCanvasConfigs[i], co
ntext)); |
| 439 SkCanvas canvas(device); | 439 SkCanvas canvas(device); |
| 440 | 440 |
| 441 static const SkCanvas::Config8888 gSrcConfigs[] = { | 441 static const SkCanvas::Config8888 gSrcConfigs[] = { |
| 442 SkCanvas::kNative_Premul_Config8888, | 442 SkCanvas::kNative_Premul_Config8888, |
| 443 SkCanvas::kNative_Unpremul_Config8888, | 443 SkCanvas::kNative_Unpremul_Config8888, |
| 444 SkCanvas::kBGRA_Premul_Config8888, | 444 SkCanvas::kBGRA_Premul_Config8888, |
| 445 SkCanvas::kBGRA_Unpremul_Config8888, | 445 SkCanvas::kBGRA_Unpremul_Config8888, |
| 446 SkCanvas::kRGBA_Premul_Config8888, | 446 SkCanvas::kRGBA_Premul_Config8888, |
| 447 SkCanvas::kRGBA_Unpremul_Config8888, | 447 SkCanvas::kRGBA_Unpremul_Config8888, |
| 448 }; | 448 }; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 468 } | 468 } |
| 469 } | 469 } |
| 470 } | 470 } |
| 471 } | 471 } |
| 472 } | 472 } |
| 473 } | 473 } |
| 474 } | 474 } |
| 475 | 475 |
| 476 #include "TestClassDef.h" | 476 #include "TestClassDef.h" |
| 477 DEFINE_GPUTESTCLASS("WritePixels", WritePixelsTestClass, WritePixelsTest) | 477 DEFINE_GPUTESTCLASS("WritePixels", WritePixelsTestClass, WritePixelsTest) |
| OLD | NEW |