Home | History | Annotate | Download | only in gpu
      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 
     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