Run all clipping region tests against wxClientDC
This commit is contained in:
@@ -17,8 +17,13 @@
|
|||||||
#include "wx/dcmemory.h"
|
#include "wx/dcmemory.h"
|
||||||
#include "wx/dcgraph.h"
|
#include "wx/dcgraph.h"
|
||||||
#include "wx/dcsvg.h"
|
#include "wx/dcsvg.h"
|
||||||
|
#include "wx/app.h"
|
||||||
|
#include "wx/window.h"
|
||||||
|
#include "wx/dcclient.h"
|
||||||
|
#include "wx/scopedptr.h"
|
||||||
|
|
||||||
#include "testfile.h"
|
#include "testfile.h"
|
||||||
|
#include "waitforpaint.h"
|
||||||
|
|
||||||
static const wxSize s_dcSize(100, 120);
|
static const wxSize s_dcSize(100, 120);
|
||||||
static const wxColour s_bgColour(*wxWHITE); // colour to draw outside clipping box
|
static const wxColour s_bgColour(*wxWHITE); // colour to draw outside clipping box
|
||||||
@@ -3707,6 +3712,327 @@ TEST_CASE("ClippingBoxTestCase::wxSVGFileDC", "[clip][dc][svgdc]")
|
|||||||
}
|
}
|
||||||
#endif // wxUSE_SVG
|
#endif // wxUSE_SVG
|
||||||
|
|
||||||
|
TEST_CASE("ClippingBoxTestCase::wxClientDC", "[clip][dc][clientdc]")
|
||||||
|
{
|
||||||
|
wxBitmap bmp; // We need wxNullBitmap because we can't check the output
|
||||||
|
#if defined(__WXGTK__) && !defined(__WXGTK3__)
|
||||||
|
// Under wxGTK2 we need to have two children (at least) because if there
|
||||||
|
// is exactly one child its size is set to fill the whole parent frame
|
||||||
|
// and the window cannot be resized - see wxTopLevelWindowBase::Layout().
|
||||||
|
wxScopedPtr<wxWindow> w0(new wxWindow(wxTheApp->GetTopWindow(), wxID_ANY));
|
||||||
|
#endif // wxGTK 2
|
||||||
|
wxScopedPtr<wxWindow> win(new wxWindow(wxTheApp->GetTopWindow(), wxID_ANY));
|
||||||
|
|
||||||
|
win->SetClientSize(s_dcSize);
|
||||||
|
|
||||||
|
// Wait for the first paint event to be sure
|
||||||
|
// that window really has its final size.
|
||||||
|
WaitForPaint waitForPaint(win.get());
|
||||||
|
win->Show();
|
||||||
|
waitForPaint.YieldUntilPainted();
|
||||||
|
|
||||||
|
wxClientDC dc(win.get());
|
||||||
|
REQUIRE(dc.GetSize().x == s_dcSize.x);
|
||||||
|
REQUIRE(dc.GetSize().y == s_dcSize.y);
|
||||||
|
dc.SetBackground(wxBrush(s_bgColour, wxBRUSHSTYLE_SOLID));
|
||||||
|
dc.Clear();
|
||||||
|
|
||||||
|
SECTION("InitialState")
|
||||||
|
{
|
||||||
|
InitialState(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("InitialStateWithTransformedDC 1")
|
||||||
|
{
|
||||||
|
InitialStateWithTransformedDC(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("InitialStateWithTransformedDC 2")
|
||||||
|
{
|
||||||
|
InitialStateWithTransformedDC(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("InitialStateWithTransformedDC Transform Matrix")
|
||||||
|
{
|
||||||
|
InitialStateWithTransformedDC(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("InitialStateWithRotatedDC")
|
||||||
|
{
|
||||||
|
InitialStateWithRotatedDC(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("SameRegionRepeatRotatedDC")
|
||||||
|
{
|
||||||
|
SameRegionRepeatRotatedDC(dc);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegion")
|
||||||
|
{
|
||||||
|
OneRegion(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneLargeRegion")
|
||||||
|
{
|
||||||
|
OneLargeRegion(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneOuterRegion")
|
||||||
|
{
|
||||||
|
OneOuterRegion(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegionNegDim")
|
||||||
|
{
|
||||||
|
OneRegionNegDim(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegionAndReset")
|
||||||
|
{
|
||||||
|
OneRegionAndReset(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegionAndEmpty")
|
||||||
|
{
|
||||||
|
OneRegionAndEmpty(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegionOverTransformedDC 1")
|
||||||
|
{
|
||||||
|
OneRegionOverTransformedDC(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegionOverTransformedDC 2")
|
||||||
|
{
|
||||||
|
OneRegionOverTransformedDC(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegionOverTransformedDC Transform Matrix")
|
||||||
|
{
|
||||||
|
OneRegionOverTransformedDC(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegionOverRotatedDC")
|
||||||
|
{
|
||||||
|
OneRegionOverRotatedDC(dc);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegionAndDCTransformation 1")
|
||||||
|
{
|
||||||
|
OneRegionAndDCTransformation(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegionAndDCTransformation 2")
|
||||||
|
{
|
||||||
|
OneRegionAndDCTransformation(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneRegionAndDCTransformation Transform Matrix")
|
||||||
|
{
|
||||||
|
OneRegionAndDCTransformation(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoRegionsOverlapping")
|
||||||
|
{
|
||||||
|
TwoRegionsOverlapping(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoRegionsOverlappingNegDim")
|
||||||
|
{
|
||||||
|
TwoRegionsOverlappingNegDim(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoRegionsNonOverlapping")
|
||||||
|
{
|
||||||
|
TwoRegionsNonOverlapping(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoRegionsNonOverlappingNegDim")
|
||||||
|
{
|
||||||
|
TwoRegionsNonOverlappingNegDim(dc, bmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegion 1")
|
||||||
|
{
|
||||||
|
OneDevRegion(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegion 2")
|
||||||
|
{
|
||||||
|
OneDevRegion(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegion Transform Matrix")
|
||||||
|
{
|
||||||
|
OneDevRegion(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneLargeDevRegion 1")
|
||||||
|
{
|
||||||
|
OneLargeDevRegion(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneLargeDevRegion 2")
|
||||||
|
{
|
||||||
|
OneLargeDevRegion(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneLargeDevRegion Transform Matrix")
|
||||||
|
{
|
||||||
|
OneLargeDevRegion(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneOuterDevRegion")
|
||||||
|
{
|
||||||
|
OneOuterDevRegion(dc, bmp, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneOuterDevRegion Transform Matrix")
|
||||||
|
{
|
||||||
|
OneOuterDevRegion(dc, bmp, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionNegDim 1")
|
||||||
|
{
|
||||||
|
OneDevRegionNegDim(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionNegDim 2")
|
||||||
|
{
|
||||||
|
OneDevRegionNegDim(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionNegDim Transform Matrix")
|
||||||
|
{
|
||||||
|
OneDevRegionNegDim(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionNonRect 1")
|
||||||
|
{
|
||||||
|
OneDevRegionNonRect(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionNonRect 2")
|
||||||
|
{
|
||||||
|
OneDevRegionNonRect(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionNonRect Transform Matrix")
|
||||||
|
{
|
||||||
|
OneDevRegionNonRect(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionAndReset 1")
|
||||||
|
{
|
||||||
|
OneDevRegionAndReset(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionAndReset 2")
|
||||||
|
{
|
||||||
|
OneDevRegionAndReset(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionAndReset Transform Matrix")
|
||||||
|
{
|
||||||
|
OneDevRegionAndReset(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionAndEmpty")
|
||||||
|
{
|
||||||
|
OneDevRegionAndEmpty(dc, bmp, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionAndEmpty Transform Matrix")
|
||||||
|
{
|
||||||
|
OneDevRegionAndEmpty(dc, bmp, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionOverTransformedDC 1")
|
||||||
|
{
|
||||||
|
OneDevRegionOverTransformedDC(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionOverTransformedDC 2")
|
||||||
|
{
|
||||||
|
OneDevRegionOverTransformedDC(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionOverTransformedDC Transform Matrix")
|
||||||
|
{
|
||||||
|
OneDevRegionOverTransformedDC(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionOverRotatedDC")
|
||||||
|
{
|
||||||
|
OneDevRegionOverRotatedDC(dc);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionAndDCTransformation 1")
|
||||||
|
{
|
||||||
|
OneDevRegionAndDCTransformation(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionAndDCTransformation 2")
|
||||||
|
{
|
||||||
|
OneDevRegionAndDCTransformation(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("OneDevRegionAndDCTransformation Transform Matrix")
|
||||||
|
{
|
||||||
|
OneDevRegionAndDCTransformation(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoDevRegionsOverlapping 1")
|
||||||
|
{
|
||||||
|
TwoDevRegionsOverlapping(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoDevRegionsOverlapping 2")
|
||||||
|
{
|
||||||
|
TwoDevRegionsOverlapping(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoDevRegionsOverlapping Transform Matrix")
|
||||||
|
{
|
||||||
|
TwoDevRegionsOverlapping(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoDevRegionsOverlappingNegDim 1")
|
||||||
|
{
|
||||||
|
TwoDevRegionsOverlappingNegDim(dc, bmp, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoDevRegionsOverlappingNegDim 2")
|
||||||
|
{
|
||||||
|
TwoDevRegionsOverlappingNegDim(dc, bmp, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoDevRegionsOverlappingNegDim Transform Matrix")
|
||||||
|
{
|
||||||
|
TwoDevRegionsOverlappingNegDim(dc, bmp, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoDevRegionsNonOverlapping")
|
||||||
|
{
|
||||||
|
TwoDevRegionsNonOverlapping(dc, bmp, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoDevRegionsNonOverlapping Transform Matrix")
|
||||||
|
{
|
||||||
|
TwoDevRegionsNonOverlapping(dc, bmp, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoDevRegionsNonOverlappingNegDim")
|
||||||
|
{
|
||||||
|
TwoDevRegionsNonOverlappingNegDim(dc, bmp, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECTION("TwoDevRegionsNonOverlappingNegDim Transform Matrix")
|
||||||
|
{
|
||||||
|
TwoDevRegionsNonOverlappingNegDim(dc, bmp, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#if wxUSE_GRAPHICS_CONTEXT
|
#if wxUSE_GRAPHICS_CONTEXT
|
||||||
// ========================
|
// ========================
|
||||||
// wxGraphicsContext tests
|
// wxGraphicsContext tests
|
||||||
|
Reference in New Issue
Block a user