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:
Carsten Haitzler 2000-04-20 22:29:10 +00:00
parent 4a09d1fe8a
commit 54b76ea1f7
2 changed files with 103 additions and 3 deletions

View File

@ -16,6 +16,9 @@
#undef DO_MMX_ASM
#endif
/* use old scaling.. new scalign has segv bugs... :( */
#define OLD_SCALE_DOWN 1
DATA32 **
__imlib_CalcYPoints(DATA32 *src, int sw, int sh, int dh, int b1, int b2)
{

View File

@ -74,6 +74,8 @@ int main (int argc, char **argv)
int rotate = 0;
int rottest = 0;
int scaleup = 0;
int scaleboth = 0;
int origone = 0;
for (i = 1; i < argc; i++)
{
@ -90,6 +92,10 @@ int main (int argc, char **argv)
}
else if (!strcmp(argv[i], "-up"))
scaleup = 1;
else if (!strcmp(argv[i], "-both"))
scaleboth = 1;
else if (!strcmp(argv[i], "-orig"))
origone = 1;
else if (!strcmp(argv[i], "-blend"))
blend = 1;
else if (!strcmp(argv[i], "-blendtest"))
@ -178,6 +184,8 @@ int main (int argc, char **argv)
{
if (scaleup)
XResizeWindow(disp, win, w * 4, h * 4);
else if (scaleboth)
XResizeWindow(disp, win, w * 2, h * 2);
else
XResizeWindow(disp, win, w, h);
XMapWindow(disp, win);
@ -220,8 +228,19 @@ int main (int argc, char **argv)
for (i = 0; i < w * 3; i+= 8)
{
if (!blendtest)
imlib_render_image_on_drawable_at_size(0, 0,
w + i, (((w + i) * h) / w));
{
Imlib_Image im_tmp;
im_tmp = imlib_create_cropped_scaled_image(0, 0, w, h,
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
{
Imlib_Image im_tmp;
@ -234,7 +253,85 @@ int main (int argc, char **argv)
}
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