aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrBatchTest.cpp
blob: 562c56990d0e95b087fb0f389620656b87009f0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
 * Copyright 2015 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#include "GrBatchTest.h"
#include "SkRandom.h"
#include "SkTypes.h"

#ifdef GR_TEST_UTILS

DRAW_BATCH_TEST_EXTERN(AAConvexPathOp);
DRAW_BATCH_TEST_EXTERN(AADistanceFieldPathOp);
DRAW_BATCH_TEST_EXTERN(AAFillRectOp);
DRAW_BATCH_TEST_EXTERN(AAFillRectOpLocalMatrix);
DRAW_BATCH_TEST_EXTERN(AAFlatteningConvexPathOp)
DRAW_BATCH_TEST_EXTERN(AAHairlineOp);
DRAW_BATCH_TEST_EXTERN(AAStrokeRectOp);
DRAW_BATCH_TEST_EXTERN(AnalyticRectOp);
DRAW_BATCH_TEST_EXTERN(DashOp);
DRAW_BATCH_TEST_EXTERN(DefaultPathOp);
DRAW_BATCH_TEST_EXTERN(CircleOp);
DRAW_BATCH_TEST_EXTERN(DIEllipseOp);
DRAW_BATCH_TEST_EXTERN(EllipseOp);
DRAW_BATCH_TEST_EXTERN(GrDrawAtlasOp);
DRAW_BATCH_TEST_EXTERN(NonAAStrokeRectOp);
DRAW_BATCH_TEST_EXTERN(PLSPathOp);
DRAW_BATCH_TEST_EXTERN(RRectOp);
DRAW_BATCH_TEST_EXTERN(TesselatingPathOp);
DRAW_BATCH_TEST_EXTERN(TextBlobBatch);
DRAW_BATCH_TEST_EXTERN(VerticesOp);

static BatchTestFunc gTestBatches[] = {
    DRAW_BATCH_TEST_ENTRY(AAConvexPathOp),
    DRAW_BATCH_TEST_ENTRY(AADistanceFieldPathOp),
    DRAW_BATCH_TEST_ENTRY(AAFillRectOp),
    DRAW_BATCH_TEST_ENTRY(AAFillRectOpLocalMatrix),
    DRAW_BATCH_TEST_ENTRY(AAFlatteningConvexPathOp),
    DRAW_BATCH_TEST_ENTRY(AAHairlineOp),
    DRAW_BATCH_TEST_ENTRY(AAStrokeRectOp),
    DRAW_BATCH_TEST_ENTRY(AnalyticRectOp),
    DRAW_BATCH_TEST_ENTRY(DashOp),
    DRAW_BATCH_TEST_ENTRY(DefaultPathOp),
    DRAW_BATCH_TEST_ENTRY(CircleOp),
    DRAW_BATCH_TEST_ENTRY(DIEllipseOp),
    DRAW_BATCH_TEST_ENTRY(EllipseOp),
    DRAW_BATCH_TEST_ENTRY(GrDrawAtlasOp),
    DRAW_BATCH_TEST_ENTRY(NonAAStrokeRectOp),
    // This currently hits an assert when the GrDisableColorXPFactory is randomly selected.
    // DRAW_BATCH_TEST_ENTRY(PLSPathOp),
    DRAW_BATCH_TEST_ENTRY(RRectOp),
    DRAW_BATCH_TEST_ENTRY(TesselatingPathOp),
    DRAW_BATCH_TEST_ENTRY(TextBlobBatch),
    DRAW_BATCH_TEST_ENTRY(VerticesOp)
};

GrDrawOp* GrRandomDrawBatch(SkRandom* random, GrContext* context) {
    uint32_t index = random->nextULessThan(static_cast<uint32_t>(SK_ARRAY_COUNT(gTestBatches)));
    BatchTestFunc func = gTestBatches[index];
    return (*func)(random, context);
}
#endif