| /* | 
 |  * Copyright 2013 Google Inc. | 
 |  * | 
 |  * Use of this source code is governed by a BSD-style license that can be | 
 |  * found in the LICENSE file. | 
 |  */ | 
 |  | 
 | #if SK_SUPPORT_GPU | 
 |  | 
 | #include "GrContext.h" | 
 | #include "GrContextFactory.h" | 
 | #include "SkBitmap.h" | 
 | #include "SkCanvas.h" | 
 | #include "SkColor.h" | 
 | #include "SkPaint.h" | 
 | #include "SkRRect.h" | 
 | #include "SkRect.h" | 
 | #include "SkSurface.h" | 
 | #include "Test.h" | 
 |  | 
 | static void test_drawPathEmpty(skiatest::Reporter*, SkCanvas* canvas) { | 
 |     // Filling an empty path should not crash. | 
 |     SkPaint paint; | 
 |     canvas->drawRect(SkRect(), paint); | 
 |     canvas->drawPath(SkPath(), paint); | 
 |     canvas->drawOval(SkRect(), paint); | 
 |     canvas->drawRect(SkRect(), paint); | 
 |     canvas->drawRRect(SkRRect(), paint); | 
 |  | 
 |     // Stroking an empty path should not crash. | 
 |     paint.setAntiAlias(true); | 
 |     paint.setStyle(SkPaint::kStroke_Style); | 
 |     paint.setColor(SK_ColorGRAY); | 
 |     paint.setStrokeWidth(SkIntToScalar(20)); | 
 |     paint.setStrokeJoin(SkPaint::kRound_Join); | 
 |     canvas->drawRect(SkRect(), paint); | 
 |     canvas->drawPath(SkPath(), paint); | 
 |     canvas->drawOval(SkRect(), paint); | 
 |     canvas->drawRect(SkRect(), paint); | 
 |     canvas->drawRRect(SkRRect(), paint); | 
 | } | 
 |  | 
 |  | 
 | DEF_GPUTEST(GpuDrawPath, reporter, factory) { | 
 |     return; | 
 |  | 
 |     for (int type = 0; type < GrContextFactory::kLastGLContextType; ++type) { | 
 |         GrContextFactory::GLContextType glType = static_cast<GrContextFactory::GLContextType>(type); | 
 |  | 
 |         GrContext* grContext = factory->get(glType); | 
 |         if (NULL == grContext) { | 
 |             continue; | 
 |         } | 
 |         static const int sampleCounts[] = { 0, 4, 16 }; | 
 |  | 
 |         for (size_t i = 0; i < SK_ARRAY_COUNT(sampleCounts); ++i) { | 
 |             SkImageInfo info = SkImageInfo::MakeN32Premul(255, 255); | 
 |              | 
 |             SkAutoTUnref<SkSurface> surface( | 
 |                 SkSurface::NewRenderTarget(grContext, SkSurface::kNo_Budgeted, info, | 
 |                                            sampleCounts[i], NULL)); | 
 |             test_drawPathEmpty(reporter, surface->getCanvas()); | 
 |         } | 
 |     } | 
 | } | 
 |  | 
 | #endif |