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