| /* | |
| * Copyright 2026 Google LLC | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #include "gm/gm.h" | |
| #include "include/core/SkCanvas.h" | |
| #include "include/core/SkColor.h" | |
| #include "include/core/SkPaint.h" | |
| #include "include/core/SkPath.h" | |
| #include "include/core/SkPathBuilder.h" | |
| #include "include/core/SkRect.h" | |
| #include "include/core/SkSize.h" | |
| #include "include/core/SkString.h" | |
| class CrBug531782512GM : public skiagm::GM { | |
| public: | |
| CrBug531782512GM() { | |
| this->setBGColor(SK_ColorBLACK); | |
| } | |
| protected: | |
| SkString getName() const override { return SkString("crbug_531782512"); } | |
| SkISize getISize() override { return SkISize::Make(1050, 100); } | |
| DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override { | |
| #if defined(SK_GRAPHITE) | |
| if (!canvas->recorder()) { | |
| *errorMsg = "Graphite only"; | |
| return DrawResult::kSkip; | |
| } | |
| canvas->clear(SK_ColorBLACK); | |
| // Create a non-rectangular path that is wider than the draw atlas slot width limit (1022 | |
| // pixels) to force it to use the proxy cache path. | |
| SkPathBuilder builder; | |
| builder.moveTo(10, 10); | |
| builder.lineTo(1040, 10); | |
| builder.lineTo(525, 90); | |
| builder.close(); | |
| SkPath path = builder.detach(); | |
| canvas->save(); | |
| canvas->clipPath(path, true); | |
| // Draw a horizontal hairline along the top edge of the clip bounds, if the pixel insetting | |
| // and translation into the clip atlas is incorrect, the line will not draw. | |
| SkPaint paint; | |
| paint.setColor(SK_ColorWHITE); | |
| paint.setStyle(SkPaint::kStroke_Style); | |
| paint.setStrokeWidth(0); // hairline | |
| canvas->drawLine(10, 10.5f, 1040, 10.5f, paint); | |
| canvas->restore(); | |
| return DrawResult::kOk; | |
| #else | |
| *errorMsg = "Graphite only"; | |
| return DrawResult::kSkip; | |
| #endif | |
| } | |
| }; | |
| DEF_GM(return new CrBug531782512GM;) |