]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/image.cpp
replacing old core graphics with new graphics context implementation
[wxWidgets.git] / src / common / image.cpp
index 8e656989899a1d1ebee326d4aadeb8b18c5d90b3..a2674529dec0bd15c7957f82aeb64b074f7c5971 100644 (file)
 
 #include "wx/filefn.h"
 #include "wx/wfstream.h"
 
 #include "wx/filefn.h"
 #include "wx/wfstream.h"
-
-#if wxUSE_XPM
-    #include "wx/xpmdecod.h"
-#endif
+#include "wx/xpmdecod.h"
 
 // For memcpy
 #include <string.h>
 
 // For memcpy
 #include <string.h>
@@ -165,17 +162,12 @@ wxImage::wxImage( wxInputStream& stream, const wxString& mimetype, int index )
 }
 #endif // wxUSE_STREAMS
 
 }
 #endif // wxUSE_STREAMS
 
-wxImage::wxImage( const char** xpmData )
+wxImage::wxImage(const char* const* xpmData)
 {
     Create(xpmData);
 }
 
 {
     Create(xpmData);
 }
 
-wxImage::wxImage( char** xpmData )
-{
-    Create((const char**) xpmData);
-}
-
-bool wxImage::Create( const char** xpmData )
+bool wxImage::Create(const char* const* xpmData)
 {
 #if wxUSE_XPM
     UnRef();
 {
 #if wxUSE_XPM
     UnRef();
@@ -513,7 +505,7 @@ wxImage wxImage::Scale( int width, int height, int quality ) const
     }
 
     // If the original image has a mask, apply the mask to the new image
     }
 
     // If the original image has a mask, apply the mask to the new image
-       if (M_IMGDATA->m_hasMask)
+    if (M_IMGDATA->m_hasMask)
     {
         image.SetMaskColour( M_IMGDATA->m_maskRed,
                             M_IMGDATA->m_maskGreen,
     {
         image.SetMaskColour( M_IMGDATA->m_maskRed,
                             M_IMGDATA->m_maskGreen,
@@ -579,7 +571,7 @@ wxImage wxImage::ResampleBox(int width, int height) const
             averaged_pixels = 0;
             sum_r = sum_g = sum_b = sum_a = 0.0;
 
             averaged_pixels = 0;
             sum_r = sum_g = sum_b = sum_a = 0.0;
 
-            for ( int j = src_y - scale_factor_y_2 + 1;
+            for ( int j = int(src_y - scale_factor_y/2.0 + 1);
                   j <= int(src_y + scale_factor_y_2);
                   j++ )
             {
                   j <= int(src_y + scale_factor_y_2);
                   j++ )
             {
@@ -587,7 +579,7 @@ wxImage wxImage::ResampleBox(int width, int height) const
                 if ( j < 0 || j > M_IMGDATA->m_height )
                     continue;
 
                 if ( j < 0 || j > M_IMGDATA->m_height )
                     continue;
 
-                for ( int i = src_x - scale_factor_x_2 + 1;
+                for ( int i = int(src_x - scale_factor_x/2.0 + 1);
                       i <= src_x + scale_factor_x_2;
                       i++ )
                 {
                       i <= src_x + scale_factor_x_2;
                       i++ )
                 {
@@ -856,7 +848,7 @@ wxImage wxImage::BlurHorizontal(int blurRadius)
                 sum_a += src_alpha[pixel_idx];
 
             // Save off the averaged data
                 sum_a += src_alpha[pixel_idx];
 
             // Save off the averaged data
-            dst = dst_data + x*3 + y*M_IMGDATA->m_width;
+            dst = dst_data + x*3 + y*M_IMGDATA->m_width*3;
             dst[0] = (unsigned char)(sum_r / blurArea);
             dst[1] = (unsigned char)(sum_g / blurArea);
             dst[2] = (unsigned char)(sum_b / blurArea);
             dst[0] = (unsigned char)(sum_r / blurArea);
             dst[1] = (unsigned char)(sum_g / blurArea);
             dst[2] = (unsigned char)(sum_b / blurArea);
@@ -1319,8 +1311,8 @@ void wxImage::Paste( const wxImage &image, int x, int y )
         {
             for (int i = 0; i < width; i+=3)
             {
         {
             for (int i = 0; i < width; i+=3)
             {
-                if ((source_data[i]   != r) &&
-                    (source_data[i+1] != g) &&
+                if ((source_data[i]   != r) ||
+                    (source_data[i+1] != g) ||
                     (source_data[i+2] != b))
                 {
                     memcpy( target_data+i, source_data+i, 3 );
                     (source_data[i+2] != b))
                 {
                     memcpy( target_data+i, source_data+i, 3 );
@@ -1552,7 +1544,7 @@ unsigned char wxImage::GetBlue( int x, int y ) const
     return M_IMGDATA->m_data[pos+2];
 }
 
     return M_IMGDATA->m_data[pos+2];
 }
 
-bool wxImage::Ok() const
+bool wxImage::IsOk() const
 {
     // image of 0 width or height can't be considered ok - at least because it
     // causes crashes in ConvertToBitmap() if we don't catch it in time
 {
     // image of 0 width or height can't be considered ok - at least because it
     // causes crashes in ConvertToBitmap() if we don't catch it in time