#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!";
	Size tsz = GetTextSize(txt, fnt);
	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);
}
