~cemil-azizoglu/mir/improve-raii-take2

« back to all changes in this revision

Viewing changes to src/server/graphics/offscreen/display.h

  • Committer: Cemil Azizoglu
  • Date: 2015-02-26 23:37:35 UTC
  • mfrom: (2323.1.24 development-branch)
  • Revision ID: cemil.azizoglu@canonical.com-20150226233735-zm2j3eunf26b2hgb
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
58
58
    EGLDisplay egl_display;
59
59
};
60
60
 
 
61
class DisplaySyncGroup : public graphics::DisplaySyncGroup
 
62
{
 
63
public:
 
64
    DisplaySyncGroup(std::unique_ptr<DisplayBuffer> output);
 
65
    void for_each_display_buffer(std::function<void(DisplayBuffer&)> const&) override;
 
66
    void post() override;
 
67
private:
 
68
    std::unique_ptr<DisplayBuffer> const output;
 
69
};
 
70
 
61
71
}
62
72
 
63
73
class Display : public graphics::Display
68
78
            std::shared_ptr<DisplayReport> const& listener);
69
79
    ~Display() noexcept;
70
80
 
71
 
    void for_each_display_buffer(std::function<void(DisplayBuffer&)> const& f) override;
 
81
    void for_each_display_sync_group(std::function<void(DisplaySyncGroup&)> const& f) override;
72
82
 
73
83
    std::unique_ptr<graphics::DisplayConfiguration> configuration() const override;
74
84
    void configure(graphics::DisplayConfiguration const& conf) override;
93
103
    SurfacelessEGLContext const egl_context_shared;
94
104
    mutable std::mutex configuration_mutex;
95
105
    DisplayConfiguration current_display_configuration;
96
 
    std::vector<std::unique_ptr<DisplayBuffer>> display_buffers;
 
106
    std::vector<std::unique_ptr<DisplaySyncGroup>> display_sync_groups;
97
107
};
98
108
 
99
109
}