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(AnalyticRectBatch);
21 DRAW_BATCH_TEST_EXTERN(DashBatch);
22 DRAW_BATCH_TEST_EXTERN(DefaultPathBatch);
23 DRAW_BATCH_TEST_EXTERN(CircleBatch);
24 DRAW_BATCH_TEST_EXTERN(DIEllipseBatch);
25 DRAW_BATCH_TEST_EXTERN(EllipseBatch);
26 DRAW_BATCH_TEST_EXTERN(GrDrawAtlasBatch);
27 DRAW_BATCH_TEST_EXTERN(NonAAStrokeRectBatch);
28 DRAW_BATCH_TEST_EXTERN(RRectBatch);
29 DRAW_BATCH_TEST_EXTERN(TesselatingPathBatch);
30 DRAW_BATCH_TEST_EXTERN(TextBlobBatch);
31 DRAW_BATCH_TEST_EXTERN(VerticesBatch);
32 
33 static BatchTestFunc gTestBatches[] = {
34     DRAW_BATCH_TEST_ENTRY(AAConvexPathBatch),
35     DRAW_BATCH_TEST_ENTRY(AADistanceFieldPathBatch),
36     DRAW_BATCH_TEST_ENTRY(AAFillRectBatch),
37     DRAW_BATCH_TEST_ENTRY(AAFillRectBatchLocalMatrix),
38     DRAW_BATCH_TEST_ENTRY(AAHairlineBatch),
39     DRAW_BATCH_TEST_ENTRY(AAStrokeRectBatch),
40     DRAW_BATCH_TEST_ENTRY(AnalyticRectBatch),
41     DRAW_BATCH_TEST_ENTRY(DashBatch),
42     DRAW_BATCH_TEST_ENTRY(DefaultPathBatch),
43     DRAW_BATCH_TEST_ENTRY(CircleBatch),
44     DRAW_BATCH_TEST_ENTRY(DIEllipseBatch),
45     DRAW_BATCH_TEST_ENTRY(EllipseBatch),
46     DRAW_BATCH_TEST_ENTRY(GrDrawAtlasBatch),
47     DRAW_BATCH_TEST_ENTRY(NonAAStrokeRectBatch),
48     DRAW_BATCH_TEST_ENTRY(RRectBatch),
49     DRAW_BATCH_TEST_ENTRY(TesselatingPathBatch),
50     DRAW_BATCH_TEST_ENTRY(TextBlobBatch),
51     DRAW_BATCH_TEST_ENTRY(VerticesBatch)
52 };
53 
GrRandomDrawBatch(SkRandom * random,GrContext * context)54 GrDrawBatch* GrRandomDrawBatch(SkRandom* random, GrContext* context) {
55     uint32_t index = random->nextULessThan(static_cast<uint32_t>(SK_ARRAY_COUNT(gTestBatches)));
56     BatchTestFunc func = gTestBatches[index];
57     return (*func)(random, context);
58 }
59 #endif
60