blob: f28564532238e8043b5eac01121064dc6817a469 [file] [log] [blame]
joshualitt1107e902015-05-11 14:52:11 -07001/*
2 * Copyright 2015 Google Inc.
3 *
4 * Use of this source code is governed by a BD-style license that can be
5 * found in the LICENSE file.
6 */
7
Mike Kleinc0bd9f92019-04-23 12:05:21 -05008#include "gm/gm.h"
Ben Wagner7fde8e12019-05-01 17:28:53 -04009#include "include/core/SkBlurTypes.h"
10#include "include/core/SkCanvas.h"
11#include "include/core/SkFont.h"
12#include "include/core/SkFontTypes.h"
13#include "include/core/SkMaskFilter.h"
14#include "include/core/SkPaint.h"
15#include "include/core/SkScalar.h"
16#include "include/core/SkTextBlob.h"
17#include "include/core/SkTypeface.h"
18#include "src/core/SkBlurMask.h"
Mike Kleinc0bd9f92019-04-23 12:05:21 -050019#include "tools/ToolUtils.h"
Kevin Lubicke836c3a2023-10-20 06:55:35 -040020#include "tools/fonts/FontToolUtils.h"
joshualitt1107e902015-05-11 14:52:11 -070021
Ben Wagner7fde8e12019-05-01 17:28:53 -040022#include <string.h>
joshualitt1107e902015-05-11 14:52:11 -070023
Herb Derby5fd955e2019-01-16 11:23:29 -050024// This test ensures that glyphs whose point size is less than the SkStrike's maxmium, but
joshualitt1107e902015-05-11 14:52:11 -070025// who have a large blur, are still handled correctly
halcanary2a243382015-09-09 08:16:41 -070026DEF_SIMPLE_GM(largeglyphblur, canvas, 1920, 600) {
Mike Reedea8900e2018-12-22 17:37:30 -050027 const char text[] = "Hamburgefons";
joshualitt1107e902015-05-11 14:52:11 -070028
Kevin Lubicke836c3a2023-10-20 06:55:35 -040029 SkFont font(ToolUtils::DefaultPortableTypeface(), 256);
Mike Reedea8900e2018-12-22 17:37:30 -050030 auto blob = SkTextBlob::MakeFromText(text, strlen(text), font);
joshualitt1107e902015-05-11 14:52:11 -070031
Mike Reedea8900e2018-12-22 17:37:30 -050032 // setup up maskfilter
33 const SkScalar kSigma = SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(40));
joshualitt1107e902015-05-11 14:52:11 -070034
Mike Reedea8900e2018-12-22 17:37:30 -050035 SkPaint blurPaint;
36 blurPaint.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, kSigma));
joshualitt1107e902015-05-11 14:52:11 -070037
Mike Reedea8900e2018-12-22 17:37:30 -050038 canvas->drawTextBlob(blob, 10, 200, blurPaint);
39 canvas->drawTextBlob(blob, 10, 200, SkPaint());
joshualitt1107e902015-05-11 14:52:11 -070040
Mike Reedea8900e2018-12-22 17:37:30 -050041 size_t len = strlen(text);
Ben Wagner51e15a62019-05-07 15:38:46 -040042 canvas->drawSimpleText(text, len, SkTextEncoding::kUTF8, 10, 500, font, blurPaint);
43 canvas->drawSimpleText(text, len, SkTextEncoding::kUTF8, 10, 500, font, SkPaint());
joshualitt1107e902015-05-11 14:52:11 -070044}