diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2016-08-22 18:10:02 +0900 |
---|---|---|
committer | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2016-08-23 09:52:43 +0900 |
commit | 3e6052ce1b9a24f82358e574de32919fa2b6499f (patch) | |
tree | 9e81e23f724a4be0938b61d866e777399f40e794 /vcl/backendtest/outputdevice/rectangle.cxx | |
parent | 129c0d6363e58f6d32dc9583edb6a0edd07521f9 (diff) |
vcl: Adds backend tests to check for correct rendering
Collection of test that check rendering of VCL backend. This works
by rendering primitives to the VirtualDevice, outputing the result
to a Bitmap and checking the rendering by comparing pixels. This
should warn when the primitive is drawn to a wrong position or if
it is the wrong size or color. It also test some rendering tricks
like XOR drawing.
Currently this is not implemented as a CPPUnit test but separately,
as its own executable file so we can check the results visually.
The idea is also to add the tests into LO for the user to test or
automatically to test the backend on first start (especially
useful to test the OpenGL backend as some drivers could have
unexpected behaviour).
Change-Id: I2a565b9986ca68850e2752466e3cd5fc71991ba6
Diffstat (limited to 'vcl/backendtest/outputdevice/rectangle.cxx')
-rw-r--r-- | vcl/backendtest/outputdevice/rectangle.cxx | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/vcl/backendtest/outputdevice/rectangle.cxx b/vcl/backendtest/outputdevice/rectangle.cxx new file mode 100644 index 000000000000..80ab3cf6f7ee --- /dev/null +++ b/vcl/backendtest/outputdevice/rectangle.cxx @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#include "test/outputdevice.hxx" + +namespace vcl { +namespace test { + +namespace +{ + void drawRectOffset(OutputDevice& rDevice, Rectangle& rRect, int nOffset) + { + rDevice.DrawRect(Rectangle(rRect.Left() + nOffset, rRect.Top() + nOffset, + rRect.Right() - nOffset, rRect.Bottom() - nOffset)); + + } +} // end anonymous namespace + +Bitmap OutputDeviceTestRect::setupFilledRectangle() +{ + initialSetup(13, 13, constBackgroundColor); + + mpVirtualDevice->SetLineColor(constFillColor); + mpVirtualDevice->SetFillColor(constFillColor); + + drawRectOffset(*mpVirtualDevice, maVDRectangle, 2); + drawRectOffset(*mpVirtualDevice, maVDRectangle, 5); + + return mpVirtualDevice->GetBitmap(maVDRectangle.TopLeft(), maVDRectangle.GetSize()); +} + +Bitmap OutputDeviceTestRect::setupRectangle() +{ + initialSetup(13, 13, constBackgroundColor); + + mpVirtualDevice->SetLineColor(constLineColor); + mpVirtualDevice->SetFillColor(); + + drawRectOffset(*mpVirtualDevice, maVDRectangle, 2); + drawRectOffset(*mpVirtualDevice, maVDRectangle, 5); + + return mpVirtualDevice->GetBitmap(maVDRectangle.TopLeft(), maVDRectangle.GetSize()); +} + +}} // end namespace vcl::test + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |