SampleLCD.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * Copyright 2011 Google Inc.
  3. *
  4. * Use of this source code is governed by a BSD-style license that can be
  5. * found in the LICENSE file.
  6. */
  7. #include "include/core/SkCanvas.h"
  8. #include "include/core/SkFont.h"
  9. #include "include/core/SkPaint.h"
  10. #include "include/core/SkShader.h"
  11. #include "samplecode/Sample.h"
  12. class LCDView : public Sample {
  13. public:
  14. LCDView() {}
  15. protected:
  16. SkString name() override { return SkString("LCD Text"); }
  17. void drawBG(SkCanvas* canvas) {
  18. canvas->drawColor(SK_ColorWHITE);
  19. }
  20. void onDrawContent(SkCanvas* canvas) override {
  21. this->drawBG(canvas);
  22. SkPaint paint;
  23. SkScalar textSize = SkIntToScalar(6);
  24. SkScalar delta = SK_Scalar1;
  25. const char* text = "HHHamburgefonts iii";
  26. size_t len = strlen(text);
  27. SkScalar x0 = SkIntToScalar(10);
  28. SkScalar x1 = SkIntToScalar(310);
  29. SkScalar y = SkIntToScalar(20);
  30. SkFont font;
  31. for (int i = 0; i < 20; i++) {
  32. font.setSize(textSize);
  33. textSize += delta;
  34. font.setEdging(SkFont::Edging::kAntiAlias);
  35. canvas->drawSimpleText(text, len, SkTextEncoding::kUTF8, x0, y, font, paint);
  36. font.setEdging(SkFont::Edging::kSubpixelAntiAlias);
  37. canvas->drawSimpleText(text, len, SkTextEncoding::kUTF8, x1, y, font, paint);
  38. y += font.getSpacing();
  39. }
  40. }
  41. private:
  42. typedef Sample INHERITED;
  43. };
  44. //////////////////////////////////////////////////////////////////////////////
  45. DEF_SAMPLE( return new LCDView(); )