From 1e3c12d77459f08076de2ca101eb660f675bbd3a Mon Sep 17 00:00:00 2001 From: Chris Elliott Date: Fri, 2 May 2003 12:58:00 +0000 Subject: [PATCH] implement wxHAVE_RAW_BITMAP git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/platform.h | 5 +++++ samples/image/image.cpp | 5 ++--- src/msw/bitmap.cpp | 4 ++++ src/msw/dc.cpp | 14 +++++++++++++- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/include/wx/platform.h b/include/wx/platform.h index 5ad287d09c..dfcbfb2329 100644 --- a/include/wx/platform.h +++ b/include/wx/platform.h @@ -305,6 +305,11 @@ #endif #endif +#if defined (__WXMSW__) + #if !defined(__DIGITALMARS__) && !defined(__WATCOMC__) + #define wxHAVE_RAW_BITMAP + #endif +#endif #endif /* _WX_PLATFORM_H_ */ diff --git a/samples/image/image.cpp b/samples/image/image.cpp index 6306f97c77..8661adaaed 100644 --- a/samples/image/image.cpp +++ b/samples/image/image.cpp @@ -34,10 +34,8 @@ #if !defined(__WINDOWS__) || wxUSE_XPM_IN_MSW #include "smile.xpm" #endif +#include "wx/rawbmp.h" -#if defined(__WXMSW__) - #define wxHAVE_RAW_BITMAP -#endif // derived classes @@ -833,6 +831,7 @@ MyFrame::MyFrame() wxMenu *menuImage = new wxMenu; menuImage->Append( ID_NEW, _T("&Show any image...\tCtrl-O")); + #ifdef wxHAVE_RAW_BITMAP menuImage->Append( ID_SHOWRAW, _T("Test &raw bitmap...\tCtrl-R")); #endif diff --git a/src/msw/bitmap.cpp b/src/msw/bitmap.cpp index 7df1437372..039c3b8e93 100644 --- a/src/msw/bitmap.cpp +++ b/src/msw/bitmap.cpp @@ -50,7 +50,9 @@ #include "wx/image.h" #include "wx/xpmdecod.h" +#ifdef wxHAVE_RAW_BITMAP #include "wx/rawbmp.h" +#endif // missing from mingw32 header #ifndef CLR_INVALID @@ -1187,6 +1189,7 @@ void wxBitmap::SetQuality(int WXUNUSED(quality)) // raw bitmap access support // ---------------------------------------------------------------------------- +#ifdef wxHAVE_RAW_BITMAP void *wxBitmap::GetRawData(wxPixelDataBase& data, int bpp) { if ( !Ok() ) @@ -1317,6 +1320,7 @@ void wxBitmap::UngetRawData(wxPixelDataBase& dataBase) } } } +#endif // #ifdef wxHAVE_RAW_BITMAP // ---------------------------------------------------------------------------- // wxMask diff --git a/src/msw/dc.cpp b/src/msw/dc.cpp index e1b6743cd4..eac0d93d08 100644 --- a/src/msw/dc.cpp +++ b/src/msw/dc.cpp @@ -44,7 +44,10 @@ #include "wx/dcprint.h" #include "wx/module.h" #include "wx/dynload.h" + +#ifdef wxHAVE_RAW_BITMAP #include "wx/rawbmp.h" +#endif #include #include @@ -114,9 +117,12 @@ static const int MM_METRIC = 10; // convert degrees to radians static inline double DegToRad(double deg) { return (deg * M_PI) / 180.0; } + +#ifdef wxHAVE_RAW_BITMAP // our (limited) AlphaBlend() replacement static void wxAlphaBlend(wxDC& dc, int x, int y, int w, int h, const wxBitmap& bmp); +#endif // ---------------------------------------------------------------------------- // private classes @@ -656,7 +662,7 @@ void wxDC::DoDrawCheckMark(wxCoord x1, wxCoord y1, wxCoord x2 = x1 + width, y2 = y1 + height; -#if defined(__WIN32__) && !defined(__SC__) && !defined(__WXMICROWIN__) +#if defined(__WIN32__) && !defined(__SYMANTEC__) && !defined(__WXMICROWIN__) RECT rect; rect.left = x1; rect.top = y1; @@ -1007,7 +1013,11 @@ void wxDC::DoDrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, bool useMask } else // use our own (probably much slower) implementation { +#ifdef wxHAVE_RAW_BITMAP wxAlphaBlend(*this, x, y, width, height, bmp); +#else + wxLogLastError(_T("AlphaBlend not available with this compiler setup")); +#endif //#ifdef wxHAVE_RAW_BITMAP } return; @@ -2299,6 +2309,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxDCModule, wxModule) // wxAlphaBlend: our fallback if ::AlphaBlend() is unavailable // ---------------------------------------------------------------------------- +#ifdef wxHAVE_RAW_BITMAP static void wxAlphaBlend(wxDC& dc, int xDst, int yDst, int w, int h, const wxBitmap& bmpSrc) { @@ -2354,3 +2365,4 @@ wxAlphaBlend(wxDC& dc, int xDst, int yDst, int w, int h, const wxBitmap& bmpSrc) } } +#endif // #ifdef wxHAVE_RAW_BITMAP -- 2.45.2