Blame examples/text/toy-text.cc

Packit Service e3b512
#include <cairomm/cairomm.h>
Packit Service e3b512
Packit Service e3b512
const double HEIGHT = 200.0;
Packit Service e3b512
const double WIDTH = 400.0;
Packit Service e3b512
const double FONT_SIZE = 64.0;
Packit Service e3b512
const double TEXT_ORIGIN_Y = (HEIGHT / 2.0) + (FONT_SIZE / 2.0);
Packit Service e3b512
const double TEXT_ORIGIN_X = 50.0;  // arbitrary
Packit Service e3b512
Packit Service e3b512
int main(int, char**)
Packit Service e3b512
{
Packit Service e3b512
  auto surface =
Packit Service e3b512
    Cairo::ImageSurface::create(Cairo::FORMAT_ARGB32, WIDTH, HEIGHT);
Packit Service e3b512
  auto cr = Cairo::Context::create(surface);
Packit Service e3b512
  // fill background in white
Packit Service e3b512
  cr->set_source_rgb(1.0, 1.0, 1.0);
Packit Service e3b512
  cr->paint();
Packit Service e3b512
Packit Service e3b512
  // draw a little dot at the point where text will be drawn
Packit Service e3b512
  cr->arc(TEXT_ORIGIN_X, TEXT_ORIGIN_Y, FONT_SIZE / 4.0, 0, 2*M_PI);
Packit Service e3b512
  cr->set_source_rgba(0.0, 1.0, 0.0, 0.5);
Packit Service e3b512
  cr->fill();
Packit Service e3b512
Packit Service e3b512
  // draw the text
Packit Service e3b512
  cr->move_to(TEXT_ORIGIN_X, TEXT_ORIGIN_Y);
Packit Service e3b512
  cr->set_source_rgb(0.8, 0.2, 0.2);
Packit Service e3b512
  auto font =
Packit Service e3b512
    Cairo::ToyFontFace::create("Bitstream Charter",
Packit Service e3b512
                               Cairo::FONT_SLANT_ITALIC,
Packit Service e3b512
                               Cairo::FONT_WEIGHT_BOLD);
Packit Service e3b512
  cr->set_font_face(font);
Packit Service e3b512
  cr->set_font_size(FONT_SIZE);
Packit Service e3b512
  cr->show_text("cairomm!");
Packit Service e3b512
  surface->write_to_png("toy-text.png");
Packit Service e3b512
  return 0;
Packit Service e3b512
}