| Index: ppapi/examples/font/simple_font.cc
|
| ===================================================================
|
| --- ppapi/examples/font/simple_font.cc (revision 86722)
|
| +++ ppapi/examples/font/simple_font.cc (working copy)
|
| @@ -2,6 +2,8 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include <stdio.h>
|
| +
|
| #include "ppapi/cpp/completion_callback.h"
|
| #include "ppapi/cpp/dev/font_dev.h"
|
| #include "ppapi/cpp/graphics_2d.h"
|
| @@ -31,22 +33,71 @@
|
|
|
| pp::FontDescription_Dev desc;
|
| desc.set_family(PP_FONTFAMILY_SANSSERIF);
|
| - desc.set_size(30);
|
| + desc.set_size(100);
|
| pp::Font_Dev font(this, desc);
|
|
|
| + // Draw some large, alpha blended text, including Arabic shaping.
|
| pp::Rect text_clip(position.size()); // Use entire bounds for clip.
|
| font.DrawTextAt(&image,
|
| pp::TextRun_Dev("\xD9\x85\xD8\xB1\xD8\xAD\xD8\xA8\xD8\xA7\xE2\x80\x8E",
|
| true, true),
|
| - pp::Point(10, 40), 0xFF008000, clip, false);
|
| - font.DrawTextAt(&image, pp::TextRun_Dev("Hello"),
|
| - pp::Point(10, 80), 0xFF000080, text_clip, false);
|
| + pp::Point(20, 100), 0x80008000, clip, false);
|
|
|
| + // Draw the default font names and sizes.
|
| + int y = 160;
|
| + {
|
| + pp::FontDescription_Dev desc;
|
| + pp::Font_Dev default_font(this, desc);
|
| + default_font.DrawSimpleText(
|
| + &image, DescribeFont(default_font, "Default font"),
|
| + pp::Point(10, y), 0xFF000000);
|
| + y += 20;
|
| + }
|
| + {
|
| + pp::FontDescription_Dev desc;
|
| + desc.set_family(PP_FONTFAMILY_SERIF);
|
| + pp::Font_Dev serif_font(this, desc);
|
| + serif_font.DrawSimpleText(
|
| + &image, DescribeFont(serif_font, "Serif font"),
|
| + pp::Point(10, y), 0xFF000000);
|
| + y += 20;
|
| + }
|
| + {
|
| + pp::FontDescription_Dev desc;
|
| + desc.set_family(PP_FONTFAMILY_SANSSERIF);
|
| + pp::Font_Dev sans_serif_font(this, desc);
|
| + sans_serif_font.DrawSimpleText(
|
| + &image, DescribeFont(sans_serif_font, "Sans serif font"),
|
| + pp::Point(10, y), 0xFF000000);
|
| + y += 20;
|
| + }
|
| + {
|
| + pp::FontDescription_Dev desc;
|
| + desc.set_family(PP_FONTFAMILY_MONOSPACE);
|
| + pp::Font_Dev monospace_font(this, desc);
|
| + monospace_font.DrawSimpleText(
|
| + &image, DescribeFont(monospace_font, "Monospace font"),
|
| + pp::Point(10, y), 0xFF000000);
|
| + y += 20;
|
| + }
|
| +
|
| device.PaintImageData(image, pp::Point(0, 0));
|
| device.Flush(pp::CompletionCallback(&DummyCompletionCallback, NULL));
|
| }
|
|
|
| private:
|
| + // Returns a string describing the given font, using the given title.
|
| + std::string DescribeFont(const pp::Font_Dev& font, const char* title) {
|
| + pp::FontDescription_Dev desc;
|
| + PP_FontMetrics_Dev metrics;
|
| + font.Describe(&desc, &metrics);
|
| +
|
| + char buf[256];
|
| + sprintf(buf, "%s = %s %dpt",
|
| + title, desc.face().AsString().c_str(), desc.size());
|
| + return std::string(buf);
|
| + }
|
| +
|
| pp::Size last_size_;
|
| };
|
|
|
|
|