summaryrefslogtreecommitdiffstats
path: root/include/vcl/test/GraphicsRenderTests.hxx
blob: 014f0d71ea371ce0bf1d5972aed80c340ddddc50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
/* -*- 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/.
 *
 */
#pragma once

#include <vcl/bitmap.hxx>
#include <vcl/dllapi.h>
#include <vcl/test/TestResult.hxx>

#include <vector>

class VCL_PLUGIN_PUBLIC VclTestResult
{
    OUString m_aTestName;
    //For storing the result of the test.
    OUString m_aTestStatus;
    //For storing the resultant bitmap correspondingly to the test.
    Bitmap m_aResultantBitmap;

public:
    VclTestResult(OUString atestName, OUString atestStatus, Bitmap atestBitmap)
        : m_aTestName(atestName)
        , m_aTestStatus(atestStatus)
        , m_aResultantBitmap(atestBitmap)
    {
    }
    const OUString& getTestName() const { return m_aTestName; }
    OUString getStatus(bool bLocalize = false);
    const Bitmap& getBitmap() const { return m_aResultantBitmap; }
};

class VCL_PLUGIN_PUBLIC GraphicsRenderTests
{
    bool m_aStoreResultantBitmap;

    //For storing the test's info
    std::vector<VclTestResult> m_aTestResult;
    //For storing the current graphics Backend in use.
    OUString m_aCurGraphicsBackend;
    //Location where the results should be stored.
    OUString m_aUserInstallPath;

    void testDrawRectWithRectangle();
    void testDrawRectWithPixel();
    void testDrawRectWithLine();
    void testDrawRectWithPolygon();
    void testDrawRectWithPolyLine();
    void testDrawRectWithPolyLineB2D();
    void testDrawRectWithPolyPolygon();
    void testDrawRectWithPolyPolygonB2D();
    void testDrawRectAAWithRectangle();
    void testDrawRectAAWithPixel();
    void testDrawRectAAWithLine();
    void testDrawRectAAWithPolygon();
    void testDrawRectAAWithPolyLine();
    void testDrawRectAAWithPolyLineB2D();
    void testDrawRectAAWithPolyPolygon();
    void testDrawRectAAWithPolyPolygonB2D();
    void testDrawFilledRectWithRectangle();
    void testDrawFilledRectWithPolygon();
    void testDrawFilledRectWithPolyPolygon();
    void testDrawFilledRectWithPolyPolygon2D();
    void testDrawDiamondWithPolygon();
    void testDrawDiamondWithLine();
    void testDrawDiamondWithPolyline();
    void testDrawDiamondWithPolylineB2D();
    void testDrawInvertWithRectangle();
    void testDrawInvertN50WithRectangle();
    void testDrawInvertTrackFrameWithRectangle();
    void testDrawDropShapeWithPolyline();
    void testDrawDropShapeAAWithPolyline();
    void testDrawBezierWithPolylineB2D();
    void testDrawBezierAAWithPolylineB2D();
    void testDrawDropShapeWithPolygon();
    void testDrawDropShapeAAWithPolygon();
    void testDrawBitmap24bpp();
    void testDrawTransformedBitmap24bpp();
    void testComplexDrawTransformedBitmap24bpp();
    void testDrawBitmapExWithAlpha24bpp();
    void testDrawMask24bpp();
    void testDrawBlend24bpp();
    void testDrawBitmap32bpp();
    void testDrawTransformedBitmap32bpp();
    void testDrawBitmapExWithAlpha32bpp();
    void testDrawMask32bpp();
    void testDrawBlend32bpp();
    void testDrawBitmap8bppGreyScale();
    void testDrawTransformedBitmap8bppGreyScale();
    void testDrawXor();
    void testClipRectangle();
    void testClipPolygon();
    void testClipPolyPolygon();
    void testClipB2DPolyPolygon();
    void testDrawOutDev();
    void testDrawOutDevScaledClipped();
    void testDrawOutDevSelf();
    void testDashedLine();
    void testLinearGradient();
    void testLinearGradientAngled();
    void testLinearGradientBorder();
    void testLinearGradientIntensity();
    void testLinearGradientSteps();
    void testAxialGradient();
    void testRadialGradient();
    void testRadialGradientOfs();
    void testLineJoinBevel();
    void testLineJoinRound();
    void testLineJoinMiter();
    void testLineJoinNone();
    void testLineCapRound();
    void testLineCapSquare();
    void testLineCapButt();
    void testHalfEllipseWithPolyLine();
    void testHalfEllipseAAWithPolyLine();
    void testHalfEllipseWithPolyLineB2D();
    void testHalfEllipseAAWithPolyLineB2D();
    void testHalfEllipseWithPolygon();
    void testHalfEllipseAAWithPolygon();
    void testClosedBezierWithPolyline();
    void testClosedBezierWithPolygon();
    void testFilledAsymmetricalDropShape();
    void testTextDrawing();
    void testEvenOddRuleInIntersectingRectsWithPolyPolygon();
    void testEvenOddRuleInIntersectingRectsWithPolyPolygonB2D();
    void testDrawRectangleOnSize1028WithRect();
    void testDrawRectangleOnSize4096WithRect();
    void testDrawRectangleOnSize1028WithPixel();
    void testDrawRectangleOnSize4096WithPixel();
    void testDrawRectangleOnSize1028WithLine();
    void testDrawRectangleOnSize4096WithLine();
    void testDrawRectangleOnSize1028WithPolygon();
    void testDrawRectangleOnSize4096WithPolygon();
    void testDrawRectangleOnSize1028WithPolyLine();
    void testDrawRectangleOnSize4096WithPolyLine();
    void testDrawRectangleOnSize1028WithPolyLineB2D();
    void testDrawRectangleOnSize4096WithPolyLineB2D();
    void testDrawRectangleOnSize1028WithPolyPolygon();
    void testDrawRectangleOnSize4096WithPolyPolygon();
    void testDrawRectangleOnSize1028WithPolyPolygonB2D();
    void testDrawRectangleOnSize4096WithPolygonPolygonB2D();
    void testDrawOpenPolygonWithPolyLine();
    void testDrawOpenPolygonWithPolyLineB2D();
    void testDrawOpenPolygonWithPolygon();
    void testDrawOpenPolygonWithPolyPolygon();
    void testDrawOpenPolygonWithPolyPolygonB2D();
    void testDrawOpenBezierWithPolyLine();
    void testDrawOpenBezierWithPolyLineB2D();
    static OUString returnTestStatus(vcl::test::TestResult const result);
    void runALLTests();
    void appendTestResult(OUString aTestName, OUString aTestStatus, Bitmap aTestBitmap = Bitmap());

public:
    std::vector<VclTestResult>& getTestResults();
    OUString getResultString(bool bLocalize = false);
    void run(bool storeResultBitmap = false);

    GraphicsRenderTests()
        : m_aStoreResultantBitmap(false)
    {
    }
};