|
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 |
}
|