119dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org/* 219dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org * Copyright 2013 Google Inc. 319dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org * 419dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be 519dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org * found in the LICENSE file. 619dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org */ 719dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org 819dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org#if SK_SUPPORT_GPU 919dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org 1019dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org#include "GrContext.h" 1119dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org#include "GrContextFactory.h" 1219dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org#include "SkBitmap.h" 1319dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org#include "SkCanvas.h" 1419dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org#include "SkColor.h" 1519dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org#include "SkPaint.h" 1619dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org#include "SkRRect.h" 178f6884aab8aecd7657cf3f9cdbc682f0deca29c5tfarina@chromium.org#include "SkRect.h" 1869f6f00fd975823e825c5aa0b1b8f4416e7c812breed#include "SkSurface.h" 1919dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org#include "Test.h" 2019dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org 214ee16bfaedb14aff8cf102f1f0722ff2529a9699tfarina@chromium.orgstatic void test_drawPathEmpty(skiatest::Reporter*, SkCanvas* canvas) { 2219dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org // Filling an empty path should not crash. 2319dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org SkPaint paint; 2419dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org canvas->drawRect(SkRect(), paint); 2519dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org canvas->drawPath(SkPath(), paint); 2619dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org canvas->drawOval(SkRect(), paint); 2719dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org canvas->drawRect(SkRect(), paint); 2819dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org canvas->drawRRect(SkRRect(), paint); 2919dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org 3019dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org // Stroking an empty path should not crash. 3119dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org paint.setAntiAlias(true); 3219dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org paint.setStyle(SkPaint::kStroke_Style); 3319dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org paint.setColor(SK_ColorGRAY); 3419dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org paint.setStrokeWidth(SkIntToScalar(20)); 3519dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org paint.setStrokeJoin(SkPaint::kRound_Join); 3619dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org canvas->drawRect(SkRect(), paint); 3719dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org canvas->drawPath(SkPath(), paint); 3819dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org canvas->drawOval(SkRect(), paint); 3919dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org canvas->drawRect(SkRect(), paint); 4019dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org canvas->drawRRect(SkRRect(), paint); 4119dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org} 4219dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org 4319dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org 444ee16bfaedb14aff8cf102f1f0722ff2529a9699tfarina@chromium.orgDEF_GPUTEST(GpuDrawPath, reporter, factory) { 452f683ba958488f29fdf117a7fab7d04390b4836djvanverth@google.com return; 462f683ba958488f29fdf117a7fab7d04390b4836djvanverth@google.com 4719dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org for (int type = 0; type < GrContextFactory::kLastGLContextType; ++type) { 4819dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org GrContextFactory::GLContextType glType = static_cast<GrContextFactory::GLContextType>(type); 4919dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org 5019dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org GrContext* grContext = factory->get(glType); 5119dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org if (NULL == grContext) { 5219dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org continue; 5319dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org } 5419dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org static const int sampleCounts[] = { 0, 4, 16 }; 5519dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org 5619dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org for (size_t i = 0; i < SK_ARRAY_COUNT(sampleCounts); ++i) { 5769f6f00fd975823e825c5aa0b1b8f4416e7c812breed SkImageInfo info = SkImageInfo::MakeN32Premul(255, 255); 5869f6f00fd975823e825c5aa0b1b8f4416e7c812breed 59afe3005be3392e43bc51eb7eb2017eefaed85ad1bsalomon SkAutoTUnref<SkSurface> surface( 60afe3005be3392e43bc51eb7eb2017eefaed85ad1bsalomon SkSurface::NewRenderTarget(grContext, SkSurface::kNo_Budgeted, info, 61afe3005be3392e43bc51eb7eb2017eefaed85ad1bsalomon sampleCounts[i], NULL)); 6269f6f00fd975823e825c5aa0b1b8f4416e7c812breed test_drawPathEmpty(reporter, surface->getCanvas()); 6319dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org } 6419dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org } 6519dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org} 6619dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org 6719dd017a6256be636ccb550752bb563c4e7caeb5commit-bot@chromium.org#endif 68