don't assert in wxDC::Blit() calls if the source rect is outside of source DC (wxCaret is prone to this)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41518 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -757,6 +757,16 @@ bool wxDC::DoBlitFromSurface(const wxIDirectFBSurfacePtr& src,
|
|||||||
wxCoord w, wxCoord h,
|
wxCoord w, wxCoord h,
|
||||||
wxCoord dstx, wxCoord dsty)
|
wxCoord dstx, wxCoord dsty)
|
||||||
{
|
{
|
||||||
|
// don't do anything if the source rectangle is outside of source surface,
|
||||||
|
// DirectFB would assert in that case:
|
||||||
|
wxSize srcsize;
|
||||||
|
src->GetSize(&srcsize.x, &srcsize.y);
|
||||||
|
if ( !wxRect(srcx, srcy, w, h).Intersects(wxRect(srcsize)) )
|
||||||
|
{
|
||||||
|
wxLogDebug(_T("Blitting from area outside of the source surface, caller code needs fixing."));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
CalcBoundingBox(dstx, dsty);
|
CalcBoundingBox(dstx, dsty);
|
||||||
CalcBoundingBox(dstx + w, dsty + h);
|
CalcBoundingBox(dstx + w, dsty + h);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user