]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/image.cpp
Further WinCE adaptations
[wxWidgets.git] / src / common / image.cpp
index 3f90f3238a6d7e123884dfbea2f8395c519e0b12..bbd82b9eec0c2746f10a9bccc710c448328664dd 100644 (file)
@@ -177,7 +177,7 @@ bool wxImage::Create( const char** xpmData )
 {
 #if wxUSE_XPM
     UnRef();
-    
+
     wxXPMDecoder decoder;
     (*this) = decoder.ReadData(xpmData);
     return Ok();
@@ -425,7 +425,7 @@ wxImage wxImage::Scale( int width, int height ) const
     unsigned char *target_data = data;
     unsigned char *source_alpha = 0 ;
     unsigned char *target_alpha = 0 ;
-    
+
     if (M_IMGDATA->m_hasMask)
     {
         image.SetMaskColour( M_IMGDATA->m_maskRed,
@@ -452,7 +452,7 @@ wxImage wxImage::Scale( int width, int height ) const
         {
         unsigned char* src_line = &source_data[(y>>16)*old_width*3];
         unsigned char* src_alpha_line = source_alpha ? &source_alpha[(y>>16)*old_width] : 0 ;
-        
+
         long x = 0;
         for ( long i = 0; i < width; i++ )
         {
@@ -603,7 +603,7 @@ wxImage wxImage::GetSubImage( const wxRect &rect ) const
     return image;
 }
 
-wxImage wxImage::Size( const wxSize& size, const wxPoint& pos, 
+wxImage wxImage::Size( const wxSize& size, const wxPoint& pos,
                        int r_, int g_, int b_ ) const
 {
     wxImage image;
@@ -810,8 +810,8 @@ void wxImage::SetRGB( const wxRect& rect_, unsigned char r, unsigned char g, uns
     }
     else
     {
-        wxCHECK_RET( imageRect.Inside(rect.GetTopLeft()) && 
-                     imageRect.Inside(rect.GetBottomRight()), 
+        wxCHECK_RET( imageRect.Inside(rect.GetTopLeft()) &&
+                     imageRect.Inside(rect.GetBottomRight()),
                      wxT("invalid bounding rectangle") );
     }
 
@@ -820,7 +820,7 @@ void wxImage::SetRGB( const wxRect& rect_, unsigned char r, unsigned char g, uns
         x2 = rect.GetRight() + 1,
         y2 = rect.GetBottom() + 1;
 
-    unsigned char *data = NULL;
+    unsigned char *data wxDUMMY_INITIALIZE(NULL);
     int x, y, width = GetWidth();
     for (y = y1; y < y2; y++)
     {
@@ -891,7 +891,7 @@ unsigned char *wxImage::GetData() const
     return M_IMGDATA->m_data;
 }
 
-void wxImage::SetData( unsigned char *data )
+void wxImage::SetData( unsigned char *data, bool static_data  )
 {
     wxCHECK_RET( Ok(), wxT("invalid image") );
 
@@ -905,13 +905,14 @@ void wxImage::SetData( unsigned char *data )
     newRefData->m_maskGreen = M_IMGDATA->m_maskGreen;
     newRefData->m_maskBlue = M_IMGDATA->m_maskBlue;
     newRefData->m_hasMask = M_IMGDATA->m_hasMask;
+    newRefData->m_static = static_data;
 
     UnRef();
 
     m_refData = newRefData;
 }
 
-void wxImage::SetData( unsigned char *data, int new_width, int new_height )
+void wxImage::SetData( unsigned char *data, int new_width, int new_height, bool static_data )
 {
     wxImageRefData *newRefData = new wxImageRefData();
 
@@ -933,6 +934,7 @@ void wxImage::SetData( unsigned char *data, int new_width, int new_height )
         newRefData->m_data = data;
         newRefData->m_ok = true;
     }
+    newRefData->m_static = static_data;
 
     UnRef();
 
@@ -994,7 +996,7 @@ bool wxImage::ConvertColourToAlpha( unsigned char r, unsigned char g, unsigned c
     return true;
 }
 
-void wxImage::SetAlpha( unsigned char *alpha )
+void wxImage::SetAlpha( unsigned char *alpha, bool static_data )
 {
     wxCHECK_RET( Ok(), wxT("invalid image") );
 
@@ -1005,6 +1007,8 @@ void wxImage::SetAlpha( unsigned char *alpha )
 
     free(M_IMGDATA->m_alpha);
     M_IMGDATA->m_alpha = alpha;
+    M_IMGDATA->m_static = static_data;
+
 }
 
 unsigned char *wxImage::GetAlpha() const