#include "wx/dcprint.h"
#include "wx/module.h"
#include "wx/dynload.h"
+
+#ifdef wxHAVE_RAW_BITMAP
#include "wx/rawbmp.h"
+#endif
#include <string.h>
#include <math.h>
// 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
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;
bf.SourceConstantAlpha = 0xff;
bf.AlphaFormat = AC_SRC_ALPHA;
- if ( !pfnAlphaBlend(GetHdc(), x, y, width, height,
- hdcMem, 0, 0, width, height,
- bf) )
+ if ( pfnAlphaBlend(GetHdc(), x, y, width, height,
+ hdcMem, 0, 0, width, height,
+ bf) )
{
- wxLogLastError(_T("AlphaBlend"));
+ // skip wxAlphaBlend() call below
+ return;
}
+
+ wxLogLastError(_T("AlphaBlend"));
}
- else // use our own (probably much slower) implementation
- {
- wxAlphaBlend(*this, x, y, width, height, bmp);
- }
+
+ // use our own (probably much slower) implementation
+#ifdef wxHAVE_RAW_BITMAP
+ wxAlphaBlend(*this, x, y, width, height, bmp);
+#endif // wxHAVE_RAW_BITMAP
return;
}
// 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)
{
// combine them with the source bitmap using alpha
wxAlphaPixelData dataDst(bmpDst),
- dataSrc(bmpSrc);
+ dataSrc((wxBitmap &)bmpSrc);
wxCHECK_RET( dataDst && dataSrc,
_T("failed to get raw data in wxAlphaBlend") );
}
}
+#endif // #ifdef wxHAVE_RAW_BITMAP