From ed2254308be290138c1cda130b7c390be17bbb66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Thu, 19 Jul 2007 17:16:54 +0000 Subject: [PATCH] * just realized a bug already when reading over the commit log... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21666 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/os/interface/Region.h | 2 ++ src/kits/game/DirectWindow.cpp | 10 ++++++---- src/kits/interface/Region.cpp | 8 ++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/headers/os/interface/Region.h b/headers/os/interface/Region.h index c7ebce3ad3..668c107c0a 100644 --- a/headers/os/interface/Region.h +++ b/headers/os/interface/Region.h @@ -82,6 +82,8 @@ class BRegion { clipping_rect _Convert(const BRect& rect) const; clipping_rect _ConvertToInternal(const BRect& rect) const; + clipping_rect _ConvertToInternal( + const clipping_rect& rect) const; private: long fCount; diff --git a/src/kits/game/DirectWindow.cpp b/src/kits/game/DirectWindow.cpp index 0a5c83b592..461d3c14ca 100644 --- a/src/kits/game/DirectWindow.cpp +++ b/src/kits/game/DirectWindow.cpp @@ -307,10 +307,12 @@ BDirectWindow::GetClippingRegion(BRegion *region, BPoint *origin) const UnlockDirect(); return B_NO_MEMORY; } - region->fCount = fBufferDesc->clip_list_count; - region->fBounds = fBufferDesc->clip_bounds; - for (uint32 c = 0; c < fBufferDesc->clip_list_count; c++) - region->fData[c] = fBufferDesc->clip_list[c]; + region->fCount = fBufferDesc->clip_list_count; + region->fBounds = region->_ConvertToInternal(fBufferDesc->clip_bounds); + for (uint32 c = 0; c < fBufferDesc->clip_list_count; c++) { + region->fData[c] = region->_ConvertToInternal( + fBufferDesc->clip_list[c]); + } // adjust bounds by the given origin point region->OffsetBy(-originX, -originY); diff --git a/src/kits/interface/Region.cpp b/src/kits/interface/Region.cpp index c49f02ee54..9a457c81d0 100644 --- a/src/kits/interface/Region.cpp +++ b/src/kits/interface/Region.cpp @@ -502,3 +502,11 @@ BRegion::_ConvertToInternal(const BRect& rect) const (int)ceilf(rect.right) + 1, (int)ceilf(rect.bottom) + 1 }; } + +clipping_rect +BRegion::_ConvertToInternal(const clipping_rect& rect) const +{ + return (clipping_rect){ rect.left, rect.top, + rect.right + 1, rect.bottom + 1 }; +} +