forked from old/legacy-imlib2
scalign code back to old scaling... new scalign code has bugs... even the C
code has segv's.. somewhere... :( SVN revision: 2511
This commit is contained in:
parent
4a09d1fe8a
commit
54b76ea1f7
|
@ -16,6 +16,9 @@
|
||||||
#undef DO_MMX_ASM
|
#undef DO_MMX_ASM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* use old scaling.. new scalign has segv bugs... :( */
|
||||||
|
#define OLD_SCALE_DOWN 1
|
||||||
|
|
||||||
DATA32 **
|
DATA32 **
|
||||||
__imlib_CalcYPoints(DATA32 *src, int sw, int sh, int dh, int b1, int b2)
|
__imlib_CalcYPoints(DATA32 *src, int sw, int sh, int dh, int b1, int b2)
|
||||||
{
|
{
|
||||||
|
|
101
test/main.c
101
test/main.c
|
@ -74,6 +74,8 @@ int main (int argc, char **argv)
|
||||||
int rotate = 0;
|
int rotate = 0;
|
||||||
int rottest = 0;
|
int rottest = 0;
|
||||||
int scaleup = 0;
|
int scaleup = 0;
|
||||||
|
int scaleboth = 0;
|
||||||
|
int origone = 0;
|
||||||
|
|
||||||
for (i = 1; i < argc; i++)
|
for (i = 1; i < argc; i++)
|
||||||
{
|
{
|
||||||
|
@ -90,6 +92,10 @@ int main (int argc, char **argv)
|
||||||
}
|
}
|
||||||
else if (!strcmp(argv[i], "-up"))
|
else if (!strcmp(argv[i], "-up"))
|
||||||
scaleup = 1;
|
scaleup = 1;
|
||||||
|
else if (!strcmp(argv[i], "-both"))
|
||||||
|
scaleboth = 1;
|
||||||
|
else if (!strcmp(argv[i], "-orig"))
|
||||||
|
origone = 1;
|
||||||
else if (!strcmp(argv[i], "-blend"))
|
else if (!strcmp(argv[i], "-blend"))
|
||||||
blend = 1;
|
blend = 1;
|
||||||
else if (!strcmp(argv[i], "-blendtest"))
|
else if (!strcmp(argv[i], "-blendtest"))
|
||||||
|
@ -178,6 +184,8 @@ int main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
if (scaleup)
|
if (scaleup)
|
||||||
XResizeWindow(disp, win, w * 4, h * 4);
|
XResizeWindow(disp, win, w * 4, h * 4);
|
||||||
|
else if (scaleboth)
|
||||||
|
XResizeWindow(disp, win, w * 2, h * 2);
|
||||||
else
|
else
|
||||||
XResizeWindow(disp, win, w, h);
|
XResizeWindow(disp, win, w, h);
|
||||||
XMapWindow(disp, win);
|
XMapWindow(disp, win);
|
||||||
|
@ -220,8 +228,19 @@ int main (int argc, char **argv)
|
||||||
for (i = 0; i < w * 3; i+= 8)
|
for (i = 0; i < w * 3; i+= 8)
|
||||||
{
|
{
|
||||||
if (!blendtest)
|
if (!blendtest)
|
||||||
imlib_render_image_on_drawable_at_size(0, 0,
|
{
|
||||||
|
Imlib_Image im_tmp;
|
||||||
|
|
||||||
|
im_tmp = imlib_create_cropped_scaled_image(0, 0, w, h,
|
||||||
w + i, (((w + i) * h) / w));
|
w + i, (((w + i) * h) / w));
|
||||||
|
if (im_tmp)
|
||||||
|
{
|
||||||
|
imlib_context_set_image(im_tmp);
|
||||||
|
imlib_render_image_on_drawable(0, 0);
|
||||||
|
imlib_free_image();
|
||||||
|
}
|
||||||
|
imlib_context_set_image(im);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Imlib_Image im_tmp;
|
Imlib_Image im_tmp;
|
||||||
|
@ -234,7 +253,85 @@ int main (int argc, char **argv)
|
||||||
}
|
}
|
||||||
imlib_context_set_image(im);
|
imlib_context_set_image(im);
|
||||||
}
|
}
|
||||||
pixels += (w - i) * (((w - i) * h) / w);
|
pixels += (w + i) * (((w + i) * h) / w);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (scaleboth)
|
||||||
|
{
|
||||||
|
if (origone)
|
||||||
|
{
|
||||||
|
for (i = 0; i < w * 2; i+= 4)
|
||||||
|
{
|
||||||
|
if (!blendtest)
|
||||||
|
{
|
||||||
|
Imlib_Image im_tmp;
|
||||||
|
|
||||||
|
im_tmp = imlib_create_cropped_scaled_image(0, 0, w, h,
|
||||||
|
w, (((i) * h) / w));
|
||||||
|
if (im_tmp)
|
||||||
|
{
|
||||||
|
imlib_context_set_image(im_tmp);
|
||||||
|
imlib_render_image_on_drawable(0, 0);
|
||||||
|
imlib_free_image();
|
||||||
|
}
|
||||||
|
imlib_context_set_image(im);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Imlib_Image im_tmp;
|
||||||
|
im_tmp = imlib_create_cropped_scaled_image(0, 0, w, h,
|
||||||
|
w, (((i) * h) / w));
|
||||||
|
if (im_tmp)
|
||||||
|
{
|
||||||
|
imlib_context_set_image(im_tmp);
|
||||||
|
imlib_free_image();
|
||||||
|
}
|
||||||
|
imlib_context_set_image(im);
|
||||||
|
}
|
||||||
|
XSync(disp, False);
|
||||||
|
pixels += (2 * w - i) * (((i) * h) / w);
|
||||||
|
}
|
||||||
|
for (i = 0; i < w * 2; i+= 4)
|
||||||
|
{
|
||||||
|
if (!blendtest)
|
||||||
|
imlib_render_image_on_drawable_at_size(0, 0,
|
||||||
|
2 * w - i, h);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Imlib_Image im_tmp;
|
||||||
|
im_tmp = imlib_create_cropped_scaled_image(0, 0, w, h,
|
||||||
|
2 * w - i, h);
|
||||||
|
if (im_tmp)
|
||||||
|
{
|
||||||
|
imlib_context_set_image(im_tmp);
|
||||||
|
imlib_free_image();
|
||||||
|
}
|
||||||
|
imlib_context_set_image(im);
|
||||||
|
}
|
||||||
|
pixels += (2 * w - i) * h;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (i = 0; i < w * 2; i+= 4)
|
||||||
|
{
|
||||||
|
if (!blendtest)
|
||||||
|
imlib_render_image_on_drawable_at_size(0, 0,
|
||||||
|
2 * w - i, (((i) * h) / w));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Imlib_Image im_tmp;
|
||||||
|
im_tmp = imlib_create_cropped_scaled_image(0, 0, w, h,
|
||||||
|
2 * w - i, (((i) * h) / w));
|
||||||
|
if (im_tmp)
|
||||||
|
{
|
||||||
|
imlib_context_set_image(im_tmp);
|
||||||
|
imlib_free_image();
|
||||||
|
}
|
||||||
|
imlib_context_set_image(im);
|
||||||
|
}
|
||||||
|
pixels += w * (((i) * h) / w);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue