::FillRect(GetHdc(), &rect, brush);
::DeleteObject(brush);
+#ifndef __WXWINCE__
int width = DeviceToLogicalXRel(VIEWPORT_EXTENT)*m_signX,
height = DeviceToLogicalYRel(VIEWPORT_EXTENT)*m_signY;
-#ifndef __WXWINCE__
::SetMapMode(GetHdc(), MM_ANISOTROPIC);
::SetViewportExtEx(GetHdc(), VIEWPORT_EXTENT, VIEWPORT_EXTENT, NULL);
{
#ifdef __WXWINCE__
wxDCBase::DoDrawPolyPolygon(n, count, points, xoffset, yoffset, fillStyle);
-#else
+#else
WXMICROWIN_CHECK_HDC
wxColourChanger cc(*this); // needed for wxSTIPPLE_MASK_OPAQUE handling
}
#ifndef __WXWINCE__
int prev = SetPolyFillMode(GetHdc(),fillStyle==wxODDEVEN_RULE?ALTERNATE:WINDING);
-#endif
+#endif
(void)PolyPolygon(GetHdc(), cpoints, count, n);
#ifndef __WXWINCE__
SetPolyFillMode(GetHdc(),prev);
-#endif
+#endif
delete[] cpoints;
}
else
#ifndef __WXWINCE__
int prev = SetPolyFillMode(GetHdc(),fillStyle==wxODDEVEN_RULE?ALTERNATE:WINDING);
-#endif
+#endif
(void)PolyPolygon(GetHdc(), (POINT*) points, count, n);
#ifndef __WXWINCE__
SetPolyFillMode(GetHdc(),prev);
-#endif
+#endif
}
#endif
// __WXWINCE__
WXMICROWIN_CHECK_HDC_RET(false)
+ // if either the source or destination has alpha channel, we must use
+ // AlphaBlt() as other function don't handle it correctly
const wxBitmap& bmpSrc = source->m_selectedBitmap;
- if ( bmpSrc.Ok() && bmpSrc.HasAlpha() )
+ if ( bmpSrc.Ok() && (bmpSrc.HasAlpha() ||
+ (m_selectedBitmap.Ok() && m_selectedBitmap.HasAlpha())) )
{
if ( AlphaBlt(GetHdc(), xdest, ydest, width, height,
GetHdcOf(*source), bmpSrc) )
// On Win9x this API fails most (all?) of the time, so
// logging it becomes quite distracting. Since it falls
// back to the code below this is not really serious, so
- // don't log it.
+ // don't log it.
//wxLogLastError(wxT("StretchDIBits"));
}
else
#else // !wxHAVE_RAW_BITMAP
// no wxAlphaBlend() neither, fall back to using simple BitBlt() (we lose
// alpha but at least something will be shown like this)
+ wxUnusedVar(bmp);
return false;
#endif // wxHAVE_RAW_BITMAP
}