X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a28fe6d54e9f3d0a3f0d52b6ae74f3a53f5e1415..72d4ce98fb1e6eec864075c97dbd17fae2764631:/include/wx/rawbmp.h diff --git a/include/wx/rawbmp.h b/include/wx/rawbmp.h index 105c85714c..0815f09f17 100644 --- a/include/wx/rawbmp.h +++ b/include/wx/rawbmp.h @@ -5,13 +5,15 @@ // Modified by: // Created: 10.03.03 // RCS-ID: $Id$ -// Copyright: (c) 2002 Vadim Zeitlin +// Copyright: (c) 2002 Vadim Zeitlin // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_RAWBMP_H_BASE_ #define _WX_RAWBMP_H_BASE_ +#include "wx/image.h" + // ---------------------------------------------------------------------------- // Abstract Pixel API // @@ -158,6 +160,11 @@ typedef wxPixelFormat wxImagePixelFormat; // Cocoa is standard RGB or RGBA (normally it is RGBA) typedef wxPixelFormat wxNativePixelFormat; + #define wxPIXEL_FORMAT_ALPHA 3 +#elif defined(__WXGTK__) + // Under GTK+ 2.X we use GdkPixbuf, which should be RGBA + typedef wxPixelFormat wxNativePixelFormat; + #define wxPIXEL_FORMAT_ALPHA 3 #endif @@ -174,6 +181,7 @@ typedef wxPixelFormat wxImagePixelFormat; // used as default value for the pixel format in wxPixelIterator template template struct wxPixelFormatFor; +#if wxUSE_IMAGE // wxPixelFormatFor is only defined for wxImage, attempt to use it with other // classes (wxBitmap...) will result in compile errors which is exactly what we // want @@ -182,6 +190,7 @@ struct WXDLLEXPORT wxPixelFormatFor { typedef wxImagePixelFormat Format; }; +#endif //wxUSE_IMAGE // ---------------------------------------------------------------------------- // wxPixelData @@ -269,6 +278,7 @@ struct WXDLLEXPORT wxPixelDataOut }; }; +#if wxUSE_IMAGE // wxPixelData specialization for wxImage: this is the simplest case as we // don't have to care about different pixel formats here template <> @@ -388,9 +398,9 @@ struct WXDLLEXPORT wxPixelDataOut // ----------- // access to invidividual colour components - ChannelType& Red() { return m_ptr[PixelFormat::RED]; } - ChannelType& Green() { return m_ptr[PixelFormat::GREEN]; } - ChannelType& Blue() { return m_ptr[PixelFormat::BLUE]; } + ChannelType& Red() { return m_pRGB[PixelFormat::RED]; } + ChannelType& Green() { return m_pRGB[PixelFormat::GREEN]; } + ChannelType& Blue() { return m_pRGB[PixelFormat::BLUE]; } ChannelType& Alpha() { return *m_pAlpha; } // private: -- see comment in the beginning of the file @@ -426,7 +436,7 @@ struct WXDLLEXPORT wxPixelDataOut { m_stride = Iterator::SizePixel * m_width; - InitRect(rect.GetPositions(), rect.GetSize()); + InitRect(rect.GetPosition(), rect.GetSize()); } // we evaluate to true only if we could get access to bitmap data @@ -453,7 +463,9 @@ struct WXDLLEXPORT wxPixelDataOut Iterator m_pixels; }; }; +#endif //wxUSE_IMAGE +#if wxUSE_GUI // wxPixelData specialization for wxBitmap: here things are more interesting as // we also have to support different pixel formats template <> @@ -466,7 +478,7 @@ struct WXDLLEXPORT wxPixelDataOut // the type of the class we're working with typedef wxBitmap ImageType; - class Iterator + class WXDLLEXPORT Iterator { public: // the pixel format we use @@ -635,6 +647,7 @@ struct WXDLLEXPORT wxPixelDataOut } }; }; +#endif //wxUSE_GUI #ifdef __VISUALC__ // typedef-name 'foo' used as synonym for class-name 'bar' @@ -665,9 +678,13 @@ public: // some "predefined" pixel data classes +#if wxUSE_IMAGE typedef wxPixelData wxImagePixelData; +#endif //wxUSE_IMAGE +#if wxUSE_GUI typedef wxPixelData wxNativePixelData; typedef wxPixelData wxAlphaPixelData; +#endif //wxUSE_GUI // ---------------------------------------------------------------------------- // wxPixelIterator