140ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon/* 240ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon * Copyright 2016 Google Inc. 340ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon * 440ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon * Use of this source code is governed by a BSD-style license that can be 540ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon * found in the LICENSE file. 640ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon */ 740ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon 840ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon#include "Test.h" 940ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon#include "SkCanvas.h" 1040ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon#include "SkSurface.h" 1140ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon 1240ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon// This passes by not crashing. 1340ef48580b8bd47355ccf05e43d8032c10a77bbebsalomonstatic void test(SkCanvas* canvas) { 1440ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon SkPaint paint; 1540ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon paint.setAntiAlias(true); 1640ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon canvas->scale(63, 0); 1740ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon static const char kTxt[] = "A"; 1840ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon canvas->drawText(kTxt, SK_ARRAY_COUNT(kTxt), 50, 50, paint); 1940ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon} 2040ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon 2140ef48580b8bd47355ccf05e43d8032c10a77bbebsalomonDEF_TEST(skbug5221, r) { 2240ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon sk_sp<SkSurface> surface(SkSurface::MakeRaster(SkImageInfo::MakeN32Premul(256, 256))); 2340ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon test(surface->getCanvas()); 2440ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon} 2540ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon 2640ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon#if SK_SUPPORT_GPU 2740ef48580b8bd47355ccf05e43d8032c10a77bbebsalomonDEF_GPUTEST_FOR_ALL_CONTEXTS(skbug5221_GPU, r, contextInfo) { 288b7451aaf6b1c71e9d343a4df107893db277b6aabsalomon sk_sp<SkSurface> surface(SkSurface::MakeRenderTarget(contextInfo.grContext(), SkBudgeted::kYes, 297e922765545f42ce691e4f3d5fbbd4e44ba47ff1robertphillips SkImageInfo::MakeN32Premul(256, 256))); 3040ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon test(surface->getCanvas()); 3140ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon} 3240ef48580b8bd47355ccf05e43d8032c10a77bbebsalomon#endif 33