mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 06:05:58 -06:00
Painter improvements: Multithreaded rendering improved, new image filter (like Lanczos 3) option, image mapping is now more precise
33 lines
831 B
C++
33 lines
831 B
C++
#include "Examples.h"
|
|
|
|
void ImageFilters(Painter& sw)
|
|
{
|
|
int nx = 0;
|
|
int ny = 0;
|
|
auto Do = [&](const char *name, int filter) {
|
|
Size isz = TestImg::test().GetSize();
|
|
int x = nx * 3 * isz.cx;
|
|
int y = ny * 3 * isz.cy;
|
|
sw.DrawText(x + 10, y, name, Arial(28));
|
|
sw.Rectangle(x + 10, y + 30, 7 * isz.cx / 3, 7 * isz.cy / 3)
|
|
.ImageFilter(filter)
|
|
.Fill(TestImg::test(), x + 10, y + 30, x + 10 + 7 * isz.cx / 3, y + 30, FILL_PAD);
|
|
nx++;
|
|
if(nx > 2) {
|
|
nx = 0;
|
|
ny++;
|
|
}
|
|
};
|
|
|
|
Do("Nearest", FILTER_NEAREST);
|
|
Do("Bilinear", FILTER_BILINEAR);
|
|
Do("B-spline", FILTER_BSPLINE);
|
|
Do("Costella", FILTER_COSTELLA);
|
|
Do("Bicubic Mitchell", FILTER_BICUBIC_MITCHELL);
|
|
Do("Bicubic Catmull Rom", FILTER_BICUBIC_CATMULLROM);
|
|
Do("Lanczos3", FILTER_LANCZOS3);
|
|
}
|
|
|
|
INITBLOCK {
|
|
RegisterExample("Image filters", ImageFilters);
|
|
}
|