// Created: 10.03.03
// RCS-ID: $Id$
// Copyright: (c) 2002 Vadim Zeitlin <vadim@wxwidgets.org>
-// Licence: wxWidgets licence
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_RAWBMP_H_BASE_
#define _WX_RAWBMP_H_BASE_
+#include "wx/image.h"
+
// ----------------------------------------------------------------------------
// Abstract Pixel API
//
// Cocoa is standard RGB or RGBA (normally it is RGBA)
typedef wxPixelFormat<unsigned char, 24, 0, 1, 2> wxNativePixelFormat;
+ #define wxPIXEL_FORMAT_ALPHA 3
+#elif defined(__WXGTK__)
+ // Under GTK+ 2.X we use GdkPixbuf, which should be RGBA
+ typedef wxPixelFormat<unsigned char, 24, 0, 1, 2> wxNativePixelFormat;
+
#define wxPIXEL_FORMAT_ALPHA 3
#endif
// used as default value for the pixel format in wxPixelIterator template
template <class T> 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
{
typedef wxImagePixelFormat Format;
};
+#endif //wxUSE_IMAGE
// ----------------------------------------------------------------------------
// wxPixelData
};
};
+#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 <>
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 <>
// the type of the class we're working with
typedef wxBitmap ImageType;
- class Iterator
+ class WXDLLEXPORT Iterator
{
public:
// the pixel format we use
}
};
};
+#endif //wxUSE_GUI
#ifdef __VISUALC__
// typedef-name 'foo' used as synonym for class-name 'bar'
// some "predefined" pixel data classes
+#if wxUSE_IMAGE
typedef wxPixelData<wxImage> wxImagePixelData;
+#endif //wxUSE_IMAGE
+#if wxUSE_GUI
typedef wxPixelData<wxBitmap, wxNativePixelFormat> wxNativePixelData;
typedef wxPixelData<wxBitmap, wxAlphaPixelFormat> wxAlphaPixelData;
+#endif //wxUSE_GUI
// ----------------------------------------------------------------------------
// wxPixelIterator