OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 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 #if SK_SUPPORT_GPU | 9 #if SK_SUPPORT_GPU |
10 | 10 |
11 #include "GrContext.h" | 11 #include "GrContext.h" |
12 #include "GrContextFactory.h" | 12 #include "GrContextFactory.h" |
13 #include "SkBitmap.h" | 13 #include "SkBitmap.h" |
14 #include "SkCanvas.h" | 14 #include "SkCanvas.h" |
15 #include "SkColor.h" | 15 #include "SkColor.h" |
16 #include "SkGpuDevice.h" | 16 #include "SkGpuDevice.h" |
17 #include "SkPaint.h" | 17 #include "SkPaint.h" |
18 #include "SkPixelRef.h" | 18 #include "SkPixelRef.h" |
19 #include "SkRect.h" | 19 #include "SkRect.h" |
20 #include "Test.h" | 20 #include "Test.h" |
21 | 21 |
| 22 struct Pair { |
| 23 SkColorType fColorType; |
| 24 const char* fValid; |
| 25 }; |
| 26 |
| 27 #ifdef SK_SUPPORT_DEEPCOPYTO_CONFIG |
22 static const char* boolStr(bool value) { | 28 static const char* boolStr(bool value) { |
23 return value ? "true" : "false"; | 29 return value ? "true" : "false"; |
24 } | 30 } |
25 | 31 |
26 // these are in the same order as the SkBitmap::Config enum | 32 // these are in the same order as the SkBitmap::Config enum |
27 static const char* gColorTypeName[] = { | 33 static const char* gColorTypeName[] = { |
28 "None", "8888" | 34 "None", "8888" |
29 }; | 35 }; |
30 | 36 |
31 struct Pair { | |
32 SkColorType fColorType; | |
33 const char* fValid; | |
34 }; | |
35 | |
36 /** | 37 /** |
37 * Check to ensure that copying a GPU-backed SkBitmap behaved as expected. | 38 * Check to ensure that copying a GPU-backed SkBitmap behaved as expected. |
38 * @param reporter Used to report failures. | 39 * @param reporter Used to report failures. |
39 * @param desiredCT colorType being copied to. If the copy succeeded, dst must
have this Config. | 40 * @param desiredCT colorType being copied to. If the copy succeeded, dst must
have this Config. |
40 * @param success True if the copy succeeded. | 41 * @param success True if the copy succeeded. |
41 * @param src A GPU-backed SkBitmap that had copyTo or deepCopyTo called on it. | 42 * @param src A GPU-backed SkBitmap that had copyTo or deepCopyTo called on it. |
42 * @param dst SkBitmap that was copied to. | 43 * @param dst SkBitmap that was copied to. |
43 * @param expectSameGenID Whether the genIDs should be the same if success is t
rue. | 44 * @param expectSameGenID Whether the genIDs should be the same if success is t
rue. |
44 */ | 45 */ |
45 static void TestIndividualCopy(skiatest::Reporter* reporter, const SkColorType d
esiredCT, | 46 static void TestIndividualCopy(skiatest::Reporter* reporter, const SkColorType d
esiredCT, |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 REPORTER_ASSERT(reporter, src.getGenerationID() != dst.getGeneration
ID()); | 93 REPORTER_ASSERT(reporter, src.getGenerationID() != dst.getGeneration
ID()); |
93 } | 94 } |
94 } else { | 95 } else { |
95 // dst should be unchanged from its initial state | 96 // dst should be unchanged from its initial state |
96 REPORTER_ASSERT(reporter, dst.config() == SkBitmap::kNo_Config); | 97 REPORTER_ASSERT(reporter, dst.config() == SkBitmap::kNo_Config); |
97 REPORTER_ASSERT(reporter, dst.width() == 0); | 98 REPORTER_ASSERT(reporter, dst.width() == 0); |
98 REPORTER_ASSERT(reporter, dst.height() == 0); | 99 REPORTER_ASSERT(reporter, dst.height() == 0); |
99 } | 100 } |
100 | 101 |
101 } | 102 } |
| 103 #endif |
102 | 104 |
103 // Stripped down version of TestBitmapCopy that checks basic fields (width, heig
ht, config, genID) | 105 // Stripped down version of TestBitmapCopy that checks basic fields (width, heig
ht, config, genID) |
104 // to ensure that they were copied properly. | 106 // to ensure that they were copied properly. |
105 DEF_GPUTEST(GpuBitmapCopy, reporter, factory) { | 107 DEF_GPUTEST(GpuBitmapCopy, reporter, factory) { |
106 #ifdef SK_BUILD_FOR_ANDROID // https://code.google.com/p/skia/issues/detail?id=7
53 | 108 #ifdef SK_BUILD_FOR_ANDROID // https://code.google.com/p/skia/issues/detail?id=7
53 |
107 return; | 109 return; |
108 #endif | 110 #endif |
109 for (int type = 0; type < GrContextFactory::kLastGLContextType; ++type) { | 111 for (int type = 0; type < GrContextFactory::kLastGLContextType; ++type) { |
110 GrContextFactory::GLContextType glType = static_cast<GrContextFactory::G
LContextType>(type); | 112 GrContextFactory::GLContextType glType = static_cast<GrContextFactory::G
LContextType>(type); |
111 if (!GrContextFactory::IsRenderingGLContext(glType)) { | 113 if (!GrContextFactory::IsRenderingGLContext(glType)) { |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 TestIndividualCopy(reporter, gPairs[j].fColorType, success,
trueSubset, subsetCopy, | 232 TestIndividualCopy(reporter, gPairs[j].fColorType, success,
trueSubset, subsetCopy, |
231 true); | 233 true); |
232 } | 234 } |
233 } // for (size_t j = ... | 235 } // for (size_t j = ... |
234 #endif | 236 #endif |
235 } // for (size_t i = ... | 237 } // for (size_t i = ... |
236 } // GrContextFactory::GLContextType | 238 } // GrContextFactory::GLContextType |
237 } | 239 } |
238 | 240 |
239 #endif | 241 #endif |
OLD | NEW |