mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
PainterExmples improvements
git-svn-id: svn://ultimatepp.org/upp/trunk@795 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
9e1d534e39
commit
e6891c7954
2 changed files with 46 additions and 39 deletions
|
|
@ -1,19 +1,24 @@
|
|||
LAYOUT(CtrlLayout, 192, 260)
|
||||
ITEM(Label, dv___0, SetLabel(t_("Scale")).LeftPosZ(4, 52).TopPosZ(92, 19))
|
||||
ITEM(EditDoubleSpin, scale, Min(0).Max(10).LeftPosZ(4, 64).TopPosZ(112, 19))
|
||||
ITEM(SliderCtrl, scale_slider, HSizePosZ(72, 4).TopPosZ(110, 24))
|
||||
ITEM(Label, dv___3, SetLabel(t_("Rotate")).LeftPosZ(4, 52).TopPosZ(136, 19))
|
||||
ITEM(EditDoubleSpin, rotate, Min(0).Max(6.29).LeftPosZ(4, 64).TopPosZ(156, 19))
|
||||
ITEM(SliderCtrl, rotate_slider, HSizePosZ(72, 4).TopPosZ(154, 24))
|
||||
ITEM(Label, dv___6, SetLabel(t_("Translate X")).LeftPosZ(4, 72).TopPosZ(4, 19))
|
||||
LAYOUT(CtrlLayout, 196, 304)
|
||||
ITEM(Label, dv___0, SetLabel(t_("Translate X")).LeftPosZ(4, 72).TopPosZ(4, 19))
|
||||
ITEM(EditDoubleSpin, translate_x, SetInc(1).Min(0).Max(2000).LeftPosZ(4, 64).TopPosZ(24, 19))
|
||||
ITEM(SliderCtrl, translate_x_slider, HSizePosZ(72, 4).TopPosZ(22, 24))
|
||||
ITEM(Label, dv___9, SetLabel(t_("Translate Y")).LeftPosZ(4, 72).TopPosZ(48, 19))
|
||||
ITEM(Label, dv___3, SetLabel(t_("Translate Y")).LeftPosZ(4, 72).TopPosZ(48, 19))
|
||||
ITEM(EditDoubleSpin, translate_y, SetInc(1).Min(0).Max(2000).LeftPosZ(4, 64).TopPosZ(68, 19))
|
||||
ITEM(SliderCtrl, translate_y_slider, HSizePosZ(72, 4).TopPosZ(66, 24))
|
||||
ITEM(Label, dv___12, SetLabel(t_("Opacity")).LeftPosZ(4, 52).TopPosZ(180, 19))
|
||||
ITEM(EditDoubleSpin, opacity, SetInc(0.05).Min(0).Max(1).LeftPosZ(4, 64).TopPosZ(200, 19))
|
||||
ITEM(SliderCtrl, opacity_slider, HSizePosZ(72, 4).TopPosZ(198, 24))
|
||||
ITEM(Button, rest, SetLabel(t_("Reset")).LeftPosZ(4, 60).TopPosZ(232, 24))
|
||||
ITEM(Label, dv___6, SetLabel(t_("Rotate")).LeftPosZ(4, 52).TopPosZ(92, 19))
|
||||
ITEM(EditDoubleSpin, rotate, Min(0).Max(6.29).LeftPosZ(4, 64).TopPosZ(112, 19))
|
||||
ITEM(SliderCtrl, rotate_slider, HSizePosZ(72, 4).TopPosZ(110, 24))
|
||||
ITEM(Label, dv___9, SetLabel(t_("Scale")).LeftPosZ(4, 52).TopPosZ(136, 19))
|
||||
ITEM(EditDoubleSpin, scale, Min(0).Max(10).LeftPosZ(4, 64).TopPosZ(156, 19))
|
||||
ITEM(SliderCtrl, scale_slider, HSizePosZ(72, 4).TopPosZ(154, 24))
|
||||
ITEM(Label, dv___12, SetLabel(t_("Scale X")).LeftPosZ(4, 52).TopPosZ(180, 19))
|
||||
ITEM(EditDoubleSpin, scale_x, Min(0).Max(2).LeftPosZ(4, 64).TopPosZ(200, 19))
|
||||
ITEM(SliderCtrl, scale_x_slider, HSizePosZ(72, 4).TopPosZ(198, 24))
|
||||
ITEM(Label, dv___15, SetLabel(t_("Opacity")).LeftPosZ(4, 52).TopPosZ(224, 19))
|
||||
ITEM(EditDoubleSpin, opacity, SetInc(0.05).Min(0).Max(1).HSizePosZ(4, 128).TopPosZ(244, 19))
|
||||
ITEM(SliderCtrl, opacity_slider, HSizePosZ(72, 4).TopPosZ(242, 24))
|
||||
ITEM(Button, reset, SetLabel(t_("Reset")).HSizePosZ(4, 132).TopPosZ(272, 24))
|
||||
ITEM(Button, print, SetLabel(t_("Print")).HSizePosZ(68, 68).TopPosZ(272, 24))
|
||||
ITEM(Button, benchmark, SetLabel(t_("Benchmark")).HSizePosZ(132, 4).TopPosZ(272, 24))
|
||||
END_LAYOUT
|
||||
|
||||
|
|
|
|||
|
|
@ -30,40 +30,37 @@ struct App : TopWindow {
|
|||
void DoPaint(Painter& sw)
|
||||
{
|
||||
sw.Translate(~ctrl.translate_x, ~ctrl.translate_y);
|
||||
sw.Scale(~ctrl.scale);
|
||||
sw.Rotate(~ctrl.rotate);
|
||||
sw.Scale(~ctrl.scale, (double)~ctrl.scale * (double)~ctrl.scale_x);
|
||||
sw.Opacity(~ctrl.opacity);
|
||||
sw.Clear(White());
|
||||
if(list.IsCursor())
|
||||
Examples()[list.GetCursor()].example(sw);
|
||||
}
|
||||
|
||||
virtual bool Key(dword key, int count)
|
||||
void Print()
|
||||
{
|
||||
if(key == K_CTRL_P) {
|
||||
PaintingPainter sw(1000, 1000);
|
||||
PaintingPainter sw(1000, 1000);
|
||||
DoPaint(sw);
|
||||
PrinterJob pb;
|
||||
if(pb.Execute())
|
||||
pb.GetDraw().DrawPainting(0, 0, 4000, 4000, sw);
|
||||
}
|
||||
|
||||
void Benchmark()
|
||||
{
|
||||
int time;
|
||||
int time0 = GetTickCount();
|
||||
int n = 0;
|
||||
for(;;) {
|
||||
time = GetTickCount();
|
||||
if(time - time0 > 1000) break;
|
||||
ImageBuffer ib(GetSize());
|
||||
BufferPainter sw(ib);
|
||||
DoPaint(sw);
|
||||
PrinterJob pb;
|
||||
if(pb.Execute())
|
||||
pb.GetDraw().DrawPainting(0, 0, 4000, 4000, sw);
|
||||
return true;
|
||||
n++;
|
||||
}
|
||||
if(key == K_CTRL_B) {
|
||||
int time;
|
||||
int time0 = GetTickCount();
|
||||
int n = 0;
|
||||
for(;;) {
|
||||
time = GetTickCount();
|
||||
if(time - time0 > 1000) break;
|
||||
ImageBuffer ib(GetSize());
|
||||
BufferPainter sw(ib);
|
||||
DoPaint(sw);
|
||||
n++;
|
||||
}
|
||||
PromptOK("Benchmark: " + AsString(double(time - time0) / n) + " ms");
|
||||
return true;
|
||||
}
|
||||
return TopWindow::Key(key, count);
|
||||
PromptOK("Benchmark: " + AsString(double(time - time0) / n) + " ms");
|
||||
}
|
||||
|
||||
virtual void Paint(Draw& w)
|
||||
|
|
@ -104,6 +101,7 @@ struct App : TopWindow {
|
|||
{
|
||||
ToSlider(&ctrl.rotate, &ctrl.rotate_slider);
|
||||
ToSlider(&ctrl.scale, &ctrl.scale_slider);
|
||||
ToSlider(&ctrl.scale_x, &ctrl.scale_x_slider);
|
||||
ToSlider(&ctrl.translate_x, &ctrl.translate_x_slider);
|
||||
ToSlider(&ctrl.translate_y, &ctrl.translate_y_slider);
|
||||
ToSlider(&ctrl.opacity, &ctrl.opacity_slider);
|
||||
|
|
@ -112,7 +110,7 @@ struct App : TopWindow {
|
|||
void Reset()
|
||||
{
|
||||
ctrl.rotate <<= ctrl.translate_x <<= ctrl.translate_y <<= 0;
|
||||
ctrl.scale <<= ctrl.opacity <<= 1.0;
|
||||
ctrl.scale <<= ctrl.scale_x <<= ctrl.opacity <<= 1.0;
|
||||
ToSlider();
|
||||
}
|
||||
|
||||
|
|
@ -135,9 +133,13 @@ struct App : TopWindow {
|
|||
Reset();
|
||||
Pair(ctrl.rotate, ctrl.rotate_slider);
|
||||
Pair(ctrl.scale, ctrl.scale_slider);
|
||||
Pair(ctrl.scale_x, ctrl.scale_x_slider);
|
||||
Pair(ctrl.translate_x, ctrl.translate_x_slider);
|
||||
Pair(ctrl.translate_y, ctrl.translate_y_slider);
|
||||
Pair(ctrl.opacity, ctrl.opacity_slider);
|
||||
Pair(ctrl.opacity, ctrl.opacity_slider);
|
||||
ctrl.reset <<= THISBACK(Reset);
|
||||
ctrl.benchmark <<= THISBACK(Benchmark);
|
||||
ctrl.print <<= THISBACK(Print);
|
||||
}
|
||||
~App()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue