ultimatepp/examples/PainterExamples/Clipping.cpp
cxl 6f124fdc30 examples: PainterExamples fixed for older CLANG
git-svn-id: svn://ultimatepp.org/upp/trunk@7222 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2014-04-11 17:17:15 +00:00

39 lines
1 KiB
C++

#include "Examples.h"
void ClippingExample(Painter& sw)
{
Font fnt = Roman(150).Bold();
String txt = "CLIPPED!";
Size tsz = GetTextSize(txt, fnt);
sw.Begin();
sw.Ellipse(tsz.cx / 2, tsz.cy / 2, tsz.cx / 2, tsz.cy / 4).Clip();
sw.Text(0, 0, txt, fnt).Fill(Green());
sw.End();
sw.Text(0, 0, txt, fnt).Stroke(0.5, Black());
}
void NoClippingExample(Painter& sw)
{
Font fnt = Roman(150).Bold();
String txt = "CLIPPED!";
sw.Text(0, 0, txt, fnt).Fill(Green());
sw.Text(0, 0, txt, fnt).Stroke(0.5, Black());
}
void ClippingExample2(Painter& sw)
{
sw.Begin();
sw.Ellipse(200, 200, 200, 200).Stroke(2, Red()).Clip();
sw.Begin();
sw.Ellipse(200, 200, 100, 300).Clip().Stroke(2, Red());
sw.Text(0, 0, "CL", Arial(360).Bold()).Fill(Blue());
sw.End();
sw.Text(0, 0, "CL", Arial(360).Bold()).Opacity(0.4).Fill(Black());
sw.End();
}
INITBLOCK {
RegisterExample("Clipping", ClippingExample);
RegisterExample("Clipping removed (to benchmark) ", NoClippingExample);
RegisterExample("Clipping 2", ClippingExample2);
}