1 /*
2  * Copyright 2015 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #include "GrBatchTest.h"
9 #include "SkRandom.h"
10 #include "SkTypes.h"
11 
12 #ifdef GR_TEST_UTILS
13 
14 DRAW_BATCH_TEST_EXTERN(AAConvexPathBatch);
15 DRAW_BATCH_TEST_EXTERN(AADistanceFieldPathBatch);
16 DRAW_BATCH_TEST_EXTERN(AAFillRectBatch);
17 DRAW_BATCH_TEST_EXTERN(AAFillRectBatchLocalMatrix);
18 DRAW_BATCH_TEST_EXTERN(AAHairlineBatch);
19 DRAW_BATCH_TEST_EXTERN(AAStrokeRectBatch);
20 DRAW_BATCH_TEST_EXTERN(DashBatch);
21 DRAW_BATCH_TEST_EXTERN(DefaultPathBatch);
22 DRAW_BATCH_TEST_EXTERN(CircleBatch);
23 DRAW_BATCH_TEST_EXTERN(DIEllipseBatch);
24 DRAW_BATCH_TEST_EXTERN(EllipseBatch);
25 DRAW_BATCH_TEST_EXTERN(GrDrawAtlasBatch);
26 DRAW_BATCH_TEST_EXTERN(NonAAStrokeRectBatch);
27 DRAW_BATCH_TEST_EXTERN(RRectBatch);
28 DRAW_BATCH_TEST_EXTERN(TesselatingPathBatch);
29 DRAW_BATCH_TEST_EXTERN(TextBlobBatch);
30 DRAW_BATCH_TEST_EXTERN(VerticesBatch);
31 
32 static BatchTestFunc gTestBatches[] = {
33     DRAW_BATCH_TEST_ENTRY(AAConvexPathBatch),
34     DRAW_BATCH_TEST_ENTRY(AADistanceFieldPathBatch),
35     DRAW_BATCH_TEST_ENTRY(AAFillRectBatch),
36     DRAW_BATCH_TEST_ENTRY(AAFillRectBatchLocalMatrix),
37     DRAW_BATCH_TEST_ENTRY(AAHairlineBatch),
38     DRAW_BATCH_TEST_ENTRY(AAStrokeRectBatch),
39     DRAW_BATCH_TEST_ENTRY(DashBatch),
40     DRAW_BATCH_TEST_ENTRY(DefaultPathBatch),
41     DRAW_BATCH_TEST_ENTRY(CircleBatch),
42     DRAW_BATCH_TEST_ENTRY(DIEllipseBatch),
43     DRAW_BATCH_TEST_ENTRY(EllipseBatch),
44     DRAW_BATCH_TEST_ENTRY(GrDrawAtlasBatch),
45     DRAW_BATCH_TEST_ENTRY(NonAAStrokeRectBatch),
46     DRAW_BATCH_TEST_ENTRY(RRectBatch),
47     DRAW_BATCH_TEST_ENTRY(TesselatingPathBatch),
48     DRAW_BATCH_TEST_ENTRY(TextBlobBatch),
49     DRAW_BATCH_TEST_ENTRY(VerticesBatch)
50 };
51 
GrRandomDrawBatch(SkRandom * random,GrContext * context)52 GrDrawBatch* GrRandomDrawBatch(SkRandom* random, GrContext* context) {
53     uint32_t index = random->nextULessThan(static_cast<uint32_t>(SK_ARRAY_COUNT(gTestBatches)));
54     BatchTestFunc func = gTestBatches[index];
55     return (*func)(random, context);
56 }
57 #endif
58