1 diff -Nur ClanLib-0.4.3.orig/Sources/Magick/provider_magick.cpp ClanLib-0.4.3/Sources/Magick/provider_magick.cpp
2 --- ClanLib-0.4.3.orig/Sources/Magick/provider_magick.cpp Mon Mar 13 18:12:50 2000
3 +++ ClanLib-0.4.3/Sources/Magick/provider_magick.cpp Fri Mar 16 22:31:13 2001
8 + ExceptionInfo exception_info;
10 GetImageInfo(&image_info);
11 strcpy(image_info.filename, name.c_str());
12 - image = ReadImage(&image_info);
13 + image = ReadImage(&image_info, &exception_info);
15 // throw CL_Error("error while trying to open file with the Magick provider");
19 pitch = width * get_bytes_per_pixel();
21 - float *rdata = new float[width*height];
22 - float *gdata = new float[width*height];
23 - float *bdata = new float[width*height];
24 - float *adata = new float[width*height];
25 + float *rgbadata = new float[width*height*4];
27 - GetPixels(image, rdata, gdata, bdata, adata);
28 + DispatchImage(image, 0,0,width,height,"RGBA",FloatPixel,rgbadata);
31 // here comes the tricky part ... hmhmhm... Quicky Mart
33 for (int y=0; y<height; y++)
34 for (int x=0; x<width; x++)
36 - tmp = (((unsigned int) (rdata[y*width+x] * rtmp)) << rshift) |
37 - (((unsigned int) (gdata[y*width+x] * gtmp)) << gshift) |
38 - (((unsigned int) (bdata[y*width+x] * btmp)) << bshift) |
39 - (((unsigned int) (atmp - adata[y*width+x] * atmp)) << ashift);
40 + tmp = (((unsigned int) (rgbadata[(y*width+x)*4] * rtmp)) << rshift) |
41 + (((unsigned int) (rgbadata[(y*width+x)*4+1] * gtmp)) << gshift) |
42 + (((unsigned int) (rgbadata[(y*width+x)*4+2] * btmp)) << bshift) |
43 + (((unsigned int) (atmp - rgbadata[(y*width+x)*4+3] * atmp)) << ashift);
45 switch (get_bytes_per_pixel())
58 void CL_MagickProvider::perform_unlock()