~ubuntu-branches/ubuntu/wily/mir/wily-proposed

« back to all changes in this revision

Viewing changes to tests/include/mir_test_doubles/stub_display.h

  • Committer: Package Import Robot
  • Author(s): CI Train Bot
  • Date: 2015-05-12 13:12:55 UTC
  • mto: This revision was merged to the branch mainline in revision 96.
  • Revision ID: package-import@ubuntu.com-20150512131255-y7z12i8n4pbvo70x
Tags: upstream-0.13.0+15.10.20150512
ImportĀ upstreamĀ versionĀ 0.13.0+15.10.20150512

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
#define MIR_TEST_DOUBLES_STUB_DISPLAY_H_
21
21
 
22
22
#include "null_display.h"
 
23
#include "null_display_sync_group.h"
23
24
#include "stub_display_buffer.h"
24
25
#include "stub_display_configuration.h"
25
26
 
37
38
class StubDisplay : public NullDisplay
38
39
{
39
40
public:
40
 
    StubDisplay(std::vector<geometry::Rectangle> const& output_rects)
41
 
        : output_rects{output_rects}
42
 
    {
43
 
        for (auto const& output_rect : output_rects)
44
 
            display_buffers.emplace_back(output_rect);
45
 
    }
46
 
 
47
 
    void for_each_display_buffer(std::function<void(graphics::DisplayBuffer&)> const& f) override
48
 
    {
49
 
        for (auto& db : display_buffers)
50
 
            f(db);
 
41
    StubDisplay(std::vector<geometry::Rectangle> const& output_rects) :
 
42
        output_rects(output_rects)
 
43
    {
 
44
        for (auto const& rect : output_rects)
 
45
            groups.emplace_back(new StubDisplaySyncGroup({rect}));
 
46
    }
 
47
 
 
48
    StubDisplay(unsigned int nbuffers) :
 
49
        StubDisplay(generate_stub_rects(nbuffers))
 
50
    {
 
51
    }
 
52
 
 
53
    void for_each_display_sync_group(std::function<void(graphics::DisplaySyncGroup&)> const& f) override
 
54
    {
 
55
        for (auto& group : groups)
 
56
            f(*group);
51
57
    }
52
58
 
53
59
    std::unique_ptr<graphics::DisplayConfiguration> configuration() const override
59
65
 
60
66
    std::vector<geometry::Rectangle> const output_rects;
61
67
private:
62
 
    std::vector<StubDisplayBuffer> display_buffers;
 
68
    std::vector<geometry::Rectangle> generate_stub_rects(unsigned int nbuffers)
 
69
    {
 
70
        std::vector<geometry::Rectangle> rects;
 
71
        for (auto i = 0u; i < nbuffers; i++)
 
72
            rects.push_back(geometry::Rectangle{{0,0},{1,1}});
 
73
        return rects;
 
74
    }
 
75
 
 
76
    std::vector<std::unique_ptr<StubDisplaySyncGroup>> groups;
63
77
};
64
78
 
65
79
}