]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/imagpcx.cpp
merged optimizations from 2.2
[wxWidgets.git] / src / common / imagpcx.cpp
index 3b806c35f487a521ecb391236ac3625bcb64cb44..348dd9f8f9e290b8c1532923582ab256a92dc5b9 100644 (file)
@@ -276,6 +276,18 @@ int ReadPCX(wxImage *image, wxInputStream& stream)
             *(p++) = pal[3 * index + 1];
             *(p++) = pal[3 * index + 2];
         }
             *(p++) = pal[3 * index + 1];
             *(p++) = pal[3 * index + 2];
         }
+
+        unsigned char* r = new unsigned char[256];
+        unsigned char* g = new unsigned char[256];
+        unsigned char* b = new unsigned char[256];
+        for (i = 0; i < 256; i++)
+        {
+            r[i] = pal[3*i + 0];
+            g[i] = pal[3*i + 1];
+            b[i] = pal[3*i + 2];
+        }
+        image->SetPalette(wxPalette(256, r, g, b));
+        delete[] r; delete[] g; delete[] b;
     }
 
     return wxPCX_OK;
     }
 
     return wxPCX_OK;
@@ -444,10 +456,10 @@ bool wxPCXHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose
         {
             switch (error)
             {
         {
             switch (error)
             {
-                case wxPCX_INVFORMAT: wxLogError(_("wxPCXHandler: image format unsupported")); break;
-                case wxPCX_MEMERR:    wxLogError(_("wxPCXHandler: couldn't allocate memory")); break;
-                case wxPCX_VERERR:    wxLogError(_("wxPCXHandler: version number too low")); break;
-                default:              wxLogError(_("wxPCXHandler: unknown error !!!"));
+                case wxPCX_INVFORMAT: wxLogError(_("PCX: image format unsupported")); break;
+                case wxPCX_MEMERR:    wxLogError(_("PCX: couldn't allocate memory")); break;
+                case wxPCX_VERERR:    wxLogError(_("PCX: version number too low")); break;
+                default:              wxLogError(_("PCX: unknown error !!!"));
             }
         }
         image->Destroy();
             }
         }
         image->Destroy();
@@ -467,9 +479,9 @@ bool wxPCXHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos
         {
             switch (error)
             {
         {
             switch (error)
             {
-                case wxPCX_INVFORMAT: wxLogError(_("wxPCXHandler: invalid image")); break;
-                case wxPCX_MEMERR:    wxLogError(_("wxPCXHandler: couldn't allocate memory")); break;
-                default:              wxLogError(_("wxPCXHandler: unknown error !!!"));
+                case wxPCX_INVFORMAT: wxLogError(_("PCX: invalid image")); break;
+                case wxPCX_MEMERR:    wxLogError(_("PCX: couldn't allocate memory")); break;
+                default:              wxLogError(_("PCX: unknown error !!!"));
             }
         }
     }
             }
         }
     }