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